| OpenCMISS-Iron Internal API Documentation
    | 
This module contains all mathematics support routines. More...
| Data Types | |
| interface | coth | 
| Returns hyperbolic cotangent of argument.  More... | |
| interface | cross_product | 
| Calculates the vector cross product of two vectors.  More... | |
| interface | crossproduct | 
| Calculates the vector cross product of two vectors.  More... | |
| interface | d_cross_product | 
| Calculates the the vector cross product of A*B in C and the N derivatives, D_C, of the vector cross product given the derivatives D_A and D_B of A and B.  More... | |
| interface | dcrossproduct | 
| Calculates the the vector cross product of a x b in c and the n derivatives, dc, of the vector cross product given the derivatives da and db of a and b.  More... | |
| interface | determinant | 
| Returns the determinant of a matrix.  More... | |
| interface | edp | 
| Calculates the elliptic integral of the second kind - E(m).  More... | |
| interface | eigenvalue | 
| Returns the eigenvalues of a matrix.  More... | |
| interface | eigenvector | 
| Returns the eigenvectors of a matrix.  More... | |
| interface | i0 | 
| Calculates the modified Bessel function of the first kind of order 0 using the approximation of Abromowitz and Stegun.  More... | |
| interface | i1 | 
| Calculates the modified Bessel function of the first kind of order 1 using the approximation of Abromowitz and Stegun.  More... | |
| interface | identitymatrix | 
| Returns the identity matrix.  More... | |
| interface | invert | 
| Returns the inverse of a matrix.  More... | |
| interface | k0 | 
| Calculates the modified Bessel function of the second kind of order 0 using the approximation of Abromowitz and Stegun.  More... | |
| interface | k1 | 
| Calculates the modified Bessel function of the second kind of order 1 using the approximation of Abromowitz and Stegun.  More... | |
| interface | kdp | 
| Calculates the elliptic integral of the first kind - K(m).  More... | |
| interface | l2norm | 
| Returns the L2 norm of a vector.  More... | |
| interface | matrix_product | 
| Calculates and returns the matrix-product A*B in the matrix C.  More... | |
| interface | matrix_transpose | 
| Returns the transpose of a matrix A in A^T.  More... | |
| interface | matrix_vector_product | 
| Calculates and returns the matrix-vector-product A*b in the vector c.  More... | |
| interface | matrixproduct | 
| Calculates and returns the matrix-product A*B in the matrix C.  More... | |
| interface | matrixproducttranspose | 
| Calculates and returns the matrix-product-transpose A*B^T in the matrix C.  More... | |
| interface | matrixtranspose | 
| Returns the transpose of a matrix A in A^T.  More... | |
| interface | matrixtransposeproduct | 
| Calculates and returns the matrix-transpose product A^T*B in the matrix C.  More... | |
| interface | matrixtransposevectorproduct | 
| Calculates and returns the matrix-transpose vector-product A^T*b in the vector c.  More... | |
| interface | matrixvectorproduct | 
| Calculates and returns the matrix-vector-product A*b in the vector c.  More... | |
| interface | norm_cross_product | 
| Calculates the normalised vector cross product of two vectors.  More... | |
| interface | normalise | 
| Normalises a vector.  More... | |
| interface | normcrossproduct | 
| Calculates the normalised vector cross product of two vectors.  More... | |
| interface | solve_small_linear_system | 
| Solves a small linear system Ax=b.  More... | |
| interface | solvesmalllinearsystem | 
| Solves a small linear system Ax=b.  More... | |
| Functions/Subroutines | |
| subroutine | crossproductintg (a, b, c, err, error,) | 
| Calculates and returns the vector cross-product of the integer vectors a x b in c.  More... | |
| subroutine | crossproductsp (a, b, c, err, error,) | 
| Calculates and returns the vector cross-product of the single precision vectors a x b in c.  More... | |
| subroutine | crossproductdp (a, b, c, err, error,) | 
| Calculates and returns the vector cross-product of the double precision vectors a x b in c.  More... | |
| subroutine | dcrossproductintg (n, a, b, c, da, db, dc, err, error,) | 
| Calculates the the vector cross product of a x b in c and the n derivatives, dc, of the vector cross product given the derivatives da and db of a and b for integer vectors.  More... | |
| subroutine | dcrossproductsp (n, a, b, c, da, db, dc, err, error,) | 
| Calculates the the vector cross product of a x b in c and the n derivatives, dc, of the vector cross product given the derivatives da and db of a and b for single precision vectors.  More... | |
| subroutine | dcrossproductdp (n, a, b, c, da, db, dc, err, error,) | 
| Calculates the the vector cross product of a x b in c and the n derivatives, dc, of the vector cross product given the derivatives da and db of a and b for double precision vectors.  More... | |
| subroutine | matrixvectorproductsp (A, b, c, err, error,) | 
| Calculates and returns the matrix-vector product of the single precision vector A*b in c.  More... | |
| subroutine | matrixvectorproductdp (A, b, c, err, error,) | 
| Calculates and returns the matrix-vector product of the double precision vectir A*b in c.  More... | |
| subroutine | matrixtransposevectorproductsp (A, b, c, err, error,) | 
| Calculates and returns the matrix-transpose vector product of the single precision vector A^T*b in c.  More... | |
| subroutine | matrixtransposevectorproductdp (A, b, c, err, error,) | 
| Calculates and returns the matrix-transpose vector product of the double precision vector A^T*b in c.  More... | |
| integer(intg) function | determinantfullintg (A, err, error) | 
| Returns the determinant of a full integer matrix A.  More... | |
| real(sp) function | determinantfullsp (A, err, error) | 
| Returns the determinant of a full single precision matrix A.  More... | |
| real(dp) function | determinantfulldp (A, err, error) | 
| Returns the determinant of a full double precision matrix A.  More... | |
| pure real(dp) function | edpdp (x) | 
| Calculates the elliptic integral of the second kind - E(m), for a double precision argument.  More... | |
| pure real(sp) function | edpsp (x) | 
| Calculates the elliptic integral of the second kind - E(m), for a single precision argument.  More... | |
| subroutine | eigenvaluefullsp (A, eValues, err, error,) | 
| Returns the eigenvalues of a full single precision matrix A.  More... | |
| subroutine | eigenvaluefulldp (A, eValues, err, error,) | 
| Returns the eigenvalues of a full double precision matrix A.  More... | |
| subroutine | eigenvectorfullsp (A, eValue, eVector, err, error,) | 
| Returns the normalised eigenvector of a full single precision symmetric matrix A that corresponds to the eigenvalue eValue.  More... | |
| subroutine | eigenvectorfulldp (A, eValue, eVector, err, error,) | 
| Returns the normalised eigenvector of a full double precision symmetric matrix A that corresponds to the eigenvalue eValue.  More... | |
| pure real(dp) function | i0dp (x) | 
| Calculates the modified Bessel function of the first kind of order 0 using the approximation of Abromowitz and Stegun, for a double precision argument.  More... | |
| pure real(sp) function | i0sp (x) | 
| Calculates the modified Bessel function of the first kind of order 0 using the approximation of Abromowitz and Stegun, for a single precision argument.  More... | |
| pure real(dp) function | i1dp (x) | 
| Calculates the modified Bessel function of the first kind of order 1 using the approximation of Abromowitz and Stegun, for a double precision argument.  More... | |
| pure real(sp) function | i1sp (x) | 
| Calculates the modified Bessel function of the first kind of order 1 using the approximation of Abromowitz and Stegun, for a single precision argument.  More... | |
| subroutine | identitymatrixsp (A, err, error,) | 
| Returns an identity matrix.  More... | |
| subroutine | identitymatrixdp (A, err, error,) | 
| Returns an identity matrix.  More... | |
| subroutine | invertfullsp (A, B, det, err, error,) | 
| Inverts a full single precision matrix A to give matrix B and returns the determinant of A in det.  More... | |
| subroutine | invertfulldp (A, B, det, err, error,) | 
| Inverts a full double precision matrix A to give matrix B and returns the determinant of A in det.  More... | |
| pure real(dp) function | k0dp (x) | 
| Calculates the modified Bessel function of the second kind of order 1 using the approximation of Abromowitz and Stegun, for a double precision argument.  More... | |
| pure real(sp) function | k0sp (x) | 
| Calculates the modified Bessel function of the second kind of order 0 using the approximation of Abromowitz and Stegun, for a single precision argument.  More... | |
| pure real(dp) function | k1dp (x) | 
| Calculates the modified Bessel function of the second kind of order 1 using the approximation of Abromowitz and Stegun, for a double precision argument.  More... | |
| pure real(sp) function | k1sp (x) | 
| Calculates the modified Bessel function of the second kind of order 1 using the approximation of Abromowitz and Stegun, for a single precision argument.  More... | |
| pure real(dp) function | kdpdp (x) | 
| Calculates the elliptic integral of the first kind - K(m), for a double precision argument.  More... | |
| pure real(sp) function | kdpsp (x) | 
| Calculates the elliptic integral of the first kind - K(m), for a single precision argument.  More... | |
| pure real(sp) function | l2normsp (a) | 
| Returns the L2-norm of the single precision vector a.  More... | |
| real(dp) function | l2normdp (A) | 
| Returns the L2-norm of the double precision vector a.  More... | |
| subroutine | matrixproductsp (A, B, C, err, error,) | 
| Calculates and returns the matrix-product of the single precision matrix A*B in C for single precision arguments.  More... | |
| subroutine | matrixproductdp (A, B, C, err, error,) | 
| Calculates and returns the matrix-product of the double precision matrix A*B in C.  More... | |
| subroutine | matrixtransposeproductsp (A, B, C, err, error,) | 
| Calculates and returns the matrix-transpose product of the single precision matrix A^T*B in C for single precision arguments.  More... | |
| subroutine | matrixtransposeproductdp (A, B, C, err, error,) | 
| Calculates and returns the matrix-transpose product of the double precision matrix A^T*B in C for double precision arguments.  More... | |
| subroutine | matrixproducttransposesp (A, B, C, err, error,) | 
| Calculates and returns the matrix-product-transpose of the single precision matrix A*B^T in C for single precision arguments.  More... | |
| subroutine | matrixproducttransposedp (A, B, C, err, error,) | 
| Calculates and returns the matrix-product-transpose of the double precision matrix A*B^T in C.  More... | |
| subroutine | matrixtransposesp (A, AT, err, error,) | 
| Returns the transpose of a single precision matrix A in AT.  More... | |
| subroutine | matrixtransposedp (A, AT, err, error,) | 
| Returns the transpose of a double precision matrix A in AT.  More... | |
| real(sp) function, dimension(size(a, 1)) | normalisesp (a, err, error) | 
| Normalises a real single precision vector a.  More... | |
| real(dp) function, dimension(size(a, 1)) | normalisedp (a, err, error) | 
| Normalises a real double precision vector a.  More... | |
| subroutine | normcrossproductsp (a, b, c, err, error,) | 
| Calculates and returns the normalised vector cross-prouct of the single precision vectors a x b in c.  More... | |
| subroutine | normcrossproductdp (a, b, c, err, error,) | 
| Calculates and returns the normalised vector cross-prouct of the double precision vectors a x b in c.  More... | |
| subroutine | solvesmalllinearsystemsp (A, x, b, err, error,) | 
| Finds the solution to a small single precision linear system Ax=b.  More... | |
| subroutine | solvesmalllinearsystemdp (A, x, b, err, error,) | 
| Finds the solution to a small double precision linear system Ax=b.  More... | |
| real(sp) function | cothsp (a) | 
| Calculates single precision hyperbolic cotangent function.  More... | |
| real(dp) function | cothdp (a) | 
| Calculates double precision hyperbolic cotangent function.  More... | |
| subroutine, public | spline_cubic_set (n, t, y, ibcbeg, ybcbeg, ibcend, ybcend, ypp, err, error,) | 
| Calculates second derivatives of a cubic spline function for a tabulated function y(x). Call spline_cubic_val to evaluate at t values. algorithm adapted from John Burkhardt's spline_cubic_set routine from the SPLINE package (http://people.sc.fsu.edu/~jburkardt/f_src/spline/spline.html)  More... | |
| subroutine, public | s3_fs (a1, a2, a3, n, b, x, err, error,) | 
| S3_FS factors and solves a tridiagonal linear system. algorithm adapted from John Burkhardt's s3_fs routine from the SPLINE package (http://people.sc.fsu.edu/~jburkardt/f_src/spline/spline.html)  More... | |
| subroutine, public | spline_cubic_val (n, t, y, ypp, tval, yval, ypval, yppval, err, error,) | 
| Evaluates a cubic spline at a specified point. First call spline_cubic_set to calculate derivatives algorithm adapted from John Burkhardt's spline_cubic_val routine from the SPLINE package (http://people.sc.fsu.edu/~jburkardt/f_src/spline/spline.html)  More... | |
This module contains all mathematics support routines.
| 
 | private | 
