Neko  0.9.0
A portable framework for high-order spectral element flow simulations
math.f90 File Reference

Go to the source code of this file.

Data Types

interface  math::abscmp
 
interface  math::sort
 
interface  math::swap
 
interface  math::reord
 
interface  math::flipv
 
interface  math::relcmp
 
interface  math::pwmax
 
interface  math::pwmin
 

Modules

module  math
 

Functions/Subroutines

pure logical function math::sabscmp (x, y)
 Return single precision absolute comparison \( | x - y | < \epsilon \). More...
 
pure logical function math::dabscmp (x, y)
 Return double precision absolute comparison \( | x - y | < \epsilon \). More...
 
pure logical function math::qabscmp (x, y)
 Return double precision absolute comparison \( | x - y | < \epsilon \). More...
 
pure logical function math::srelcmp (x, y, eps)
 Return single precision relative comparison \( | x - y |<= \epsilon*|y| \). More...
 
pure logical function math::drelcmp (x, y, eps)
 Return double precision relative comparison \( | x - y |/|y| < \epsilon \). More...
 
pure logical function math::qrelcmp (x, y, eps)
 Return quad precision relative comparison \( | x - y |/|y| < \epsilon \). More...
 
subroutine, public math::rzero (a, n)
 Zero a real vector. More...
 
subroutine, public math::izero (a, n)
 Zero an integer vector. More...
 
subroutine, public math::row_zero (a, m, n, e)
 Sets row e to 0 in matrix a. More...
 
subroutine, public math::rone (a, n)
 Set all elements to one. More...
 
subroutine, public math::copy (a, b, n)
 Copy a vector \( a = b \). More...
 
subroutine, public math::masked_copy (a, b, mask, n, m)
 Copy a masked vector \( a(mask) = b(mask) \). More...
 
subroutine, public math::masked_red_copy (a, b, mask, n, m)
 Copy a masked vector to reduced contigous vector \( a = b(mask) \). More...
 
subroutine, public math::cfill_mask (a, c, size, mask, mask_size)
 Fill a constant to a masked vector. \( a_i = c, for i in mask \). More...
 
subroutine, public math::cmult (a, c, n)
 Multiplication by constant c \( a = c \cdot a \). More...
 
subroutine, public math::cadd (a, s, n)
 Add a scalar to vector \( a_i = a_i + s \). More...
 
subroutine, public math::cadd2 (a, b, s, n)
 Add a scalar to vector \( a_i = b_i + s \). More...
 
subroutine, public math::cfill (a, c, n)
 Set all elements to a constant c \( a = c \). More...
 
real(kind=rp) function, public math::glsum (a, n)
 Sum a vector of length n. More...
 
real(kind=rp) function, public math::glmax (a, n)
 Max of a vector of length n. More...
 
integer function, public math::glimax (a, n)
 Max of an integer vector of length n. More...
 
real(kind=rp) function, public math::glmin (a, n)
 Min of a vector of length n. More...
 
integer function, public math::glimin (a, n)
 Min of an integer vector of length n. More...
 
subroutine, public math::chsign (a, n)
 Change sign of vector \( a = -a \). More...
 
real(kind=rp) function, public math::vlmax (vec, n)
 maximum value of a vector of length n More...
 
real(kind=rp) function, public math::vlmin (vec, n)
 minimun value of a vector of length n More...
 
subroutine, public math::invcol1 (a, n)
 Invert a vector \( a = 1 / a \). More...
 
subroutine, public math::invcol3 (a, b, c, n)
 Invert a vector \( a = b / c \). More...
 
subroutine, public math::invers2 (a, b, n)
 Compute inverted vector \( a = 1 / b \). More...
 
subroutine, public math::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. More...
 
subroutine, public math::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. More...
 
subroutine, public math::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. More...
 
real(kind=rp) function, public math::vlsc3 (u, v, w, n)
 Compute multiplication sum \( dot = u \cdot v \cdot w \). More...
 
real(kind=rp) function, public math::vlsc2 (u, v, n)
 Compute multiplication sum \( dot = u \cdot v \cdot w \). More...
 
subroutine, public math::add2 (a, b, n)
 Vector addition \( a = a + b \). More...
 
subroutine, public math::add3 (a, b, c, n)
 Vector addition \( a = b + c \). More...
 
subroutine, public math::add4 (a, b, c, d, n)
 Vector addition \( a = b + c + d\). More...
 
subroutine, public math::sub2 (a, b, n)
 Vector substraction \( a = a - b \). More...
 
