Neko  0.9.99
A portable framework for high-order spectral element flow simulations
device_math Module Reference

Data Types

interface  device_pwmax
 
interface  device_pwmin
 

Functions/Subroutines

subroutine, public device_copy (a_d, b_d, n)
 Copy a vector \( a = b \). More...
 
subroutine, public device_masked_copy (a_d, b_d, mask_d, n, m)
 Copy a masked vector \( a(mask) = b(mask) \). More...
 
subroutine, public device_masked_red_copy (a_d, b_d, mask_d, n, m)
 
subroutine, public 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 \). More...
 
subroutine, public device_rzero (a_d, n)
 Zero a real vector. More...
 
subroutine, public device_rone (a_d, n)
 Set all elements to one. More...
 
subroutine, public device_cmult (a_d, c, n)
 Multiplication by constant c \( a = c \cdot a \). More...
 
subroutine, public device_cmult2 (a_d, b_d, c, n)
 Multiplication by constant c \( a = c \cdot b \). More...
 
subroutine, public device_cadd (a_d, c, n)
 Add a scalar to vector \( a = a + s \). More...
 
subroutine, public device_cadd2 (a_d, b_d, c, n)
 Add a scalar to vector \( a = b + s \). More...
 
subroutine, public device_cfill (a_d, c, n)
 Set all elements to a constant c \( a = c \). More...
 
subroutine, public device_add2 (a_d, b_d, n)
 Vector addition \( a = a + b \). More...
 
subroutine, public device_add4 (a_d, b_d, c_d, d_d, n)
 
subroutine, public device_add2s1 (a_d, b_d, c1, n)
 
subroutine, public device_add2s2 (a_d, b_d, c1, n)
 Vector addition with scalar multiplication \( a = c_1 a + b \) (multiplication on first argument) More...
 
subroutine, public device_addsqr2s2 (a_d, b_d, c1, n)
 Returns \( a = a + c1 * (b * b )\). More...
 
subroutine, public device_add3 (a_d, b_d, c_d, n)
 Vector addition \( a = b + c \). More...
 
subroutine, public device_add3s2 (a_d, b_d, c_d, c1, c2, n)
 Returns \( a = c1 * b + c2 * c \). More...
 
subroutine, public device_invcol1 (a_d, n)
 Invert a vector \( a = 1 / a \). More...
 
subroutine, public device_invcol2 (a_d, b_d, n)
 Vector division \( a = a / b \). More...
 
subroutine, public device_col2 (a_d, b_d, n)
 Vector multiplication \( a = a \cdot b \). More...
 
subroutine, public device_col3 (a_d, b_d, c_d, n)
 Vector multiplication with 3 vectors \( a = b \cdot c \). More...
 
subroutine, public device_subcol3 (a_d, b_d, c_d, n)
 Returns \( a = a - b*c \). More...
 
subroutine, public device_sub2 (a_d, b_d, n)
 Vector substraction \( a = a - b \). More...
 
subroutine, public device_sub3 (a_d, b_d, c_d, n)
 Vector subtraction \( a = b - c \). More...
 
subroutine, public device_addcol3 (a_d, b_d, c_d, n)
 Returns \( a = a + b*c \). More...
 
subroutine, public device_addcol4 (a_d, b_d, c_d, d_d, n)
 Returns \( a = a + b*c*d \). More...
 
subroutine, public 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. More...
 
subroutine, public 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. More...
 
real(kind=rp) function, public device_vlsc3 (u_d, v_d, w_d, n)
 Compute multiplication sum \( dot = u \cdot v \cdot w \). More...
 
real(kind=rp) function, public device_glsc3 (a_d, b_d, c_d, n)
 Weighted inner product \( a^T b c \). More...
 
subroutine, public device_glsc3_many (h, w_d, v_d_d, mult_d, j, n)
 
subroutine, public device_add2s2_many (y_d, x_d_d, a_d, j, n)
 
real(kind=rp) function, public device_glsc2 (a_d, b_d, n)
 Weighted inner product \( a^T b \). More...
 
real(kind=rp) function, public device_glsum (a_d, n)
 Sum a vector of length n. More...
 
subroutine, public device_absval (a_d, n)
 
subroutine device_pwmax_vec2 (a_d, b_d, n)
 Compute the point-wise maximum of two vectors \( a_i = \max(a_i, b_i) \). More...
 
subroutine 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) \). More...
 
subroutine device_pwmax_sca2 (a_d, c, n)
 Compute the point-wise maximum of a vector and a scalar \( a_i = \max(a_i, c) \). More...
 
subroutine 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) \). More...
 
subroutine device_pwmin_vec2 (a_d, b_d, n)
 Compute the point-wise minimum of two vectors \( a_i = \min(a_i, b_i) \). More...
 
subroutine 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) \). More...
 
subroutine device_pwmin_sca2 (a_d, c, n)
 Compute the point-wise minimum of a vector and a scalar \( a_i = \min(a_i, c) \). More...
 
subroutine 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) \). More...
 

Function/Subroutine Documentation

◆ device_absval()

