The namespace associated with the the Polylib library (Polylib introduction) More...
Functions | |
static void | Jacobz (const int n, double *z, const double alpha, const double beta) |
Calculate the n zeros, z, of the Jacobi polynomial, i.e. More... | |
static void | TriQL (const int n, double *d, double *e, double **z) |
QL algorithm for symmetric tridiagonal matrix. More... | |
double | gammaF (const double x) |
Calculate the Gamma function , , for integer. More... | |
static void | RecCoeff (const int n, double *a, double *b, const double alpha, const double beta) |
The routine finds the recurrence coefficients a and. More... | |
void | JKMatrix (int n, double *a, double *b) |
Calcualtes the Jacobi-kronrod matrix by determining the. More... | |
void | chri1 (int n, double *a, double *b, double *a0, double *b0, double z) |
Given a weight function through the first n+1. More... | |
void | zwgj (double *z, double *w, const int np, const double alpha, const double beta) |
Gauss-Jacobi zeros and weights. More... | |
void | zwgrjm (double *z, double *w, const int np, const double alpha, const double beta) |
Gauss-Radau-Jacobi zeros and weights with end point at z=-1. More... | |
void | zwgrjp (double *z, double *w, const int np, const double alpha, const double beta) |
Gauss-Radau-Jacobi zeros and weights with end point at z=1. More... | |
void | zwglj (double *z, double *w, const int np, const double alpha, const double beta) |
Gauss-Lobatto-Jacobi zeros and weights with end point at z=-1,1. More... | |
void | zwgk (double *z, double *w, const int npt, const double alpha, const double beta) |
Gauss-Kronrod-Jacobi zeros and weights. More... | |
void | zwrk (double *z, double *w, const int npt, const double alpha, const double beta) |
Gauss-Radau-Kronrod-Jacobi zeros and weights. More... | |
void | zwlk (double *z, double *w, const int npt, const double alpha, const double beta) |
Gauss-Lobatto-Kronrod-Jacobi zeros and weights. More... | |
void | Dgj (double *D, const double *z, const int np, const double alpha, const double beta) |
Compute the Derivative Matrix and its transpose associated. More... | |
void | Dgrjm (double *D, const double *z, const int np, const double alpha, const double beta) |
Compute the Derivative Matrix and its transpose associated. More... | |
void | Dgrjp (double *D, const double *z, const int np, const double alpha, const double beta) |
Compute the Derivative Matrix associated with the. More... | |
void | Dglj (double *D, const double *z, const int np, const double alpha, const double beta) |
Compute the Derivative Matrix associated with the. More... | |
double | hgj (const int i, const double z, const double *zgj, const int np, const double alpha, const double beta) |
Compute the value of the i th Lagrangian interpolant through. More... | |
double | hgrjm (const int i, const double z, const double *zgrj, const int np, const double alpha, const double beta) |
Compute the value of the i th Lagrangian interpolant through the. More... | |
double | hgrjp (const int i, const double z, const double *zgrj, const int np, const double alpha, const double beta) |
Compute the value of the i th Lagrangian interpolant through the. More... | |
double | hglj (const int i, const double z, const double *zglj, const int np, const double alpha, const double beta) |
Compute the value of the i th Lagrangian interpolant through the. More... | |
void | Imgj (double *im, const double *zgj, const double *zm, const int nz, const int mz, const double alpha, const double beta) |
Interpolation Operator from Gauss-Jacobi points to an. More... | |
void | Imgrjm (double *im, const double *zgrj, const double *zm, const int nz, const int mz, const double alpha, const double beta) |
Interpolation Operator from Gauss-Radau-Jacobi points. More... | |
void | Imgrjp (double *im, const double *zgrj, const double *zm, const int nz, const int mz, const double alpha, const double beta) |
Interpolation Operator from Gauss-Radau-Jacobi points. More... | |
void | Imglj (double *im, const double *zglj, const double *zm, const int nz, const int mz, const double alpha, const double beta) |
Interpolation Operator from Gauss-Lobatto-Jacobi points. More... | |
void | jacobfd (const int np, const double *z, double *poly_in, double *polyd, const int n, const double alpha, const double beta) |
Routine to calculate Jacobi polynomials, , and their first derivative, . More... | |
void | jacobd (const int np, const double *z, double *polyd, const int n, const double alpha, const double beta) |
Calculate the derivative of Jacobi polynomials. More... | |
void | JacZeros (const int n, double *a, double *b, const double alpha, const double beta) |
Zero and Weight determination through the eigenvalues and eigenvectors of a tridiagonal. More... | |
The namespace associated with the the Polylib library (Polylib introduction)
void Polylib::chri1 | ( | int | n, |
double * | a, | ||
double * | b, | ||
double * | a0, | ||
double * | b0, | ||
double | z | ||
) |
Given a weight function through the first n+1.
coefficients a and b of its orthogonal polynomials
this routine generates the first n recurrence coefficients for the orthogonal
polynomials relative to the modified weight function .
The result will be placed in the array a0 and b0.
LIB_UTILITIES_EXPORT void Polylib::Dgj | ( | double * | D, |
const double * | z, | ||
const int | np, | ||
const double | alpha, | ||
const double | beta | ||
) |
Compute the Derivative Matrix and its transpose associated.
with the Gauss-Jacobi zeros.
associated with the n_th order Lagrangian interpolants through the
np Gauss-Jacobi points z such that
LIB_UTILITIES_EXPORT void Polylib::Dglj | ( | double * | D, |
const double * | z, | ||
const int | np, | ||
const double | alpha, | ||
const double | beta | ||
) |
Compute the Derivative Matrix associated with the.
Gauss-Lobatto-Jacobi zeros.
order Lagrange interpolants through the np
Gauss-Lobatto-Jacobi points z such that
LIB_UTILITIES_EXPORT void Polylib::Dgrjm | ( | double * | D, |
const double * | z, | ||
const int | np, | ||
const double | alpha, | ||
const double | beta | ||
) |
Compute the Derivative Matrix and its transpose associated.
with the Gauss-Radau-Jacobi zeros with a zero at z=-1.
order Lagrangian interpolants through the np Gauss-Radau-Jacobi
points z such that
LIB_UTILITIES_EXPORT void Polylib::Dgrjp | ( | double * | D, |
const double * | z, | ||
const int | np, | ||
const double | alpha, | ||
const double | beta | ||
) |
Compute the Derivative Matrix associated with the.
Gauss-Radau-Jacobi zeros with a zero at z=1.
order Lagrangian interpolants through the np Gauss-Radau-Jacobi
points z such that
double Polylib::gammaF | ( | const double | x | ) |
Calculate the Gamma function , , for integer.
values and halves.
Determine the value of using:
where
LIB_UTILITIES_EXPORT double Polylib::hgj | ( | const int | i, |
const double | z, | ||
const double * | zgj, | ||
const int | np, | ||
const double | alpha, | ||
const double | beta | ||
) |
Compute the value of the i th Lagrangian interpolant through.
the np Gauss-Jacobi points zgj at the arbitrary location z.
LIB_UTILITIES_EXPORT double Polylib::hglj | ( | const int | i, |
const double | z, | ||
const double * | zglj, | ||
const int | np, | ||
const double | alpha, | ||
const double | beta | ||
) |
Compute the value of the i th Lagrangian interpolant through the.
np Gauss-Lobatto-Jacobi points zgrj at the arbitrary location
z.
LIB_UTILITIES_EXPORT double Polylib::hgrjm | ( | const int | i, |
const double | z, | ||
const double * | zgrj, | ||
const int | np, | ||
const double | alpha, | ||
const double | beta | ||
) |
Compute the value of the i th Lagrangian interpolant through the.
np Gauss-Radau-Jacobi points zgrj at the arbitrary location
z. This routine assumes zgrj includes the point -1.
LIB_UTILITIES_EXPORT double Polylib::hgrjp | ( | const int | i, |
const double | z, | ||
const double * | zgrj, | ||
const int | np, | ||
const double | alpha, | ||
const double | beta | ||
) |
Compute the value of the i th Lagrangian interpolant through the.
np Gauss-Radau-Jacobi points zgrj at the arbitrary location
z. This routine assumes zgrj includes the point +1.
LIB_UTILITIES_EXPORT void Polylib::Imgj | ( | double * | im, |
const double * | zgj, | ||
const double * | zm, | ||
const int | nz, | ||
const int | mz, | ||
const double | alpha, | ||
const double | beta | ||
) |
Interpolation Operator from Gauss-Jacobi points to an.
arbitrary distribution at points zm
interpolate a function from at Gauss-Jacobi distribution of nz
zeros zgrj to an arbitrary distribution of mz points zm, i.e.
LIB_UTILITIES_EXPORT void Polylib::Imglj | ( | double * | im, |
const double * | zglj, | ||
const double * | zm, | ||
const int | nz, | ||
const int | mz, | ||
const double | alpha, | ||
const double | beta | ||
) |
Interpolation Operator from Gauss-Lobatto-Jacobi points.
to an arbitrary distrubtion at points zm
interpolate a function from at Gauss-Lobatto-Jacobi distribution of
nz zeros zgrj (where zgrj[0]=-1) to an arbitrary
distribution of mz points zm, i.e.
LIB_UTILITIES_EXPORT void Polylib::Imgrjm | ( | double * | im, |
const double * | zgrj, | ||
const double * | zm, | ||
const int | nz, | ||
const int | mz, | ||
const double | alpha, | ||
const double | beta | ||
) |
Interpolation Operator from Gauss-Radau-Jacobi points.
(including z=-1) to an arbitrary distrubtion at points zm
interpolate a function from at Gauss-Radau-Jacobi distribution of
nz zeros zgrj (where zgrj[0]=-1) to an arbitrary
distribution of mz points zm, i.e.
LIB_UTILITIES_EXPORT void Polylib::Imgrjp | ( | double * | im, |
const double * | zgrj, | ||
const double * | zm, | ||
const int | nz, | ||
const int | mz, | ||
const double | alpha, | ||
const double | beta | ||
) |
Interpolation Operator from Gauss-Radau-Jacobi points.
(including z=1) to an arbitrary distrubtion at points zm
interpolate a function from at Gauss-Radau-Jacobi distribution of
nz zeros zgrj (where zgrj[nz-1]=1) to an arbitrary
distribution of mz points zm, i.e.
LIB_UTILITIES_EXPORT void Polylib::jacobd | ( | const int | np, |
const double * | z, | ||
double * | polyd, | ||
const int | n, | ||
const double | alpha, | ||
const double | beta | ||
) |
Calculate the derivative of Jacobi polynomials.
n th order Jacobi polynomial at the
np points z.
LIB_UTILITIES_EXPORT void Polylib::jacobfd | ( | const int | np, |
const double * | z, | ||
double * | poly_in, | ||
double * | polyd, | ||
const int | n, | ||
const double | alpha, | ||
const double | beta | ||
) |
Routine to calculate Jacobi polynomials, , and their first derivative, .
containing the value of the order Jacobi polynomial
and its
derivative at the np points in z[i]
relationship (see appendix A ref [4]) :
the relationship (see appendix A ref [4]) :
|
static |
Calculate the n zeros, z, of the Jacobi polynomial, i.e.
This routine is only value for
and uses polynomial deflation in a Newton iteration
LIB_UTILITIES_EXPORT void Polylib::JacZeros | ( | const int | n, |
double * | a, | ||
double * | b, | ||
const double | alpha, | ||
const double | beta | ||
) |
Zero and Weight determination through the eigenvalues and eigenvectors of a tridiagonal.
matrix from the three term recurrence relationship.
Set up a symmetric tridiagonal matrix
Where the coefficients a[n], b[n] come from the recurrence relation
where and are the Jacobi (normalized)
orthogonal polynomials ( integer values and
halves). Since the polynomials are orthonormalized, the tridiagonal
matrix is guaranteed to be symmetric. The eigenvalues of this
matrix are the zeros of the Jacobi polynomial.
void Polylib::JKMatrix | ( | int | n, |
double * | a, | ||
double * | b | ||
) |
Calcualtes the Jacobi-kronrod matrix by determining the.
a and coefficients.
The first \a 3n+1 coefficients are already known For more information refer to: "Dirk P. Laurie, Calcualtion of Gauss-Kronrod quadrature rules"
|
static |
The routine finds the recurrence coefficients a and.
b of the orthogonal polynomials
|
static |
QL algorithm for symmetric tridiagonal matrix.
This subroutine is a translation of an algol procedure,
num. math. 12, 377-383(1968) by martin and wilkinson, as modified
in num. math. 15, 450(1970) by dubrulle. Handbook for
auto. comp., vol.ii-linear algebra, 241-248(1971). This is a
modified version from numerical recipes.
This subroutine finds the eigenvalues and first components of the
eigenvectors of a symmetric tridiagonal matrix by the implicit QL
method.
on input:
in its first n-2 positions.
- z is the n by n identity matrix
on output:
of normalised eigenvectors
LIB_UTILITIES_EXPORT void Polylib::zwgj | ( | double * | z, |
double * | w, | ||
const int | np, | ||
const double | alpha, | ||
const double | beta | ||
) |
Gauss-Jacobi zeros and weights.
associated with the Jacobi polynomial ,
LIB_UTILITIES_EXPORT void Polylib::zwgk | ( | double * | z, |
double * | w, | ||
const int | npt, | ||
const double | alpha, | ||
const double | beta | ||
) |
Gauss-Kronrod-Jacobi zeros and weights.
associated with the Jacobi polynomial ,
LIB_UTILITIES_EXPORT void Polylib::zwglj | ( | double * | z, |
double * | w, | ||
const int | np, | ||
const double | alpha, | ||
const double | beta | ||
) |
Gauss-Lobatto-Jacobi zeros and weights with end point at z=-1,1.
associated with polynomial
LIB_UTILITIES_EXPORT void Polylib::zwgrjm | ( | double * | z, |
double * | w, | ||
const int | np, | ||
const double | alpha, | ||
const double | beta | ||
) |
Gauss-Radau-Jacobi zeros and weights with end point at z=-1.
associated with the polynomial .
LIB_UTILITIES_EXPORT void Polylib::zwgrjp | ( | double * | z, |
double * | w, | ||
const int | np, | ||
const double | alpha, | ||
const double | beta | ||
) |
Gauss-Radau-Jacobi zeros and weights with end point at z=1.
associated with the polynomial .
LIB_UTILITIES_EXPORT void Polylib::zwlk | ( | double * | z, |
double * | w, | ||
const int | npt, | ||
const double | alpha, | ||
const double | beta | ||
) |
Gauss-Lobatto-Kronrod-Jacobi zeros and weights.
associated with the Jacobi polynomial ,
LIB_UTILITIES_EXPORT void Polylib::zwrk | ( | double * | z, |
double * | w, | ||
const int | npt, | ||
const double | alpha, | ||
const double | beta | ||
) |
Gauss-Radau-Kronrod-Jacobi zeros and weights.
associated with the Jacobi polynomial ,