| 
 | private | 
| 
 | private | 
Calculates and returns the vector cross-product of the double precision vectors a x b in c.
| [in] | a | The first vector in the cross product | 
| [in] | b | The second vector in the cross product | 
| [out] | c | On exit, the cross product of the first and second vectors | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 352 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Calculates and returns the vector cross-product of the integer vectors a x b in c.
| [in] | a | The first vector in the cross product | 
| [in] | b | The second vector in the cross product | 
| [out] | c | On exit, the cross product of the first and second vectors | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 270 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Calculates and returns the vector cross-product of the single precision vectors a x b in c.
| [in] | a | The first vector in the cross product | 
| [in] | b | The second vector in the cross product | 
| [out] | c | On exit, the cross product of the first and second vectors | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 311 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Calculates the the vector cross product of a x b in c and the n derivatives, dc, of the vector cross product given the derivatives da and db of a and b for double precision vectors.
| [in] | n | The number of derivatives | 
| [in] | a | The a vector | 
| [in] | b | The b vector | 
| [out] | c | On exit, the cross product of a x b | 
| [in] | da | The n derivatives of a | 
| [in] | db | The n derivatives of b | 
| [out] | dc | On exit, the derivatives of c | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 502 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Calculates the the vector cross product of a x b in c and the n derivatives, dc, of the vector cross product given the derivatives da and db of a and b for integer vectors.
| [in] | n | The number of derivatives | 
| [in] | a | The a vector | 
| [in] | b | The b vector | 
| [out] | c | On exit, the cross product of a x b | 
| [in] | da | The n derivatives of a | 
| [in] | db | The n derivatives of b | 
| [out] | dc | On exit, the derivatives of c | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 394 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Calculates the the vector cross product of a x b in c and the n derivatives, dc, of the vector cross product given the derivatives da and db of a and b for single precision vectors.
| [in] | n | The number of derivatives | 
| [in] | a | The a vector | 
| [in] | b | The b vector | 
| [out] | c | On exit, the cross product of a x b | 
| [in] | da | The n derivatives of a | 
| [in] | db | The n derivatives of b | 
| [out] | dc | On exit, the derivatives of c | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 448 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Returns the determinant of a full double precision matrix A.
| [in] | a | The matrix to find the determinant of | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 801 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Returns the determinant of a full integer matrix A.
| [in] | a | The matrix to find the determinant of | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 719 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Returns the determinant of a full single precision matrix A.
| [in] | a | The matrix to find the determinant of | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 760 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
| 
 | private | 
| 
 | private | 
Returns the eigenvalues of a full double precision matrix A.
| [in] | a | The matrix to find the eigenvalues of | 
| [out] | evalues | On exit, the eigenvalues of the matrix | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 993 of file maths.f90.
References base_routines::enters(), base_routines::exits(), constants::pi, and constants::zero_tolerance_dp.
| 
 | private | 
Returns the eigenvalues of a full single precision matrix A.
| [in] | a | The matrix to find the eignenvalues for | 
| [out] | evalues | On exit, the eignevalues | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 905 of file maths.f90.
References base_routines::enters(), base_routines::exits(), and constants::zero_tolerance_sp.
| 
 | private | 
Returns the normalised eigenvector of a full double precision symmetric matrix A that corresponds to the eigenvalue eValue.
| [in] | a | The matrix to find the eignevectors for | 
| [in] | evalue | The eigenvalue to find the eignevector for | 
| [out] | evector | On exit, the eigenvector corresponding the the eigenvalue | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 1168 of file maths.f90.
References base_routines::enters(), base_routines::exits(), and constants::zero_tolerance_dp.
| 
 | private | 
Returns the normalised eigenvector of a full single precision symmetric matrix A that corresponds to the eigenvalue eValue.
| [in] | a | The matrix to find the eignevectors for | 
| [in] | evalue | The eigenvalue to find the eignevector for | 
| [out] | evector | On exit, the eigenvector corresponding the the eigenvalue | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 1081 of file maths.f90.
References base_routines::enters(), base_routines::exits(), and constants::zero_tolerance_sp.
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
Returns an identity matrix.
| [out] | a | On exit, the identity matrix | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 1431 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Returns an identity matrix.
| [out] | a | On exit, the identity matrix | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 1379 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Inverts a full double precision matrix A to give matrix B and returns the determinant of A in det.
| [in] | a | The matrix A to invert | 
| [out] | b | On exit, the inverse of A | 
| [out] | det | On exit, the determinant of A | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 1556 of file maths.f90.
References base_routines::enters(), base_routines::exits(), and constants::zero_tolerance_dp.
| 
 | private | 
Inverts a full single precision matrix A to give matrix B and returns the determinant of A in det.
| [in] | a | The A matrix to invert | 
| [out] | b | On exit, the inverse of A | 
| [out] | det | On exit, the determinant of A | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 1483 of file maths.f90.
References base_routines::enters(), base_routines::exits(), and constants::zero_tolerance_sp.
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
Calculates and returns the matrix-product of the double precision matrix A*B in C.
| [in] | a | The A matrix | 
| [in] | b | The B matrix | 
| [out] | c | On exit, the product matrix C=A*B | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 1979 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Calculates and returns the matrix-product of the single precision matrix A*B in C for single precision arguments.
| [in] | a | The first matrix A | 
| [in] | b | The second matrix B | 
| [out] | c | On exit, the product matrix C=A*B | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 1929 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Calculates and returns the matrix-product-transpose of the double precision matrix A*B^T in C.
| [in] | a | The A matrix | 
| [in] | b | The B matrix | 
| [out] | c | On exit, the product matrix C=A*B^T | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 2178 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Calculates and returns the matrix-product-transpose of the single precision matrix A*B^T in C for single precision arguments.
| [in] | a | The first matrix A | 
| [in] | b | The second matrix B | 
| [out] | c | On exit, the product matrix C=A*B^T | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 2128 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Returns the transpose of a double precision matrix A in AT.
| [in] | a | The matrix to take the transpose of | 
| [out] | at | On exit, the transpose of the matrix | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 2277 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Calculates and returns the matrix-transpose product of the double precision matrix A^T*B in C for double precision arguments.
| [in] | a | The first matrix A | 
| [in] | b | The second matrix B | 
| [out] | c | On exit, the product matrix C=A^T*B | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 2079 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Calculates and returns the matrix-transpose product of the single precision matrix A^T*B in C for single precision arguments.
| [in] | a | The first matrix A | 
| [in] | b | The second matrix B | 
| [out] | c | On exit, the product matrix C=A^T*B | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 2029 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Returns the transpose of a single precision matrix A in AT.
| [in] | a | The matrix to take the transpose of | 
| [out] | at | On exit, the transpose of the matrix | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 2228 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Calculates and returns the matrix-transpose vector product of the double precision vector A^T*b in c.
| [in] | a | The A matrix | 
| [in] | b | The b vector | 
| [out] | c | On exit, the product vector c=A^T*b | 
| err | The error code | |
| [out] | error | The error string | 
Definition at line 678 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Calculates and returns the matrix-transpose vector product of the single precision vector A^T*b in c.
| [in] | a | The A matrix | 
| [in] | b | The b vector | 
| [out] | c | On exit, the product vector c=A^T*b | 
| err | The error code | |
| [out] | error | The error string | 
Definition at line 637 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Calculates and returns the matrix-vector product of the double precision vectir A*b in c.
| [in] | a | The A matrix | 
| [in] | b | The b vector | 
| [out] | c | On exit, the product vector c=A*b | 
| err | The error code | |
| [out] | error | The error string | 
Definition at line 596 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Calculates and returns the matrix-vector product of the single precision vector A*b in c.
| [in] | a | The A matrix | 
| [in] | b | The b vector | 
| [out] | c | On exit, the product vector c=A*b | 
| err | The error code | |
| [out] | error | The error string | 
Definition at line 555 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Normalises a real double precision vector a.
| [in] | a | The vector to normalise | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 2359 of file maths.f90.
References base_routines::enters(), base_routines::exits(), and constants::zero_tolerance_dp.
| 
 | private | 
Normalises a real single precision vector a.
| [in] | a | The vector to normalise | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 2326 of file maths.f90.
References base_routines::enters(), base_routines::exits(), and constants::zero_tolerance_sp.
| 
 | private | 
Calculates and returns the normalised vector cross-prouct of the double precision vectors a x b in c.
| [in] | a | The first vector in the cross product | 
| [in] | b | The second vector in the cross product | 
| [out] | c | On exit, the normalised cross product of the first and second vectors | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 2420 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Calculates and returns the normalised vector cross-prouct of the single precision vectors a x b in c.
| [in] | a | The first vector in the cross product | 
| [in] | b | The second vector in the cross product | 
| [out] | c | On exit, the normalised cross product of the first and second vectors | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 2392 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| subroutine, public maths::s3_fs | ( | real(dp), dimension(2:n), intent(inout) | a1, | 
| real(dp), dimension(1:n), intent(inout) | a2, | ||
| real(dp), dimension(1:n-1), intent(inout) | a3, | ||
| integer(intg), intent(in) | n, | ||
| real(dp), dimension(n), intent(inout) | b, | ||
| real(dp), dimension(n), intent(out) | x, | ||
| integer(intg), intent(out) | err, | ||
| type(varying_string), intent(out) | error | ||
| ) | 
S3_FS factors and solves a tridiagonal linear system. algorithm adapted from John Burkhardt's s3_fs routine from the SPLINE package (http://people.sc.fsu.edu/~jburkardt/f_src/spline/spline.html)
| [in,out] | a1 | IN: nonzero diagonal of linear system OUT: factorization info | 
| [in,out] | a2 | IN: nonzero diagonal of linear system OUT: factorization info | 
| [in,out] | a3 | IN: nonzero diagonal of linear system OUT: factorization info | 
| [in] | n | size of x,y arrays to interpolate values from | 
| [in,out] | b | IN: RHS of linear system OUT: factorization info | 
| [out] | x | solution of linear system | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 2678 of file maths.f90.
References base_routines::enters(), base_routines::exits(), and constants::zero_tolerance.
Referenced by spline_cubic_set().
| 
 | private | 
Finds the solution to a small double precision linear system Ax=b.
| [in] | a | The A matrix | 
| [out] | x | On exit, the solution vector x | 
| [in] | b | The RHS vector b | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 2493 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| 
 | private | 
Finds the solution to a small single precision linear system Ax=b.
| [in] | a | The A matrix | 
| [out] | x | On exit, the solution vector x | 
| [in] | b | The RHS vector b | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 2448 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
| subroutine, public maths::spline_cubic_set | ( | integer(intg), intent(in) | n, | 
| real(dp), dimension(n), intent(in) | t, | ||
| real(dp), dimension(n), intent(in) | y, | ||
| integer(intg), intent(in) | ibcbeg, | ||
| real(dp), intent(in) | ybcbeg, | ||
| integer(intg), intent(in) | ibcend, | ||
| real(dp), intent(in) | ybcend, | ||
| real(dp), dimension(n), intent(out) | ypp, | ||
| integer(intg), intent(out) | err, | ||
| type(varying_string), intent(out) | error | ||
| ) | 
Calculates second derivatives of a cubic spline function for a tabulated function y(x). Call spline_cubic_val to evaluate at t values. algorithm adapted from John Burkhardt's spline_cubic_set routine from the SPLINE package (http://people.sc.fsu.edu/~jburkardt/f_src/spline/spline.html)
| [in] | n | size of x,y arrays to interpolate values from | 
| [in] | t | t array: known values | 
| [in] | y | y array: values to interpolate | 
| [in] | ibcbeg | left boundary condition flag | 
| [in] | ybcbeg | 1st derivative interpolating function at point 1 (left boundary) | 
| [in] | ibcend | right boundary condition flag | 
| [in] | ybcend | 1st derivative interpolating function at point n (right boundary) | 
| [out] | ypp | 2nd derivatives of interpolating function at x values | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 2575 of file maths.f90.
References base_routines::enters(), base_routines::exits(), and s3_fs().
Referenced by navier_stokes_equations_routines::NavierStokes_PreSolveUpdateBoundaryConditions::navierstokes_presolveupdateboundaryconditions().
| subroutine, public maths::spline_cubic_val | ( | integer(intg), intent(in) | n, | 
| real(dp), dimension(n), intent(in) | t, | ||
| real(dp), dimension(n), intent(in) | y, | ||
| real(dp), dimension(n), intent(in) | ypp, | ||
| real(dp), intent(in) | tval, | ||
| real(dp), intent(out) | yval, | ||
| real(dp), intent(out) | ypval, | ||
| real(dp), intent(out) | yppval, | ||
| integer(intg), intent(out) | err, | ||
| type(varying_string), intent(out) | error | ||
| ) | 
Evaluates a cubic spline at a specified point. First call spline_cubic_set to calculate derivatives algorithm adapted from John Burkhardt's spline_cubic_val routine from the SPLINE package (http://people.sc.fsu.edu/~jburkardt/f_src/spline/spline.html)
| [in] | n | size of t,y arrays to interpolate values from | 
| [in] | t | t array: known knot values | 
| [in] | y | y array: data values to interpolate at the knots | 
| [in] | ypp | 2nd derivatives of interpolating function at t values | 
| [in] | tval | point in t at which spline is to be evaluated | 
| [out] | yval | spline interpolated y value at tval | 
| [out] | ypval | first derivative of spline interpolated y value at tval | 
| [out] | yppval | second derivative of spline interpolated y value at tval | 
| [out] | err | The error code | 
| [out] | error | The error string | 
Definition at line 2730 of file maths.f90.
References base_routines::enters(), and base_routines::exits().
Referenced by navier_stokes_equations_routines::NavierStokes_PreSolveUpdateBoundaryConditions::navierstokes_presolveupdateboundaryconditions().