subroutine, public device_math::device_absval ( type(c_ptr)  a_d,
integer, intent(in)  n 
)

Definition at line 650 of file device_math.F90.

◆ device_add2()

subroutine, public device_math::device_add2 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
integer  n 
)

Definition at line 246 of file device_math.F90.

Here is the caller graph for this function:

◆ device_add2s1()

subroutine, public device_math::device_add2s1 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
real(kind=rp)  c1,
integer  n 
)

Definition at line 274 of file device_math.F90.

Here is the caller graph for this function:

◆ device_add2s2()

subroutine, public device_math::device_add2s2 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
real(kind=rp)  c1,
integer  n 
)

Definition at line 291 of file device_math.F90.

Here is the caller graph for this function:

◆ device_add2s2_many()

subroutine, public device_math::device_add2s2_many ( type(c_ptr), value  y_d,
type(c_ptr), value  x_d_d,
type(c_ptr), value  a_d,
integer(c_int)  j,
integer(c_int)  n 
)

Definition at line 590 of file device_math.F90.

◆ device_add3()

subroutine, public device_math::device_add3 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
type(c_ptr)  c_d,
integer  n 
)

Definition at line 323 of file device_math.F90.

Here is the caller graph for this function:

◆ device_add3s2()

subroutine, public device_math::device_add3s2 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
type(c_ptr)  c_d,
real(kind=rp)  c1,
real(kind=rp)  c2,
integer  n 
)

Definition at line 338 of file device_math.F90.

Here is the caller graph for this function:

◆ device_add4()

subroutine, public device_math::device_add4 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
type(c_ptr)  c_d,
type(c_ptr)  d_d,
integer  n 
)

Definition at line 260 of file device_math.F90.

Here is the caller graph for this function:

◆ device_addcol3()

subroutine, public device_math::device_addcol3 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
type(c_ptr)  c_d,
integer  n 
)

Definition at line 459 of file device_math.F90.

Here is the caller graph for this function:

◆ device_addcol4()

subroutine, public device_math::device_addcol4 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
type(c_ptr)  c_d,
type(c_ptr)  d_d,
integer  n 
)

Definition at line 474 of file device_math.F90.

Here is the caller graph for this function:

◆ device_addsqr2s2()

subroutine, public device_math::device_addsqr2s2 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
real(kind=rp)  c1,
integer  n 
)

Definition at line 307 of file device_math.F90.

Here is the caller graph for this function:

◆ device_cadd()

subroutine, public device_math::device_cadd ( type(c_ptr)  a_d,
real(kind=rp), intent(in)  c,
integer  n 
)

Definition at line 197 of file device_math.F90.

Here is the caller graph for this function:

◆ device_cadd2()

subroutine, public device_math::device_cadd2 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
real(kind=rp), intent(in)  c,
integer  n 
)

Definition at line 213 of file device_math.F90.

Here is the caller graph for this function:

◆ device_cfill()

subroutine, public device_math::device_cfill ( type(c_ptr)  a_d,
real(kind=rp), intent(in)  c,
integer  n 
)

Definition at line 230 of file device_math.F90.

Here is the caller graph for this function:

◆ device_cfill_mask()

subroutine, public device_math::device_cfill_mask ( type(c_ptr)  a_d,
real(kind=rp), intent(in)  c,
integer  size,
type(c_ptr)  mask_d,
integer  mask_size 
)

Definition at line 120 of file device_math.F90.

◆ device_cmult()

subroutine, public device_math::device_cmult ( type(c_ptr)  a_d,
real(kind=rp), intent(in)  c,
integer  n 
)

Definition at line 165 of file device_math.F90.

Here is the caller graph for this function:

◆ device_cmult2()

subroutine, public device_math::device_cmult2 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
real(kind=rp), intent(in)  c,
integer  n 
)

Definition at line 181 of file device_math.F90.

Here is the caller graph for this function:

◆ device_col2()

subroutine, public device_math::device_col2 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
integer  n 
)

Definition at line 384 of file device_math.F90.

Here is the caller graph for this function:

◆ device_col3()

subroutine, public device_math::device_col3 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
type(c_ptr)  c_d,
integer  n 
)

Definition at line 399 of file device_math.F90.

Here is the caller graph for this function:

◆ device_copy()

subroutine, public device_math::device_copy ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
integer  n 
)

Definition at line 75 of file device_math.F90.

Here is the caller graph for this function:

◆ device_glsc2()

real(kind=rp) function, public device_math::device_glsc2 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
integer  n 
)

Definition at line 605 of file device_math.F90.

Here is the caller graph for this function:

◆ device_glsc3()

real(kind=rp) function, public device_math::device_glsc3 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
type(c_ptr)  c_d,
integer  n 
)

Definition at line 545 of file device_math.F90.

Here is the caller graph for this function:

◆ device_glsc3_many()

subroutine, public device_math::device_glsc3_many ( real(c_rp), dimension(j)  h,
type(c_ptr), value  w_d,
type(c_ptr), value  v_d_d,
type(c_ptr), value  mult_d,
integer(c_int)  j,
integer(c_int)  n 
)

