Neko 1.99.5
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 1639 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 899 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 980 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 997 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 914 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 1092 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 930 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 1109 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 1127 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 1163 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 1196 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 1179 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 1013 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 1213 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 565 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 580 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 534 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 549 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 596 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 487 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 725 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 503 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 518 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 1045 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 1060 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 290 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 1686 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 1701 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 1747 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 1762 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 611 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 180 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 384 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 1580 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 1610 of file math.f90.

◆ glimax()

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

Definition at line 668 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 706 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 649 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 687 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 1265 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 1286 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 1307 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 1332 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 628 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 770 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 1029 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 784 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 799 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 248 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 213 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 334 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 311 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 419 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 359 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 469 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 444 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 1850 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 1827 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 1801 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 1780 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 1231 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 1656 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 1671 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 1717 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 1732 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 195 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 1526 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 1553 of file math.f90.

◆ rone()

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

Definition at line 276 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 262 of file math.f90.

◆ rzero()

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

Definition at line 234 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 1416 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 1358 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 165 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 947 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 962 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 1076 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 1146 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 1472 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 1499 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 815 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 834 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 851 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 739 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 754 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 883 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 867 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 1248 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.