Procedures

ProcedureLocationProcedure TypeDescription
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.

Read more…
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.

Read more…
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.

Read more…
cheb_eval chebyshev_m Function

Evaluates a Chebyshev polynomial of degree n at x (-1 <= x <= 1).

Read more…
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].

Read more…
cheb_n2dmat chebyshev_m Subroutine

Calculates the nodal second derivative matrix for CGL/CG/CGR nodes.

Read more…
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].

Read more…
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:

Read more…
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:

Read more…
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:

Read more…
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.

Read more…
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.

Read more…
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.

Read more…
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.

Read more…
isclose utils_math_m Function

Checks if two floating point numbers of type double are close within tolerance.

Read more…
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 start < finish, the returned step size (if step is present) will be negative.

logspace utils_math_m Subroutine

Generates numbers spaced evenly on a log scale. In linear space, the sequence starts at base ** start (base to the power of start) and ends with base ** stop

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

Read more…
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)