Neko 1.99.1
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 sabscmp (x, y, tol)
 Return single precision absolute comparison \( | x - y | < \epsilon \).
 
pure logical function 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 \).
 
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 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 \).
 
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) \).
 

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 1371 of file math.f90.

◆ 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 725 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 796 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 811 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 738 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 894 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 752 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 909 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 925 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 957 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 986 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 971 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 825 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 1001 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 461 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 473 of file math.f90.

◆ 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 436 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 448 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 486 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 396 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 578 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 410 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 422 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 853 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 866 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 248 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 1408 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 1420 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 1457 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 1469 of file math.f90.

Here is the caller graph for this function:

◆ dabscmp()

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

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

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 1326 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 1349 of file math.f90.

◆ glimax()

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

Definition at line 530 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 560 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 515 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 545 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 1047 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 1066 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 1085 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 1108 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 498 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 613 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 839 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 625 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 638 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 215 of file math.f90.

◆ 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 288 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 267 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 + 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 334 of file math.f90.

◆ 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 311 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 380 of file math.f90.

◆ 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 357 of file math.f90.

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 1017 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 1384 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 1396 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 1433 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 1445 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 146 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 190 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 1286 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 1306 of file math.f90.

◆ rone()

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

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

◆ rzero()

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

Definition at line 204 of file math.f90.

Here is the caller graph for this function:

◆ sabscmp()

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

Definition at line 116 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 1190 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 1132 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 161 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 767 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 780 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 880 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 942 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 1246 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 1266 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 652 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 669 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 683 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 590 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 601 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 711 of file math.f90.

◆ 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 697 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 1032 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 69 of file math.f90.

◆ neko_m_ln2

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

Definition at line 72 of file math.f90.

◆ pi

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

Definition at line 75 of file math.f90.