FPML: Fourth-order Parallelizable Modified Laguerre method is a collection of Fortran subroutines for computing the roots of a univariate polynomial. All subroutines are located in the module fpml inside the src directory.
- Thomas R. Cameron
- Mathematics and Computer Science Department, Davidson College
- Email: thcameron@davidson.edu
Below are instructions for the installation of FPML, the testing of FPML, and compiling of TeX figures. These instructions have been tested on macOS High Sierra 10.13.3 and Ubuntu 16.04.4 LTS and will work on most Mac and Linux systems provided the dependencies are met.
First, open the make.inc file to specify the Fortran compiler and flags. The default settings use the gfortran compiler with flags -O2. Once these parameters are set, the fpml_driver and testing library can be installed by running make install from the root directory of FPML, in the terminal. Once installed, make clean can be run to remove the leftover installation files, such as .mod and .o files. Note that the installation is done relative to the location of the FPML directory and nothing is installed outside of this directory. To uninstall simply run make uninstall from the root directory of FPML.
When running the fpml_driver, the program will expect the name of a file located in data_files. This file is expected to store the coefficients of a polynomial as follows: The first row contains the degree, and every subsequent line contains the coefficients from constant to leading (e.g., see poly1.dat). If no data file is given, then the program will run on poly1.dat by default. Each computed root, its backward error, and condition number is recorded in the file results.dat located in data_files.
All tests that were used in the research and development of FPML are included in the tests directory, along with 3rd party software from AMVW [4] and Polzeros [5]. The Fortran 90 software for AMVW is now maintained at https://github.com/eiscor/eiscor, and the Fortran90 software for Polzeros can be downloaded at https://jblevins.org/mirror/amiller/.
Each test can be run individually using the executables inside the tests directory. When running tests that depend on the AMVW eiscor library, Mac users may need to set the DYLD_LIBRARY_PATH, see the run_tests.sh file in the tests directory for the proper export command. Note that the tests init_est, methods, rand_poly, and unity take on three parameters: startDegree, endDegree, and itnum. If these parameters are not given, then each test runs on its default setting that is set in its respective source file, located in tests/src. One may also run all tests by running make run from the root directory of FPML, the parameters for these test runs may be set from within the make.inc file.
After running a test, the results will be in a file (named after the test) located in tests/data_files. These data files can be viewed as is, or a figure displaying the data can be generated by compiling the associated TeX file (also named after the test) located in tests/TeX. All images can be created and moved into the tests/figures file by running make compile from the root directory of FPML.
The compilation of these TeX files requires pdflatex and imagemagick to first compile the pdf and then convert it to a png. For specific package dependencies see the individual TeX files but note that the typical TeX Live installation should include all necessary packages.