subroutine, public math::sub3 (a, b, c, n)
 Vector subtraction \( a = b - c \). More...
 
subroutine, public math::add2s1 (a, b, c1, n)
 Vector addition with scalar multiplication \( a = c_1 a + b \) (multiplication on first argument) More...
 
subroutine, public math::add2s2 (a, b, c1, n)
 Vector addition with scalar multiplication \( a = a + c_1 b \) (multiplication on second argument) More...
 
subroutine, public math::addsqr2s2 (a, b, c1, n)
 Returns \( a = a + c1 * (b * b )\). More...
 
subroutine, public math::cmult2 (a, b, c, n)
 Multiplication by constant c \( a = c \cdot b \). More...
 
subroutine, public math::invcol2 (a, b, n)
 Vector division \( a = a / b \). More...
 
subroutine, public math::col2 (a, b, n)
 Vector multiplication \( a = a \cdot b \). More...
 
subroutine, public math::col3 (a, b, c, n)
 Vector multiplication with 3 vectors \( a = b \cdot c \). More...
 
subroutine, public math::subcol3 (a, b, c, n)
 Returns \( a = a - b*c \). More...
 
subroutine, public math::add3s2 (a, b, c, c1, c2, n)
 Returns \( a = c1 * b + c2 * c \). More...
 
subroutine, public math::subcol4 (a, b, c, d, n)
 Returns \( a = a - b*c*d \). More...
 
subroutine, public math::addcol3 (a, b, c, n)
 Returns \( a = a + b*c \). More...
 
subroutine, public math::addcol4 (a, b, c, d, n)
 Returns \( a = a + b*c*d \). More...
 
subroutine, public math::ascol5 (a, b, c, d, e, n)
 Returns \( a = b \dot c - d \cdot e \). More...
 
subroutine, public math::p_update (a, b, c, c1, c2, n)
 Returns \( a = b \dot c1 ( a - c2 \cdot c )\). More...
 
subroutine, public math::x_update (a, b, c, c1, c2, n)
 Returns \( a = b \dot c1 ( a - c2 \cdot c )\). More...
 
real(kind=rp) function, public math::glsc2 (a, b, n)
 Weighted inner product \( a^T b \). More...
 
real(kind=rp) function, public math::glsc3 (a, b, c, n)
 Weighted inner product \( a^T b c \). More...
 
real(kind=rp) function, public math::glsc4 (a, b, c, d, n)
 
subroutine math::sortrp (a, ind, n)
 Heap Sort for double precision arrays. More...
 
subroutine math::sorti4 (a, ind, n)
 Heap Sort for single integer arrays. More...
 
subroutine math::swapdp (b, ind, n)
 sort double precision array acording to ind vector More...
 
subroutine math::swapi4 (b, ind, n)
 sort single integer array acording to ind vector More...
 
subroutine math::reorddp (b, ind, n)
 reorder double precision array - inverse of swap More...
 
subroutine math::reordi4 (b, ind, n)
 reorder single integer array - inverse of swap More...
 
subroutine math::flipvdp (b, ind, n)
 Flip double precision vector b and ind. More...
 
subroutine math::flipvi4 (b, ind, n)
 Flip single integer vector b and ind. More...
 
subroutine, public math::absval (a, n)
 Take the absolute value of an array. More...
 
subroutine math::pwmax_vec2 (a, b, n)
 Point-wise maximum of two vectors \( a = \max(a, b) \). More...
 
subroutine math::pwmax_vec3 (a, b, c, n)
 Point-wise maximum of two vectors \( a = \max(b, c) \). More...
 
subroutine math::pwmax_scal2 (a, b, n)
 Point-wise maximum of scalar and vector \( a = \max(a, b) \). More...
 
subroutine math::pwmax_scal3 (a, b, c, n)
 Point-wise maximum of scalar and vector \( a = \max(b, c) \). More...
 
subroutine math::pwmin_vec2 (a, b, n)
 Point-wise minimum of two vectors \( a = \min(a, b) \). More...
 
subroutine math::pwmin_vec3 (a, b, c, n)
 Point-wise minimum of two vectors \( a = \min(b, c) \). More...
 
subroutine math::pwmin_sca2 (a, b, n)
 Point-wise minimum of scalar and vector \( a = \min(a, b) \). More...
 
subroutine math::pwmin_sca3 (a, b, c, n)
 Point-wise minimum of scalar and vector \( a = \min(b, c) \). More...
 

Variables

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