Fortran library for Chebyshev polynomials, derivatve matrices, and interpolation.
cheb_nodeReturns the chebyshev nodescheb_evalEvaluates a chebyshev polynomialcheb_ser_evalEvaluates a chebyshev series. Multivariate versionscheb_ser_eval2andcheb_ser_eval3.cheb_quadQuadrature in single variable. Multivariate versionscheb_quad2andcheb_quad3.cheb_n1dmCalculates the nodal first derivative matrixcheb_n2dmCalculates the nodal second derivative matrixcheb_calc_dctmatCalculates the dicrete chebyshev transform matrixcheb_calc_dictmatCalculates the discrete inverse chebyshev transform matrixbary_weightsCalculates the barycentric weightslag_intrpEvaluates 1D Lagrange interpolant at a single point.lag_intrp_mat1D Lagrange interpolation matrix.lag_intrp_grdLagrange interpolation to a grid in 1 dimension. For 2 and 3 dimensions uselag_intrp_grd2andlag_intrp_grd3.
Documentation generated by FORD is available here.
For the call signatures of the routines listed above check the documentation
page for the chebyshev_m module.
Prerequisites
-
A Fortran 2003 compliant compiler. The code has been tested with Intel and gfortran compilers (any recent version will work fine).
-
Intel Math Kernel Library (classic or oneAPI MKL), available from the [Intel website](https://www.intel.com/content/www/us/en/developer/tools/oneapi/ onemkl.html). The code uses BLAS routines via the Fortran 95 interfaces from MKL. The interfaces can be recompiled for a non-Intel compiler, e.g., gfortran.
A makefile is available in the build directory for gfortran compiler, with
recompiled Fortran 95 interfaces. If using Intel compilers (ifort/ifx) or
for more details on how to link to MKL check with the oneMKL link line
advisor.
Note that MKL will not work with Apple Silicon macs, but will work on the older Intel Macs.
After succesful compilation, a static library libchebpak.a will be available
in the lib directory, which can be linked to the calling program.