| Procedure | Location | Procedure Type | Description |
|---|---|---|---|
| add_transpose | utils_math_m | Subroutine | Adds a square matrix and its transpose in place: |
| allclose | utils_math_m | Interface | Checks if two arrays are elementwise close within tolerance |
| allclose_rank1 | utils_math_m | Function | Checks if two rank-1 floating point arrays of type double are close within tolerance. |
| allclose_rank2 | utils_math_m | Function | Checks if two rank-2 floating point arrays of type double are close within tolerance. |
| allclose_rank3 | utils_math_m | Function | Checks if two rank-3 floating point arrays of type double are close within tolerance. |
| bary_weights | chebyshev_m | Subroutine | Calculates the barycentric weights for a given set of nodes. As of now, assumues CGL nodes. TODO: extend stably for the general case (CGL, CGR, CG) |
| cheb_dctmat | chebyshev_m | Subroutine | Calculates the discrete Chebyshev transform matrix for a single variable. The matrix is not symmetric and assumes the nodal coordinates to be in ascending order. |
| cheb_dctmat2 | chebyshev_m | Subroutine | This subroutine transforms the function values at the CGL points to the coefficients of the Chebyshev series for two variables. The matrix is not symmetric and assumes the nodal coordinates to be in ascending order. |
| cheb_dictmat | chebyshev_m | Subroutine | Calculates the discrete inverse Chebyshev transform matrix. The matrix is not symmetric and yields the nodal function values assuming the nodal coordinates are in ascending order. |
| cheb_eval | chebyshev_m | Function | Evaluates a Chebyshev polynomial of degree n at x (-1 <= x <= 1). |
| cheb_n1dmat | chebyshev_m | Subroutine | Calculates the nodal first derivative matrix for CGL nodes in [x0,x1] Assumes the nodal coordinates to be in ascending order in the domain [-1,1]. |
| cheb_n2dmat | chebyshev_m | Subroutine | Calculates the nodal second derivative matrix for CGL/CG/CGR nodes. |
| cheb_nod_deriv | chebyshev_m | Subroutine | Calculates the derivative of a 1D function at the nodes. |
| cheb_nod_deriv2 | chebyshev_m | Subroutine | Calculates the derivative of a 2D function at the nodes. |
| cheb_nod_deriv3 | chebyshev_m | Subroutine | Calculates the derivative of a 3D function at the nodes. |
| cheb_node | chebyshev_m | Subroutine | This subroutine returns coordinates of the Chebyshev nodes in [a,b]. |
| cheb_quad | chebyshev_m | Function | This subroutine evaluates an integral using Gauss-Chebyshev (CGL/CGR/CG) quadrature for a single variable. |
| cheb_quad2 | chebyshev_m | Function | This subroutine evaluates an integral using Gauss-Chebyshev (CGL/CGR/CG) quadrature for two variables. |
| cheb_quad3 | chebyshev_m | Function | This subroutine evaluates an integral using Gauss-Chebyshev (CGL/CGR/CG) quadrature for three variables. |
| cheb_ser_eval | chebyshev_m | Function | f(x), x E [-1,1] is given by the following appproximation formula in terms of Chebyshev polynomials: |
| cheb_ser_eval2 | chebyshev_m | Function | f(x,y), (x,y) E [-1,1]x[-1,1] is given by the following appproximation formula in terms of Chebyshev polynomials: |
| cheb_ser_eval3 | chebyshev_m | Function | f(x,y), (x,y) E [-1,1]x[-1,1] is given by the following appproximation formula in terms of Chebyshev polynomials: |
| cheb_tensorize_ndm2 | chebyshev_m | Subroutine | Tensorize the nodal derivative matrix for two variables in the domain [-1,1]x[-1,1]. |
| cheb_tensorize_ndm3 | chebyshev_m | Subroutine | Tensorize the nodal derivative matrix for three variables in the domain [-1,1]x[-1,1]X[-1,1]. |
| cross | utils_math_m | Subroutine | Calculates the cross product between two 3-element vectors |
| cross_mat | utils_math_m | Subroutine | Calculates the cross product matrix of a 3-element vector. The cross product matrix A of a is defined as a x b = A . b, where b is another 3-element vector. |
| deg2rad | utils_math_m | Subroutine | |
| det | utils_math_m | Function | Returns the determinant of an (N x N) matrix, where N = 2, 3, or 4. |
| dsyevc3 | utils_math_m | Subroutine | Calculates the eigenvalues of a symmetric 3x3 matrix A using Cardano's analytical algorithm. Only the diagonal and upper triangular parts of A are accessed. The access is read-only. |
| eigval_33rsym | utils_math_m | Subroutine | Calculates the eigenvalues of a 3 x 3 real symmetric matrix. The eigenvalues calculated are in decreasing order. Only the diagonal and lower triangular part of the matrix is accessed. |
| get_diagonal | utils_math_m | Subroutine | Returns the diagonal elements of a square matrix. |
| get_quad_form | utils_math_m | Function | Calculates the quadratic form x^T A x, where A is an n x n matrix and x is a vector of length n |
| identity | utils_math_m | Subroutine | Creates an identity matrix of size n x n. |
| invert_mat33 | utils_math_m | Subroutine | Inverts a 3x3 matrix. |
| isclose | utils_math_m | Function | Checks if two floating point numbers of type double are close within tolerance. |
| lag_intrp | chebyshev_m | Function | Evaluates the Lagrange interpolant (barycentric) at a given point p from nodal coordinates and nodal function values in 1D. |
| lag_intrp_grd | chebyshev_m | Subroutine | Interpolates nodal function values to a grid using barycentric lagrange interpolation. |
| lag_intrp_grd2 | chebyshev_m | Subroutine | Interpolates nodal function values to a grid using barycentric lagrange interpolation in two variables. |
| lag_intrp_grd3 | chebyshev_m | Subroutine | Interpolates nodal function values to a grid using barycentric lagrange interpolation in three variables. |
| lag_intrp_mat | chebyshev_m | Subroutine | Computes the Lagrange interpolation (barycentric) matrix. |
| linspace | utils_math_m | Subroutine | Generates evenly spaced numbers over a specified interval. Both end
points are included. If |
| logspace | utils_math_m | Subroutine | Generates numbers spaced evenly on a log scale.
In linear space, the sequence starts at |
| multiply_transpose | utils_math_m | Subroutine | Multiplies a matrix with its transpose: |
| orth | utils_math_m | Subroutine | Orthogonalizes a set of vectors in-place using Gram-Schmidt orthonormalization |
| outer | utils_math_m | Subroutine | Calculates the outer product of two vectors, . |
| rad2deg | utils_math_m | Subroutine | |
| scalar_triple_product | utils_math_m | Function | Returns the scalar triple product a.(b x c) |
| subtract_transpose | utils_math_m | Subroutine | Calculates the difference of a square matrix and its transpose in place: |
| swap | utils_math_m | Interface | Swaps two arrays |
| swap_complex | utils_math_m | Subroutine | |
| swap_integer | utils_math_m | Subroutine | |
| swap_real | utils_math_m | Subroutine | |
| trace | utils_math_m | Function | Returns the trace of a square matrix |
| unitize | utils_math_m | Subroutine | Normalizes a vector in-place. If the magnitude of the vector is nearly zero, no normalization takes place and the vector is returned as is with a warning message. |
| vector_triple_product | utils_math_m | Subroutine | Returns the vector triple product d = a x (b x c) |