Definition at line 567 of file device_math.F90.

◆ device_glsum()

real(kind=rp) function, public device_math::device_glsum ( type(c_ptr)  a_d,
integer  n 
)

Definition at line 628 of file device_math.F90.

Here is the caller graph for this function:

◆ device_invcol1()

subroutine, public device_math::device_invcol1 ( type(c_ptr)  a_d,
integer  n 
)

Definition at line 354 of file device_math.F90.

Here is the caller graph for this function:

◆ device_invcol2()

subroutine, public device_math::device_invcol2 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
integer  n 
)

Definition at line 369 of file device_math.F90.

Here is the caller graph for this function:

◆ device_masked_copy()

subroutine, public device_math::device_masked_copy ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
type(c_ptr)  mask_d,
integer  n,
integer  m 
)

Definition at line 90 of file device_math.F90.

Here is the caller graph for this function:

◆ device_masked_red_copy()

subroutine, public device_math::device_masked_red_copy ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
type(c_ptr)  mask_d,
integer  n,
integer  m 
)

Definition at line 104 of file device_math.F90.

Here is the caller graph for this function:

◆ device_pwmax_sca2()

subroutine device_math::device_pwmax_sca2 ( type(c_ptr)  a_d,
real(kind=rp), intent(in)  c,
integer  n 
)
private

Definition at line 705 of file device_math.F90.

◆ device_pwmax_sca3()

subroutine device_math::device_pwmax_sca3 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
real(kind=rp), intent(in)  c,
integer  n 
)
private

Definition at line 724 of file device_math.F90.

◆ device_pwmax_vec2()

subroutine device_math::device_pwmax_vec2 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
integer  n 
)
private

Definition at line 670 of file device_math.F90.

◆ device_pwmax_vec3()

subroutine device_math::device_pwmax_vec3 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
type(c_ptr)  c_d,
integer  n 
)
private

Definition at line 687 of file device_math.F90.

◆ device_pwmin_sca2()

subroutine device_math::device_pwmin_sca2 ( type(c_ptr)  a_d,
real(kind=rp), intent(in)  c,
integer  n 
)
private

Definition at line 781 of file device_math.F90.

◆ device_pwmin_sca3()

subroutine device_math::device_pwmin_sca3 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
real(kind=rp), intent(in)  c,
integer  n 
)
private

Definition at line 800 of file device_math.F90.

◆ device_pwmin_vec2()

subroutine device_math::device_pwmin_vec2 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
integer  n 
)
private

Definition at line 746 of file device_math.F90.

◆ device_pwmin_vec3()

subroutine device_math::device_pwmin_vec3 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
type(c_ptr)  c_d,
integer  n 
)
private

Definition at line 763 of file device_math.F90.

◆ device_rone()

subroutine, public device_math::device_rone ( type(c_ptr)  a_d,
integer  n 
)

Definition at line 153 of file device_math.F90.

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

◆ device_rzero()

subroutine, public device_math::device_rzero ( type(c_ptr)  a_d,
integer  n 
)

Definition at line 138 of file device_math.F90.

Here is the caller graph for this function:

◆ device_sub2()

subroutine, public device_math::device_sub2 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
integer  n 
)

Definition at line 429 of file device_math.F90.

Here is the caller graph for this function:

◆ device_sub3()

subroutine, public device_math::device_sub3 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
type(c_ptr)  c_d,
integer  n 
)

Definition at line 444 of file device_math.F90.

Here is the caller graph for this function:

◆ device_subcol3()

subroutine, public device_math::device_subcol3 ( type(c_ptr)  a_d,
type(c_ptr)  b_d,
type(c_ptr)  c_d,
integer  n 
)

Definition at line 414 of file device_math.F90.

Here is the caller graph for this function:

◆ device_vcross()

subroutine, public device_math::device_vcross ( type(c_ptr)  u1_d,
type(c_ptr)  u2_d,
type(c_ptr)  u3_d,
type(c_ptr)  v1_d,
type(c_ptr)  v2_d,
type(c_ptr)  v3_d,
type(c_ptr)  w1_d,
type(c_ptr)  w2_d,
type(c_ptr)  w3_d,
integer  n 
)

Definition at line 506 of file device_math.F90.

Here is the caller graph for this function:

◆ device_vdot3()

subroutine, public device_math::device_vdot3 ( type(c_ptr)  dot_d,
type(c_ptr)  u1_d,
type(c_ptr)  u2_d,
type(c_ptr)  u3_d,
type(c_ptr)  v1_d,
type(c_ptr)  v2_d,
type(c_ptr)  v3_d,
integer  n 
)

Definition at line 490 of file device_math.F90.

Here is the caller graph for this function:

◆ device_vlsc3()

real(kind=rp) function, public device_math::device_vlsc3 ( type(c_ptr)  u_d,
type(c_ptr)  v_d,
type(c_ptr)  w_d,
integer  n 
)

Definition at line 527 of file device_math.F90.

Here is the caller graph for this function: