Processing math: 100%
Neko 0.9.99
A portable framework for high-order spectral element flow simulations
All Classes Namespaces Files Functions Variables Typedefs Enumerator Macros Pages
device_math.F90 File Reference

Go to the source code of this file.

Data Types

interface  device_math::device_pwmax
 
interface  device_math::device_pwmin
 

Modules

module  device_math
 

Functions/Subroutines

subroutine, public device_math::device_copy (a_d, b_d, n)
 Copy a vector a = b .
 
subroutine, public device_math::device_masked_copy (a_d, b_d, mask_d, n, m)
 Copy a masked vector a(mask) = b(mask) .
 
subroutine, public device_math::device_masked_red_copy (a_d, b_d, mask_d, n, m)
 
subroutine, public device_math::device_masked_atomic_reduction (a_d, b_d, mask_d, n, m)
 
subroutine, public device_math::device_cfill_mask (a_d, c, size, mask_d, mask_size)
 Fill a constant to a masked vector. a_i = c, for i in mask .
 
subroutine, public device_math::device_rzero (a_d, n)
 Zero a real vector.
 
subroutine, public device_math::device_rone (a_d, n)
 Set all elements to one.
 
subroutine, public device_math::device_cmult (a_d, c, n)
 Multiplication by constant c a = c \cdot a .
 
subroutine, public device_math::device_cmult2 (a_d, b_d, c, n)
 Multiplication by constant c a = c \cdot b .
 
subroutine, public device_math::device_cadd (a_d, c, n)
 Add a scalar to vector a = a + s .
 
subroutine, public device_math::device_cadd2 (a_d, b_d, c, n)
 Add a scalar to vector a = b + s .
 
subroutine, public device_math::device_cfill (a_d, c, n)
 Set all elements to a constant c a = c .
 
subroutine, public device_math::device_add2 (a_d, b_d, n)
 Vector addition a = a + b .
 
subroutine, public device_math::device_add4 (a_d, b_d, c_d, d_d, n)
 
subroutine, public device_math::device_add2s1 (a_d, b_d, c1, n)
 
subroutine, public device_math::device_add2s2 (a_d, b_d, c1, n)
 Vector addition with scalar multiplication a = c_1 a + b (multiplication on first argument)
 
subroutine, public device_math::device_addsqr2s2 (a_d, b_d, c1, n)
 Returns a = a + c1 * (b * b ).
 
subroutine, public device_math::device_add3 (a_d, b_d, c_d, n)
 Vector addition a = b + c .
 
subroutine, public device_math::device_add3s2 (a_d, b_d, c_d, c1, c2, n)
 Returns a = c1 * b + c2 * c .
 
subroutine, public device_math::device_invcol1 (a_d, n)
 Invert a vector a = 1 / a .
 
subroutine, public device_math::device_invcol2 (a_d, b_d, n)
 Vector division a = a / b .
 
subroutine, public device_math::device_col2 (a_d, b_d, n)
 Vector multiplication a = a \cdot b .
 
subroutine, public device_math::device_col3 (a_d, b_d, c_d, n)
 Vector multiplication with 3 vectors a = b \cdot c .
 
subroutine, public device_math::device_subcol3 (a_d, b_d, c_d, n)
 Returns a = a - b*c .
 
subroutine, public device_math::device_sub2 (a_d, b_d, n)
 Vector substraction a = a - b .
 
subroutine, public device_math::device_sub3 (a_d, b_d, c_d, n)
 Vector subtraction a = b - c .
 
subroutine, public device_math::device_addcol3 (a_d, b_d, c_d, n)
 Returns a = a + b*c .
 
subroutine, public device_math::device_addcol4 (a_d, b_d, c_d, d_d, n)
 Returns a = a + b*c*d .
 
subroutine, public device_math::device_vdot3 (dot_d, u1_d, u2_d, u3_d, v1_d, v2_d, v3_d, n)
 Compute a dot product dot = u \cdot v (3-d version) assuming vector components u = (u_1, u_2, u_3) etc.
 
subroutine, public device_math::device_vcross (u1_d, u2_d, u3_d, v1_d, v2_d, v3_d, w1_d, w2_d, w3_d, n)
 Compute a cross product u = v \times w (3-d version) assuming vector components u = (u_1, u_2, u_3) etc.
 
real(kind=rp) function, public device_math::device_vlsc3 (u_d, v_d, w_d, n)
 Compute multiplication sum dot = u \cdot v \cdot w .
 
real(kind=rp) function, public device_math::device_glsc3 (a_d, b_d, c_d, n)
 Weighted inner product a^T b c .
 
subroutine, public device_math::device_glsc3_many (h, w_d, v_d_d, mult_d, j, n)
 
subroutine, public device_math::device_add2s2_many (y_d, x_d_d, a_d, j, n)
 
real(kind=rp) function, public device_math::device_glsc2 (a_d, b_d, n)
 Weighted inner product a^T b .
 
real(kind=rp) function, public device_math::device_glsum (a_d, n)
 Sum a vector of length n.
 
subroutine, public device_math::device_absval (a_d, n)
 
subroutine device_math::device_pwmax_vec2 (a_d, b_d, n)
 Compute the point-wise maximum of two vectors a_i = \max(a_i, b_i) .
 
subroutine device_math::device_pwmax_vec3 (a_d, b_d, c_d, n)
 Compute the point-wise maximum of two vectors a_i = \max(b_i, c_i) .
 
subroutine device_math::device_pwmax_sca2 (a_d, c, n)
 Compute the point-wise maximum of a vector and a scalar a_i = \max(a_i, c) .
 
subroutine device_math::device_pwmax_sca3 (a_d, b_d, c, n)
 Compute the point-wise maximum of a vector and a scalar a_i = \max(b_i, c) .
 
subroutine device_math::device_pwmin_vec2 (a_d, b_d, n)
 Compute the point-wise minimum of two vectors a_i = \min(a_i, b_i) .
 
subroutine device_math::device_pwmin_vec3 (a_d, b_d, c_d, n)
 Compute the point-wise minimum of two vectors a_i = \min(b_i, c_i) .
 
subroutine device_math::device_pwmin_sca2 (a_d, c, n)
 Compute the point-wise minimum of a vector and a scalar a_i = \min(a_i, c) .
 
subroutine device_math::device_pwmin_sca3 (a_d, b_d, c, n)
 Compute the point-wise minimum of a vector and a scalar a_i = \min(b_i, c) .