Neko 1.99.3
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
math Module Reference

Data Types

interface  abscmp
 
interface  flipv
 
interface  relcmp
 
interface  reord
 
interface  sort
 
interface  swap
 

Functions/Subroutines

pure logical function, public sabscmp (x, y, tol)
 Return single precision absolute comparison \( | x - y | < \epsilon \).
 
pure logical function, public dabscmp (x, y, tol)
 Return double precision absolute comparison \( | x - y | < \epsilon \).
 
pure logical function qabscmp (x, y, tol)
 Return double precision absolute comparison \( | x - y | < \epsilon \).
 
pure logical function srelcmp (x, y, eps)
 Return single precision relative comparison \( | x - y |<= \epsilon*|y| \).
 
pure logical function drelcmp (x, y, eps)
 Return double precision relative comparison \( | x - y |/|y| < \epsilon \).
 
pure logical function qrelcmp (x, y, eps)
 Return quad precision relative comparison \( | x - y |/|y| < \epsilon \).
 
pure real(kind=rp) function, public lambert_w0 (x, niter)
 Approximate the principal real branch of the Lambert W function for non-negative real x.
 
subroutine, public rzero (a, n)
 Zero a real vector.
 
subroutine, public izero (a, n)
 Zero an integer vector.
 
subroutine, public row_zero (a, m, n, e)
 Sets row e to 0 in matrix a.
 
subroutine, public rone (a, n)
 Set all elements to one.
 
subroutine, public copy (a, b, n)
 Copy a vector \( a = b \).
 
subroutine, public masked_copy_0 (a, b, mask, n, n_mask)
 Copy a masked vector \( a(mask) = b(mask) \).
 
subroutine, public masked_copy (a, b, mask, n, n_mask)
 Copy a masked vector \( a(mask) = b(mask) \).
 
subroutine, public masked_gather_copy_0 (a, b, mask, n, n_mask)
 Gather a masked vector to reduced contigous vector \( a = b(mask) \).
 
subroutine, public face_masked_gather_copy_0 (a, b, mask, facet, lx, ly, lz, n_mask)
 Gather values from a face-local SEM field to a reduced contiguous vector.
 
subroutine, public masked_gather_copy (a, b, mask, n, n_mask)
 Gather a masked vector to reduced contigous vector \( a = b(mask) \).
 
subroutine, public masked_scatter_copy_0 (a, b, mask, n, n_mask)
 Scatter a contigous vector to masked positions in a target array \( a(mask) = b \).
 
subroutine, public masked_scatter_copy (a, b, mask, n, n_mask)
 Scatter a contigous vector to masked positions in a target array \( a(mask) = b \).
 
subroutine, public cfill_mask (a, c, n, mask, n_mask)
 Fill a constant to a masked vector. \( a_i = c, for i in mask \).
 
subroutine, public cmult (a, c, n)
 Multiplication by constant c \( a = c \cdot a \).
 
subroutine, public cmult2 (a, b, c, n)
 Multiplication by constant c \( a = c \cdot b \).
 
subroutine, public cdiv (a, c, n)
 Division of constant c by elements of a \( a = c / a \).
 
subroutine, public cdiv2 (a, b, c, n)
 Division of constant c by elements of a \( a = c / b \).
 
subroutine, public cadd (a, s, n)
 Add a scalar to vector \( a_i = a_i + s \).
 
subroutine, public cadd2 (a, b, s, n)
 Add a scalar to vector \( a_i = b_i + s \).
 
subroutine, public cfill (a, c, n)
 Set all elements to a constant c \( a = c \).
 
subroutine, public cwrap (a, min_val, max_val, n)
 Wrap value around a range [min, max)
 
real(kind=rp) function, public glsum (a, n)
 Sum a vector of length n.
 
real(kind=rp) function, public glmax (a, n)
 Max of a vector of length n.
 
integer function, public glimax (a, n)
 Max of an integer vector of length n.
 
real(kind=rp) function, public glmin (a, n)
 Min of a vector of length n.
 
integer function, public glimin (a, n)
 Min of an integer vector of length n.
 
subroutine, public chsign (a, n)
 Change sign of vector \( a = -a \).
 
real(kind=rp) function, public vlmax (vec, n)
 maximum value of a vector of length n
 
real(kind=rp) function, public vlmin (vec, n)
 minimun value of a vector of length n
 
subroutine, public invcol1 (a, n)
 Invert a vector \( a = 1 / a \).
 
subroutine, public invcol3 (a, b, c, n)
 Invert a vector \( a = b / c \).
 
subroutine, public invers2 (a, b, n)
 Compute inverted vector \( a = 1 / b \).
 
subroutine, public vcross (u1, u2, u3, v1, v2, v3, w1, w2, w3, n)
 Compute a cross product \( u = v \times w \) assuming vector components \( u = (u_1, u_2, u_3) \) etc.
 
subroutine, public vdot2 (dot, u1, u2, v1, v2, n)
 Compute a dot product \( dot = u \cdot v \) (2-d version) assuming vector components \( u = (u_1, u_2, u_3) \) etc.
 
subroutine, public vdot3 (dot, u1, u2, u3, v1, v2, v3, n)
 Compute a dot product \( dot = u \cdot v \) (3-d version) assuming vector components \( u = (u_1, u_2, u_3) \) etc.
 
real(kind=rp) function, public vlsc3 (u, v, w, n)
 Compute multiplication sum \( dot = u \cdot v \cdot w \).
 
real(kind=rp) function, public vlsc2 (u, v, n)
 Compute multiplication sum \( dot = u \cdot v \cdot w \).
 
subroutine, public add2 (a, b, n)
 Vector addition \( a = a + b \).
 
subroutine, public add3 (a, b, c, n)
 Vector addition \( a = b + c \).
 
subroutine, public add4 (a, b, c, d, n)
 Vector addition \( a = b + c + d\).
 
subroutine, public sub2 (a, b, n)
 Vector substraction \( a = a - b \).
 
subroutine, public sub3 (a, b, c, n)
 Vector subtraction \( a = b - c \).
 
subroutine, public add2s1 (a, b, c1, n)
 Vector addition with scalar multiplication \( a = c_1 a + b \) (multiplication on first argument)
 
subroutine, public add2s2 (a, b, c1, n)
 Vector addition with scalar multiplication \( a = a + c_1 b \) (multiplication on second argument)
 
subroutine, public addsqr2s2 (a, b, c1, n)
 Returns \( a = a + c1 * (b * b )\).
 
subroutine, public invcol2 (a, b, n)
 Vector division \( a = a / b \).
 
subroutine, public col2 (a, b, n)
 Vector multiplication \( a = a \cdot b \).
 
subroutine, public col3 (a, b, c, n)
 Vector multiplication with 3 vectors \( a = b \cdot c \).
 
subroutine, public subcol3 (a, b, c, n)
 Returns \( a = a - b*c \).
 
subroutine, public add3s2 (a, b, c, c1, c2, n)
 Returns \( a = c1 * b + c2 * c \).
 
subroutine, public add4s3 (a, b, c, d, c1, c2, c3, n)
 Returns \( a = c1 * b + c2 * c + c3 * d \).
 
subroutine, public add5s4 (a, b, c, d, e, c1, c2, c3, c4, n)
 Returns \( a = a + c1 * b + c2 * c + c3 * d + c4 * e\).
 
subroutine, public subcol4 (a, b, c, d, n)
 Returns \( a = a - b*c*d \).
 
subroutine, public addcol3 (a, b, c, n)
 Returns \( a = a + b*c \).
 
subroutine, public addcol4 (a, b, c, d, n)
 Returns \( a = a + b*c*d \).
 
subroutine, public addcol3s2 (a, b, c, s, n)
 Returns \( a = a + s(b*c) \).
 
subroutine, public ascol5 (a, b, c, d, e, n)
 Returns \( a = b \dot c - d \cdot e \).
 
subroutine, public p_update (a, b, c, c1, c2, n)
 Returns \( a = b \dot c1 ( a - c2 \cdot c )\).
 
subroutine, public x_update (a, b, c, c1, c2, n)
 Returns \( a = b \dot c1 ( a - c2 \cdot c )\).
 
real(kind=rp) function, public glsc2 (a, b, n)
 Weighted inner product \( a^T b \).
 
real(kind=rp) function, public glsc3 (a, b, c, n)
 Weighted inner product \( a^T b c \).
 
real(kind=rp) function, public glsc4 (a, b, c, d, n)
 
real(kind=rp) function, public glsubnorm (a, b, n)
 Returns the norm of the difference of two vectors \( \sqrt{(a-b)^T (a-b)} \).
 
subroutine sortrp (a, ind, n)
 Heap Sort for double precision arrays.
 
subroutine sorti4 (a, ind, n)
 Heap Sort for single integer arrays.
 
subroutine swapdp (b, ind, n)
 sort double precision array acording to ind vector
 
subroutine swapi4 (b, ind, n)
 sort single integer array acording to ind vector
 
subroutine reorddp (b, ind, n)
 reorder double precision array - inverse of swap
 
subroutine reordi4 (b, ind, n)
 reorder single integer array - inverse of swap
 
subroutine flipvdp (b, ind, n)
 Flip double precision vector b and ind.
 
subroutine flipvi4 (b, ind, n)
 Flip single integer vector b and ind.
 
subroutine, public absval (a, n)
 Take the absolute value of an array.
 
subroutine, public pwmax2 (a, b, n)
 Point-wise maximum of two vectors \( a = \max(a, b) \).
 
subroutine, public pwmax3 (a, b, c, n)
 Point-wise maximum of two vectors \( a = \max(b, c) \).
 
subroutine, public cpwmax2 (a, b, n)
 Point-wise maximum of scalar and vector \( a = \max(a, b) \).
 
subroutine, public cpwmax3 (a, b, c, n)
 Point-wise maximum of scalar and vector \( a = \max(b, c) \).
 
subroutine, public pwmin2 (a, b, n)
 Point-wise minimum of two vectors \( a = \min(a, b) \).
 
subroutine, public pwmin3 (a, b, c, n)
 Point-wise minimum of two vectors \( a = \min(b, c) \).
 
subroutine, public cpwmin2 (a, b, n)
 Point-wise minimum of scalar and vector \( a = \min(a, b) \).
 
subroutine, public cpwmin3 (a, b, c, n)
 Point-wise minimum of scalar and vector \( a = \min(b, c) \).
 
real(rp) function, dimension(3, 3), public matinv39 (a11, a12, a13, a21, a22, a23, a31, a32, a33)
 
real(kind=xp) function, dimension(3, 3), public matinv3 (a)
 Performs a direct calculation of the inverse of a 3×3 matrix. M33INV and M44INV by David G. Simpson pure function version from https://fortranwiki.org/fortran/show/Matrix+inversion Invert 3x3 matrix.
 
real(kind=rp) function, public math_stepf (x)
 Smooth step function S(x) Returns 0 for x <= 0, 1 for x >= 1, and smooth transition in between.
 
real(kind=rp) function, public math_dstepf (x)
 Derivative of math_stepf with respect to x: d(stepf)/dx.
 

Variables

real(kind=rp), parameter, public neko_eps = epsilon(1.0_rp)
 Machine epsilon \( \epsilon \).
 
real(kind=rp), parameter, public neko_m_ln2 = log(2.0_rp)
 \( ln(2) \)
 
real(kind=rp), parameter, public pi = 4._rp*atan(1._rp)
 \( \pi \)
 

Function/Subroutine Documentation

◆ absval()

subroutine, public math::absval ( real(kind=rp), dimension(n), intent(inout a,
integer, intent(in n 
)
Parameters
[in,out]avector to be manipulated
[in]narray size

Definition at line 1637 of file math.f90.

Here is the caller graph for this function:

◆ add2()

subroutine, public math::add2 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
integer, intent(in n 
)

Definition at line 897 of file math.f90.

Here is the caller graph for this function:

◆ add2s1()

subroutine, public math::add2s1 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), intent(in c1,
integer, intent(in n 
)

Definition at line 978 of file math.f90.

Here is the caller graph for this function:

◆ add2s2()

subroutine, public math::add2s2 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), intent(in c1,
integer, intent(in n 
)

Definition at line 995 of file math.f90.

Here is the caller graph for this function:

◆ add3()

subroutine, public math::add3 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
integer, intent(in n 
)

Definition at line 912 of file math.f90.

Here is the caller graph for this function:

◆ add3s2()

subroutine, public math::add3s2 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
real(kind=rp), intent(in c1,
real(kind=rp), intent(in c2,
integer, intent(in n 
)

Definition at line 1090 of file math.f90.

Here is the caller graph for this function:

◆ add4()

subroutine, public math::add4 ( real(kind=rp), dimension(n), intent(out a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
real(kind=rp), dimension(n), intent(in d,
integer, intent(in n 
)

Definition at line 928 of file math.f90.

Here is the caller graph for this function:

◆ add4s3()

subroutine, public math::add4s3 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
real(kind=rp), dimension(n), intent(in d,
real(kind=rp), intent(in c1,
real(kind=rp), intent(in c2,
real(kind=rp), intent(in c3,
integer, intent(in n 
)

Definition at line 1107 of file math.f90.

Here is the caller graph for this function:

◆ add5s4()

subroutine, public math::add5s4 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
real(kind=rp), dimension(n), intent(in d,
real(kind=rp), dimension(n), intent(in e,
real(kind=rp), intent(in c1,
real(kind=rp), intent(in c2,
real(kind=rp), intent(in c3,
real(kind=rp), intent(in c4,
integer, intent(in n 
)

Definition at line 1125 of file math.f90.

◆ addcol3()

subroutine, public math::addcol3 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
integer, intent(in n 
)

Definition at line 1161 of file math.f90.

Here is the caller graph for this function:

◆ addcol3s2()

subroutine, public math::addcol3s2 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
real(kind=rp), intent(in s,
integer, intent(in n 
)

Definition at line 1194 of file math.f90.

◆ addcol4()

subroutine, public math::addcol4 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
real(kind=rp), dimension(n), intent(in d,
integer, intent(in n 
)

Definition at line 1177 of file math.f90.

Here is the caller graph for this function:

◆ addsqr2s2()

subroutine, public math::addsqr2s2 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), intent(in c1,
integer, intent(in n 
)

Definition at line 1011 of file math.f90.

Here is the caller graph for this function:

◆ ascol5()

subroutine, public math::ascol5 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
real(kind=rp), dimension(n), intent(in d,
real(kind=rp), dimension(n), intent(in e,
integer, intent(in n 
)

Definition at line 1211 of file math.f90.

◆ cadd()

subroutine, public math::cadd ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), intent(in s,
integer, intent(in n 
)

Definition at line 563 of file math.f90.

Here is the caller graph for this function:

◆ cadd2()

subroutine, public math::cadd2 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), intent(in s,
integer, intent(in n 
)

Definition at line 578 of file math.f90.

Here is the caller graph for this function:

◆ cdiv()

subroutine, public math::cdiv ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), intent(in c,
integer, intent(in n 
)

Definition at line 532 of file math.f90.

◆ cdiv2()

subroutine, public math::cdiv2 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), intent(in c,
integer, intent(in n 
)

Definition at line 547 of file math.f90.

◆ cfill()

subroutine, public math::cfill ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), intent(in c,
integer, intent(in n 
)

Definition at line 594 of file math.f90.

Here is the caller graph for this function:

◆ cfill_mask()

subroutine, public math::cfill_mask ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), intent(in c,
integer, intent(in n,
integer, dimension(n_mask), intent(in mask,
integer, intent(in n_mask 
)

Definition at line 485 of file math.f90.

Here is the caller graph for this function:

◆ chsign()

subroutine, public math::chsign ( real(kind=rp), dimension(n), intent(inout a,
integer, intent(in n 
)

Definition at line 723 of file math.f90.

Here is the caller graph for this function:

◆ cmult()

subroutine, public math::cmult ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), intent(in c,
integer, intent(in n 
)

Definition at line 501 of file math.f90.

Here is the caller graph for this function:

◆ cmult2()

subroutine, public math::cmult2 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), intent(in c,
integer, intent(in n 
)

Definition at line 516 of file math.f90.

Here is the caller graph for this function:

◆ col2()

subroutine, public math::col2 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
integer, intent(in n 
)

Definition at line 1043 of file math.f90.

Here is the caller graph for this function:

◆ col3()

subroutine, public math::col3 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
integer, intent(in n 
)

Definition at line 1058 of file math.f90.

Here is the caller graph for this function:

◆ copy()

subroutine, public math::copy ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
integer, intent(in n 
)

Definition at line 288 of file math.f90.

Here is the caller graph for this function:

◆ cpwmax2()

subroutine, public math::cpwmax2 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), intent(in b,
integer, intent(in n 
)

Definition at line 1684 of file math.f90.

Here is the caller graph for this function:

◆ cpwmax3()

subroutine, public math::cpwmax3 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), intent(in c,
integer, intent(in n 
)

Definition at line 1699 of file math.f90.

Here is the caller graph for this function:

◆ cpwmin2()

subroutine, public math::cpwmin2 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), intent(in b,
integer, intent(in n 
)

Definition at line 1745 of file math.f90.

Here is the caller graph for this function:

◆ cpwmin3()

subroutine, public math::cpwmin3 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), intent(in c,
integer, intent(in n 
)

Definition at line 1760 of file math.f90.

Here is the caller graph for this function:

◆ cwrap()

subroutine, public math::cwrap ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), intent(in min_val,
real(kind=rp), intent(in max_val,
integer, intent(in n 
)

Definition at line 609 of file math.f90.

Here is the caller graph for this function:

◆ dabscmp()

pure logical function, public math::dabscmp ( real(kind=dp), intent(in x,
real(kind=dp), intent(in y,
real(kind=dp), intent(in), optional  tol 
)

Definition at line 134 of file math.f90.

Here is the caller graph for this function:

◆ drelcmp()

pure logical function math::drelcmp ( real(kind=dp), intent(in x,
real(kind=dp), intent(in y,
real(kind=dp), intent(in), optional  eps 
)
private

Definition at line 178 of file math.f90.

Here is the caller graph for this function:

◆ face_masked_gather_copy_0()

subroutine, public math::face_masked_gather_copy_0 ( real(kind=rp), dimension(n_mask), intent(inout a,
real(kind=rp), dimension(:, :, :, :), intent(in b,
integer, dimension(0:n_mask), intent(in mask,
integer, dimension(0:n_mask), intent(in facet,
integer, intent(in lx,
integer, intent(in ly,
integer, intent(in lz,
integer, intent(in n_mask 
)
Parameters
aDestination array of size n_mask.
bSource face-local array indexed as b(:, :, facet, element).
maskMask array of length n_mask + 1, where mask(0) = n_mask.
facetFacet ids associated with the masked points.
lxNumber of points in the first SEM direction.
lyNumber of points in the second SEM direction.
lzNumber of points in the third SEM direction.
n_maskSize of the mask and destination arrays.

Definition at line 382 of file math.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ flipvdp()

subroutine math::flipvdp ( real(kind=rp), dimension(n), intent(inout b,
integer, dimension(n), intent(inout ind,
integer, intent(in n 
)
private
Parameters
[in,out]bvector to be reordered
[in,out]indpermutation array
[in]narray size

Definition at line 1578 of file math.f90.

◆ flipvi4()

subroutine math::flipvi4 ( integer(i4), dimension(n), intent(inout b,
integer, dimension(n), intent(inout ind,
integer, intent(in n 
)
private
Parameters
[in,out]bvector to be reordered
[in,out]indpermutation array
[in]narray size

Definition at line 1608 of file math.f90.

◆ glimax()

integer function, public math::glimax ( integer, dimension(n)  a,
integer, intent(in n 
)

Definition at line 666 of file math.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ glimin()

integer function, public math::glimin ( integer, dimension(n)  a,
integer, intent(in n 
)

Definition at line 704 of file math.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ glmax()

real(kind=rp) function, public math::glmax ( real(kind=rp), dimension(n)  a,
integer, intent(in n 
)

Definition at line 647 of file math.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ glmin()

real(kind=rp) function, public math::glmin ( real(kind=rp), dimension(n)  a,
integer, intent(in n 
)

Definition at line 685 of file math.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ glsc2()

real(kind=rp) function, public math::glsc2 ( real(kind=rp), dimension(n), intent(in a,
real(kind=rp), dimension(n), intent(in b,
integer, intent(in n 
)

Definition at line 1263 of file math.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ glsc3()

real(kind=rp) function, public math::glsc3 ( real(kind=rp), dimension(n), intent(in a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
integer, intent(in n 
)

Definition at line 1284 of file math.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ glsc4()

real(kind=rp) function, public math::glsc4 ( real(kind=rp), dimension(n), intent(in a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
real(kind=rp), dimension(n), intent(in d,
integer, intent(in n 
)

Definition at line 1305 of file math.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ glsubnorm()

real(kind=rp) function, public math::glsubnorm ( real(kind=rp), dimension(n), intent(in a,
real(kind=rp), dimension(n), intent(in b,
integer, intent(in n 
)

Definition at line 1330 of file math.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ glsum()

real(kind=rp) function, public math::glsum ( real(kind=rp), dimension(n)  a,
integer, intent(in n 
)

Definition at line 626 of file math.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ invcol1()

subroutine, public math::invcol1 ( real(kind=rp), dimension(n), intent(inout a,
integer, intent(in n 
)

Definition at line 768 of file math.f90.

Here is the caller graph for this function:

◆ invcol2()

subroutine, public math::invcol2 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
integer, intent(in n 
)

Definition at line 1027 of file math.f90.

Here is the caller graph for this function:

◆ invcol3()

subroutine, public math::invcol3 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
integer, intent(in n 
)

Definition at line 782 of file math.f90.

Here is the caller graph for this function:

◆ invers2()

subroutine, public math::invers2 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
integer, intent(in n 
)

Definition at line 797 of file math.f90.

Here is the caller graph for this function:

◆ izero()

subroutine, public math::izero ( integer, dimension(n), intent(inout a,
integer, intent(in n 
)

Definition at line 246 of file math.f90.

◆ lambert_w0()

pure real(kind=rp) function, public math::lambert_w0 ( real(kind=rp), intent(in x,
integer, intent(in niter 
)

The reference is Iacono and Boyd, DOI: 10.1007/s10444-017-9530-3 The iterative algorithm converges very fast, and 1 iteration is typically sufficient.

Definition at line 211 of file math.f90.

Here is the caller graph for this function:

◆ masked_copy()

subroutine, public math::masked_copy ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
integer, dimension(n_mask mask,
integer, intent(in n,
integer, intent(in n_mask 
)
Parameters
aDestination array of size n.
bSource array of size n.
maskMask array of length n_mask + 1, where mask(0) = n_mask the length of the mask array.
nSize of the arrays a and b.
n_maskSize of the mask array mask.

Definition at line 332 of file math.f90.

◆ masked_copy_0()

subroutine, public math::masked_copy_0 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
integer, dimension(0:n_mask mask,
integer, intent(in n,
integer, intent(in n_mask 
)
Parameters
aDestination array of size n.
bSource array of size n.
maskMask array of length n_mask + 1, where mask(0) = n_mask the length of the mask array.
nSize of the arrays a and b.
n_maskSize of the mask array mask.

Definition at line 309 of file math.f90.

Here is the caller graph for this function:

◆ masked_gather_copy()

subroutine, public math::masked_gather_copy ( real(kind=rp), dimension(n_mask), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
integer, dimension(n_mask mask,
integer, intent(in n,
integer, intent(in n_mask 
)
Parameters
aDestination array of size n_mask.
bSource array of size n.
maskMask array of length n_mask. the length of the mask array.
nSize of the array b.
n_maskSize of the mask array mask and a.
Note
Assumes n .ge. n_mask.

Definition at line 417 of file math.f90.

Here is the caller graph for this function:

◆ masked_gather_copy_0()

subroutine, public math::masked_gather_copy_0 ( real(kind=rp), dimension(n_mask), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
integer, dimension(0:n_mask mask,
integer, intent(in n,
integer, intent(in n_mask 
)
Parameters
aDestination array of size n_mask.
bSource array of size n.
maskMask array of length n_mask + 1, where mask(0) = n_mask the length of the mask array.
nSize of the array b.
n_maskSize of the mask array mask and a.
Note
Assumes n .ge. n_mask.

Definition at line 357 of file math.f90.

Here is the caller graph for this function:

◆ masked_scatter_copy()

subroutine, public math::masked_scatter_copy ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n_mask), intent(in b,
integer, dimension(n_mask mask,
integer, intent(in n,
integer, intent(in n_mask 
)
Parameters
aDestination array of size n.
bSource array of size n_mask.
maskMask array of length n_mask + 1, where mask(0) = n_mask + 1 the length of the mask array.
nSize of the array maskand array b.
mSize of the mask array a.
Note
Assumes n .ge. n_mask.

Definition at line 467 of file math.f90.

Here is the caller graph for this function:

◆ masked_scatter_copy_0()

subroutine, public math::masked_scatter_copy_0 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n_mask), intent(in b,
integer, dimension(0:n_mask mask,
integer, intent(in n,
integer, intent(in n_mask 
)
Parameters
aDestination array of size n.
bSource array of size n_mask.
maskMask array of length n_mask + 1, where mask(0) = n_mask + 1 the length of the mask array.
nSize of the array maskand array b.
mSize of the mask array a.
Note
Assumes n .ge. n_mask.

Definition at line 442 of file math.f90.

Here is the caller graph for this function:

◆ math_dstepf()

real(kind=rp) function, public math::math_dstepf ( real(kind=rp), intent(in x)

Definition at line 1848 of file math.f90.

Here is the caller graph for this function:

◆ math_stepf()

real(kind=rp) function, public math::math_stepf ( real(kind=rp), intent(in x)

Definition at line 1825 of file math.f90.

◆ matinv3()

real(kind=xp) function, dimension(3,3), public math::matinv3 ( real(kind=xp), dimension(3,3), intent(in a)

Definition at line 1799 of file math.f90.

Here is the caller graph for this function:

◆ matinv39()

real(rp) function, dimension(3,3), public math::matinv39 ( real(kind=rp), intent(in a11,
real(kind=rp), intent(in a12,
real(kind=rp), intent(in a13,
real(kind=rp), intent(in a21,
real(kind=rp), intent(in a22,
real(kind=rp), intent(in a23,
real(kind=rp), intent(in a31,
real(kind=rp), intent(in a32,
real(kind=rp), intent(in a33 
)

Definition at line 1778 of file math.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ p_update()

subroutine, public math::p_update ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
real(kind=rp), intent(in c1,
real(kind=rp), intent(in c2,
integer, intent(in n 
)

Definition at line 1229 of file math.f90.

Here is the caller graph for this function:

◆ pwmax2()

subroutine, public math::pwmax2 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
integer, intent(in n 
)

Definition at line 1654 of file math.f90.

Here is the caller graph for this function:

◆ pwmax3()

subroutine, public math::pwmax3 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
integer, intent(in n 
)

Definition at line 1669 of file math.f90.

Here is the caller graph for this function:

◆ pwmin2()

subroutine, public math::pwmin2 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
integer, intent(in n 
)

Definition at line 1715 of file math.f90.

Here is the caller graph for this function:

◆ pwmin3()

subroutine, public math::pwmin3 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
integer, intent(in n 
)

Definition at line 1730 of file math.f90.

Here is the caller graph for this function:

◆ qabscmp()

pure logical function math::qabscmp ( real(kind=qp), intent(in x,
real(kind=qp), intent(in y,
real(kind=qp), intent(in), optional  tol 
)
private

Definition at line 149 of file math.f90.

Here is the caller graph for this function:

◆ qrelcmp()

pure logical function math::qrelcmp ( real(kind=qp), intent(in x,
real(kind=qp), intent(in y,
real(kind=qp), intent(in), optional  eps 
)
private

Definition at line 193 of file math.f90.

Here is the caller graph for this function:

◆ reorddp()

subroutine math::reorddp ( real(kind=rp), dimension(n), intent(inout b,
integer, dimension(n), intent(in ind,
integer, intent(in n 
)
private
Parameters
[in,out]bvector to be reordered
[in]indpermutation array
[in]narray size

Definition at line 1524 of file math.f90.

◆ reordi4()

subroutine math::reordi4 ( integer(i4), dimension(n), intent(inout b,
integer, dimension(n), intent(in ind,
integer, intent(in n 
)
private
Parameters
[in,out]bvector to be reordered
[in]indpermutation array
[in]narray size

Definition at line 1551 of file math.f90.

◆ rone()

subroutine, public math::rone ( real(kind=rp), dimension(n), intent(inout a,
integer, intent(in n 
)

Definition at line 274 of file math.f90.

Here is the caller graph for this function:

◆ row_zero()

subroutine, public math::row_zero ( real(kind=rp), dimension(m,n), intent(inout a,
integer, intent(in m,
integer, intent(in n,
integer, intent(in e 
)

Definition at line 260 of file math.f90.

◆ rzero()

subroutine, public math::rzero ( real(kind=rp), dimension(n), intent(inout a,
integer, intent(in n 
)

Definition at line 232 of file math.f90.

Here is the caller graph for this function:

◆ sabscmp()

pure logical function, public math::sabscmp ( real(kind=sp), intent(in x,
real(kind=sp), intent(in y,
real(kind=sp), intent(in), optional  tol 
)

Definition at line 119 of file math.f90.

Here is the caller graph for this function:

◆ sorti4()

subroutine math::sorti4 ( integer(i4), dimension(n), intent(inout a,
integer, dimension(n), intent(out ind,
integer, intent(in n 
)
private

Following p 231 Num. Rec., 1st Ed.

Parameters
[in,out]avector to be sorted
[out]indpermutation array
[in]narray size

Definition at line 1414 of file math.f90.

◆ sortrp()

subroutine math::sortrp ( real(kind=rp), dimension(n), intent(inout a,
integer, dimension(n), intent(out ind,
integer, intent(in n 
)
private

Following p 231 Num. Rec., 1st Ed.

Parameters
[in,out]avector to be sorted
[out]indpermutation array
[in]narray size

Definition at line 1356 of file math.f90.

◆ srelcmp()

pure logical function math::srelcmp ( real(kind=sp), intent(in x,
real(kind=sp), intent(in y,
real(kind=sp), intent(in), optional  eps 
)
private

Definition at line 164 of file math.f90.

Here is the caller graph for this function:

◆ sub2()

subroutine, public math::sub2 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
integer, intent(in n 
)

Definition at line 945 of file math.f90.

Here is the caller graph for this function:

◆ sub3()

subroutine, public math::sub3 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
integer, intent(in n 
)

Definition at line 960 of file math.f90.

Here is the caller graph for this function:

◆ subcol3()

subroutine, public math::subcol3 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
integer, intent(in n 
)

Definition at line 1074 of file math.f90.

Here is the caller graph for this function:

◆ subcol4()

subroutine, public math::subcol4 ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
real(kind=rp), dimension(n), intent(in d,
integer, intent(in n 
)

Definition at line 1144 of file math.f90.

◆ swapdp()

subroutine math::swapdp ( real(kind=rp), dimension(n), intent(inout b,
integer, dimension(n), intent(in ind,
integer, intent(in n 
)
private
Parameters
[in,out]bvector to be reordered
[in]indpermutation array
[in]narray size

Definition at line 1470 of file math.f90.

◆ swapi4()

subroutine math::swapi4 ( integer(i4), dimension(n), intent(inout b,
integer, dimension(n), intent(in ind,
integer, intent(in n 
)
private
Parameters
[in,out]bvector to be reordered
[in]indpermutation array
[in]narray size

Definition at line 1497 of file math.f90.

◆ vcross()

subroutine, public math::vcross ( real(kind=rp), dimension(n), intent(out u1,
real(kind=rp), dimension(n), intent(out u2,
real(kind=rp), dimension(n), intent(out u3,
real(kind=rp), dimension(n), intent(in v1,
real(kind=rp), dimension(n), intent(in v2,
real(kind=rp), dimension(n), intent(in v3,
real(kind=rp), dimension(n), intent(in w1,
real(kind=rp), dimension(n), intent(in w2,
real(kind=rp), dimension(n), intent(in w3,
integer, intent(in n 
)

Definition at line 813 of file math.f90.

Here is the caller graph for this function:

◆ vdot2()

subroutine, public math::vdot2 ( real(kind=rp), dimension(n), intent(out dot,
real(kind=rp), dimension(n), intent(in u1,
real(kind=rp), dimension(n), intent(in u2,
real(kind=rp), dimension(n), intent(in v1,
real(kind=rp), dimension(n), intent(in v2,
integer, intent(in n 
)

Definition at line 832 of file math.f90.

◆ vdot3()

subroutine, public math::vdot3 ( real(kind=rp), dimension(n), intent(out dot,
real(kind=rp), dimension(n), intent(in u1,
real(kind=rp), dimension(n), intent(in u2,
real(kind=rp), dimension(n), intent(in u3,
real(kind=rp), dimension(n), intent(in v1,
real(kind=rp), dimension(n), intent(in v2,
real(kind=rp), dimension(n), intent(in v3,
integer, intent(in n 
)

Definition at line 849 of file math.f90.

Here is the caller graph for this function:

◆ vlmax()

real(kind=rp) function, public math::vlmax ( real(kind=rp), dimension(n), intent(in vec,
integer  n 
)

Definition at line 737 of file math.f90.

Here is the caller graph for this function:

◆ vlmin()

real(kind=rp) function, public math::vlmin ( real(kind=rp), dimension(n), intent(in vec,
integer, intent(in n 
)

Definition at line 752 of file math.f90.

Here is the caller graph for this function:

◆ vlsc2()

real(kind=rp) function, public math::vlsc2 ( real(kind=rp), dimension(n), intent(in u,
real(kind=rp), dimension(n), intent(in v,
integer, intent(in n 
)

Definition at line 881 of file math.f90.

Here is the caller graph for this function:

◆ vlsc3()

real(kind=rp) function, public math::vlsc3 ( real(kind=rp), dimension(n), intent(in u,
real(kind=rp), dimension(n), intent(in v,
real(kind=rp), dimension(n), intent(in w,
integer, intent(in n 
)

Definition at line 865 of file math.f90.

◆ x_update()

subroutine, public math::x_update ( real(kind=rp), dimension(n), intent(inout a,
real(kind=rp), dimension(n), intent(in b,
real(kind=rp), dimension(n), intent(in c,
real(kind=rp), intent(in c1,
real(kind=rp), intent(in c2,
integer, intent(in n 
)

Definition at line 1246 of file math.f90.

Here is the caller graph for this function:

Variable Documentation

◆ neko_eps

real(kind=rp), parameter, public math::neko_eps = epsilon(1.0_rp)

Definition at line 70 of file math.f90.

◆ neko_m_ln2

real(kind=rp), parameter, public math::neko_m_ln2 = log(2.0_rp)

Definition at line 73 of file math.f90.

◆ pi

real(kind=rp), parameter, public math::pi = 4._rp*atan(1._rp)

Definition at line 76 of file math.f90.