PSCF v1.3
Pscf::Prdc::Cuda::VecOp Namespace Reference

Functions that perform element-wise vector operations on the GPU. More...

Functions

void eqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector assignment, a[i] = b[i], kernel wrapper (cudaReal).
void eqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector assignment, a[i] = b[i], kernel wrapper (cudaComplex).
void eqS (DeviceArray< cudaReal > &a, const cudaReal b, const int beginIdA, const int n)
 Vector assignment, a[i] = b, kernel wrapper (cudaReal).
void eqS (DeviceArray< cudaComplex > &a, const cudaComplex b, const int beginIdA, const int n)
 Vector assignment, a[i] = b, kernel wrapper (cudaComplex).
void addVV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaReal > const &c, const int beginIdA, const int beginIdB, const int beginIdC, const int n)
 Vector addition, a[i] = b[i] + c[i], kernel wrapper (cudaReal).
void addVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaComplex > const &c, const int beginIdA, const int beginIdB, const int beginIdC, const int n)
 Vector addition, a[i] = b[i] + c[i], kernel wrapper (cudaComplex).
void addVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaComplex > const &c, const int beginIdA, const int beginIdB, const int beginIdC, const int n)
 Vector addition, a[i] = b[i] + c[i], kernel wrapper (mixed, b = real).
void addVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaReal > const &c, const int beginIdA, const int beginIdB, const int beginIdC, const int n)
 Vector addition, a[i] = b[i] + c[i], kernel wrapper (mixed, c = real).
void addVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const cudaReal c, const int beginIdA, const int beginIdB, const int n)
 Vector addition, a[i] = b[i] + c, kernel wrapper (cudaReal).
void addVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaComplex c, const int beginIdA, const int beginIdB, const int n)
 Vector addition, a[i] = b[i] + c, kernel wrapper (cudaComplex).
void addVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const cudaComplex c, const int beginIdA, const int beginIdB, const int n)
 Vector addition, a[i] = b[i] + c, kernel wrapper (mixed, b = real).
void addVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c, const int beginIdA, const int beginIdB, const int n)
 Vector addition, a[i] = b[i] + c, kernel wrapper (mixed, c = real).
void subVV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaReal > const &c, const int beginIdA, const int beginIdB, const int beginIdC, const int n)
 Vector subtraction, a[i] = b[i] - c[i], kernel wrapper (cudaReal).
void subVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaComplex > const &c, const int beginIdA, const int beginIdB, const int beginIdC, const int n)
 Vector subtraction, a[i] = b[i] - c[i], kernel wrapper (cudaComplex).
void subVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaComplex > const &c, const int beginIdA, const int beginIdB, const int beginIdC, const int n)
 Vector subtraction, a[i] = b[i] - c[i], kernel wrapper (mixed, b = real).
void subVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaReal > const &c, const int beginIdA, const int beginIdB, const int beginIdC, const int n)
 Vector subtraction, a[i] = b[i] - c[i], kernel wrapper (mixed, c = real).
void subVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const cudaReal c, const int beginIdA, const int beginIdB, const int n)
 Vector subtraction, a[i] = b[i] - c, kernel wrapper (cudaReal).
void subVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaComplex c, const int beginIdA, const int beginIdB, const int n)
 Vector subtraction, a[i] = b[i] - c, kernel wrapper (cudaComplex).
void subVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const cudaComplex c, const int beginIdA, const int beginIdB, const int n)
 Vector subtraction, a[i] = b[i] - c, kernel wrapper (mixed, b = real).
void subVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c, const int beginIdA, const int beginIdB, const int n)
 Vector subtraction, a[i] = b[i] - c, kernel wrapper (mixed, c = real).
void mulVV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaReal > const &c, const int beginIdA, const int beginIdB, const int beginIdC, const int n)
 Vector multiplication, a[i] = b[i] * c[i], kernel wrapper (cudaReal).
void mulVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaComplex > const &c, const int beginIdA, const int beginIdB, const int beginIdC, const int n)
 Vector multiplication, a[i] = b[i] * c[i], kernel wrapper (cudaComplex).
void mulVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaComplex > const &c, const int beginIdA, const int beginIdB, const int beginIdC, const int n)
 Vector multiplication, a[i]=b[i]*c[i], kernel wrapper (mixed, b = real).
void mulVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaReal > const &c, const int beginIdA, const int beginIdB, const int beginIdC, const int n)
 Vector multiplication, a[i]=b[i]*c[i], kernel wrapper (mixed, c = real).
void mulVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const cudaReal c, const int beginIdA, const int beginIdB, const int n)
 Vector multiplication, a[i] = b[i] * c, kernel wrapper (cudaReal).
void mulVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaComplex c, const int beginIdA, const int beginIdB, const int n)
 Vector multiplication, a[i] = b[i] * c, kernel wrapper (cudaComplex).
void mulVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const cudaComplex c, const int beginIdA, const int beginIdB, const int n)
 Vector multiplication, a[i] = b[i] * c, kernel wrapper (mixed, b = real).
void mulVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c, const int beginIdA, const int beginIdB, const int n)
 Vector multiplication, a[i] = b[i] * c, kernel wrapper (mixed, c = real).
void divVV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaReal > const &c, const int beginIdA, const int beginIdB, const int beginIdC, const int n)
 Vector division, a[i] = b[i] / c[i], kernel wrapper (cudaReal).
void divVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaReal > const &c, const int beginIdA, const int beginIdB, const int beginIdC, const int n)
 Vector division, a[i] = b[i] / c[i], kernel wrapper (mixed, c = real).
void divVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const cudaReal c, const int beginIdA, const int beginIdB, const int n)
 Vector division, a[i] = b[i] / c, kernel wrapper (cudaReal).
void divVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c, const int beginIdA, const int beginIdB, const int n)
 Vector division, a[i] = b[i] / c, kernel wrapper (mixed, c = real).
void divSV (DeviceArray< cudaReal > &a, const cudaReal b, DeviceArray< cudaReal > const &c, const int beginIdA, const int beginIdC, const int n)
 Vector division, a[i] = b / c[i], kernel wrapper (cudaReal).
void expV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector exponentiation, a[i] = exp(b[i]), kernel wrapper (cudaReal).
void expV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector exponentiation, a[i] = exp(b[i]), kernel wrapper (cudaComplex).
void addEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector addition in-place, a[i] += b[i], kernel wrapper (cudaReal).
void addEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector addition in-place, a[i] += b[i], kernel wrapper (cudaComplex).
void addEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector addition in-place, a[i] += b[i], kernel wrapper (mixed, b = real).
void addEqS (DeviceArray< cudaReal > &a, const cudaReal b, const int beginIdA, const int n)
 Vector addition in-place, a[i] += b, kernel wrapper (cudaReal).
void addEqS (DeviceArray< cudaComplex > &a, const cudaComplex b, const int beginIdA, const int n)
 Vector addition in-place, a[i] += b, kernel wrapper (cudaComplex).
void addEqS (DeviceArray< cudaComplex > &a, const cudaReal b, const int beginIdA, const int n)
 Vector addition in-place, a[i] += b, kernel wrapper (mixed, b = real).
void subEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector subtraction in-place, a[i] -= b[i], kernel wrapper (cudaReal).
void subEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector subtraction in-place, a[i] -= b[i], kernel wrapper (cudaComplex).
void subEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector subtraction in-place, a[i]-=b[i], kernel wrapper (mixed, b = real).
void subEqS (DeviceArray< cudaReal > &a, const cudaReal b, const int beginIdA, const int n)
 Vector subtraction in-place, a[i] -= b, kernel wrapper (cudaReal).
void subEqS (DeviceArray< cudaComplex > &a, const cudaComplex b, const int beginIdA, const int n)
 Vector subtraction in-place, a[i] -= b, kernel wrapper (cudaComplex).
void subEqS (DeviceArray< cudaComplex > &a, const cudaReal b, const int beginIdA, const int n)
 Vector subtraction in-place, a[i] -= b, kernel wrapper (mixed, b = real).
void mulEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector multiplication in-place, a[i] *= b[i], kernel wrapper (cudaReal).
void mulEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector multiplication in-place, a[i]*=b[i], kernel wrapper (cudaComplex).
void mulEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector multiplication in-place, a[i]*=b[i], kernel wrapper (mixed, b=real).
void mulEqS (DeviceArray< cudaReal > &a, const cudaReal b, const int beginIdA, const int n)
 Vector multiplication in-place, a[i] *= b, kernel wrapper (cudaReal).
void mulEqS (DeviceArray< cudaComplex > &a, const cudaComplex b, const int beginIdA, const int n)
 Vector multiplication in-place, a[i] *= b, kernel wrapper (cudaComplex).
void mulEqS (DeviceArray< cudaComplex > &a, const cudaReal b, const int beginIdA, const int n)
 Vector multiplication in-place, a[i]*=b, kernel wrapper (mixed, b = real).
void divEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector division in-place, a[i] /= b[i], kernel wrapper (cudaReal).
void divEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector division in-place, a[i] /= b[i], kernel wrapper (mixed, b = real).
void divEqS (DeviceArray< cudaReal > &a, const cudaReal b, const int beginIdA, const int n)
 Vector division in-place, a[i] /= b, kernel wrapper (cudaReal).
void divEqS (DeviceArray< cudaComplex > &a, const cudaReal b, const int beginIdA, const int n)
 Vector division in-place, a[i] /= b, kernel wrapper (mixed, b = real).
void eqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector assignment, a[i] = b[i], kernel wrapper (cudaReal).
void eqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b)
 Vector assignment, a[i] = b[i], kernel wrapper (cudaComplex).
void eqS (DeviceArray< cudaReal > &a, const cudaReal b)
 Vector assignment, a[i] = b, kernel wrapper (cudaReal).
void eqS (DeviceArray< cudaComplex > &a, const cudaComplex b)
 Vector assignment, a[i] = b, kernel wrapper (cudaComplex).
void addVV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaReal > const &c)
 Vector addition, a[i] = b[i] + c[i], kernel wrapper (cudaReal).
void addVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaComplex > const &c)
 Vector addition, a[i] = b[i] + c[i], kernel wrapper (cudaComplex).
void addVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaComplex > const &c)
 Vector addition, a[i] = b[i] + c[i], kernel wrapper (mixed, b = real).
void addVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaReal > const &c)
 Vector addition, a[i] = b[i] + c[i], kernel wrapper (mixed, c = real).
void addVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const cudaReal c)
 Vector addition, a[i] = b[i] + c, kernel wrapper (cudaReal).
void addVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaComplex c)
 Vector addition, a[i] = b[i] + c, kernel wrapper (cudaComplex).
void addVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const cudaComplex c)
 Vector addition, a[i] = b[i] + c, kernel wrapper (mixed, b = real).
void addVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c)
 Vector addition, a[i] = b[i] + c, kernel wrapper (mixed, c = real).
void subVV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaReal > const &c)
 Vector subtraction, a[i] = b[i] - c[i], kernel wrapper (cudaReal).
void subVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaComplex > const &c)
 Vector subtraction, a[i] = b[i] - c[i], kernel wrapper (cudaComplex).
void subVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaComplex > const &c)
 Vector subtraction, a[i] = b[i] - c[i], kernel wrapper (mixed, b = real).
void subVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaReal > const &c)
 Vector subtraction, a[i] = b[i] - c[i], kernel wrapper (mixed, c = real).
void subVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const cudaReal c)
 Vector subtraction, a[i] = b[i] - c, kernel wrapper (cudaReal).
void subVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaComplex c)
 Vector subtraction, a[i] = b[i] - c, kernel wrapper (cudaComplex).
void subVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const cudaComplex c)
 Vector subtraction, a[i] = b[i] - c, kernel wrapper (mixed, b = real).
void subVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c)
 Vector subtraction, a[i] = b[i] - c, kernel wrapper (mixed, c = real).
void mulVV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaReal > const &c)
 Vector multiplication, a[i] = b[i] * c[i], kernel wrapper (cudaReal).
void mulVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaComplex > const &c)
 Vector multiplication, a[i] = b[i] * c[i], kernel wrapper (cudaComplex).
void mulVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaComplex > const &c)
 Vector multiplication, a[i]=b[i]*c[i], kernel wrapper (mixed, b = real).
void mulVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaReal > const &c)
 Vector multiplication, a[i]=b[i]*c[i], kernel wrapper (mixed, c = real).
void mulVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const cudaReal c)
 Vector multiplication, a[i] = b[i] * c, kernel wrapper (cudaReal).
void mulVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaComplex c)
 Vector multiplication, a[i] = b[i] * c, kernel wrapper (cudaComplex).
void mulVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const cudaComplex c)
 Vector multiplication, a[i] = b[i] * c, kernel wrapper (mixed, b = real).
void mulVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c)
 Vector multiplication, a[i] = b[i] * c, kernel wrapper (mixed, c = real).
void divVV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaReal > const &c)
 Vector division, a[i] = b[i] / c[i], kernel wrapper (cudaReal).
void divVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaReal > const &c)
 Vector division, a[i] = b[i] / c[i], kernel wrapper (mixed, c = real).
void divVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const cudaReal c)
 Vector division, a[i] = b[i] / c, kernel wrapper (cudaReal).
void divVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c)
 Vector division, a[i] = b[i] / c, kernel wrapper (mixed, c = real).
void divSV (DeviceArray< cudaReal > &a, const cudaReal b, DeviceArray< cudaReal > const &c)
 Vector division, a[i] = b / c[i], kernel wrapper (cudaReal).
void expV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector exponentiation, a[i] = exp(b[i]), kernel wrapper (cudaReal).
void expV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b)
 Vector exponentiation, a[i] = exp(b[i]), kernel wrapper (cudaComplex).
void addEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector addition in-place, a[i] += b[i], kernel wrapper (cudaReal).
void addEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b)
 Vector addition in-place, a[i] += b[i], kernel wrapper (cudaComplex).
void addEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b)
 Vector addition in-place, a[i] += b[i], kernel wrapper (mixed, b = real).
void addEqS (DeviceArray< cudaReal > &a, const cudaReal b)
 Vector addition in-place, a[i] += b, kernel wrapper (cudaReal).
void addEqS (DeviceArray< cudaComplex > &a, const cudaComplex b)
 Vector addition in-place, a[i] += b, kernel wrapper (cudaComplex).
void addEqS (DeviceArray< cudaComplex > &a, const cudaReal b)
 Vector addition in-place, a[i] += b, kernel wrapper (mixed, b = real).
void subEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector subtraction in-place, a[i] -= b[i], kernel wrapper (cudaReal).
void subEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b)
 Vector subtraction in-place, a[i] -= b[i], kernel wrapper (cudaComplex).
void subEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b)
 Vector subtraction in-place, a[i]-=b[i], kernel wrapper (mixed, b = real).
void subEqS (DeviceArray< cudaReal > &a, const cudaReal b)
 Vector subtraction in-place, a[i] -= b, kernel wrapper (cudaReal).
void subEqS (DeviceArray< cudaComplex > &a, const cudaComplex b)
 Vector subtraction in-place, a[i] -= b, kernel wrapper (cudaComplex).
void subEqS (DeviceArray< cudaComplex > &a, const cudaReal b)
 Vector subtraction in-place, a[i] -= b, kernel wrapper (mixed, b = real).
void mulEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector multiplication in-place, a[i] *= b[i], kernel wrapper (cudaReal).
void mulEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b)
 Vector multiplication in-place, a[i]*=b[i], kernel wrapper (cudaComplex).
void mulEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b)
 Vector multiplication in-place, a[i]*=b[i], kernel wrapper (mixed, b=real).
void mulEqS (DeviceArray< cudaReal > &a, const cudaReal b)
 Vector multiplication in-place, a[i] *= b, kernel wrapper (cudaReal).
void mulEqS (DeviceArray< cudaComplex > &a, const cudaComplex b)
 Vector multiplication in-place, a[i] *= b, kernel wrapper (cudaComplex).
void mulEqS (DeviceArray< cudaComplex > &a, const cudaReal b)
 Vector multiplication in-place, a[i]*=b, kernel wrapper (mixed, b = real).
void divEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector division in-place, a[i] /= b[i], kernel wrapper (cudaReal).
void divEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b)
 Vector division in-place, a[i] /= b[i], kernel wrapper (mixed, b = real).
void divEqS (DeviceArray< cudaReal > &a, const cudaReal b)
 Vector division in-place, a[i] /= b, kernel wrapper (cudaReal).
void divEqS (DeviceArray< cudaComplex > &a, const cudaReal b)
 Vector division in-place, a[i] /= b, kernel wrapper (mixed, b = real).
void addVcVc (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, cudaReal const c, DeviceArray< cudaReal > const &d, cudaReal const e)
 Vector addition w/ coefficient, a[i] = (b[i]*c) + (d[i]*e), kernel wrapper.
void addVcVcVc (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, cudaReal const c, DeviceArray< cudaReal > const &d, cudaReal const e, DeviceArray< cudaReal > const &f, cudaReal const g)
 3-vec addition w coeff, a[i] = (b[i]*c) + (d[i]*e) + (f[i]*g), kernel wrapper.
void addEqVc (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, cudaReal const c)
 Vector addition in-place w/ coefficient, a[i] += b[i] * c, kernel wrapper.
void subVVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaReal > const &c, cudaReal const d)
 Vector subtraction, a[i] = b[i] - c[i] - d, kernel wrapper.
void divEqVc (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, cudaReal const c)
 Vector division in-place w/ coeff., a[i] /= (b[i] * c), kernel wrapper.
void expVc (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, cudaReal const c)
 Vector exponentiation w/ coefficient, a[i] = exp(b[i]*c), kernel wrapper.
void eqVPair (DeviceArray< cudaReal > &a1, DeviceArray< cudaReal > &a2, DeviceArray< cudaReal > const &s)
 Vector assignment in pairs, ax[i] = b[i], kernel wrapper.
void mulVVPair (DeviceArray< cudaReal > &a1, DeviceArray< cudaReal > &a2, DeviceArray< cudaReal > const &b1, DeviceArray< cudaReal > const &b2, DeviceArray< cudaReal > const &s)
 Vector multiplication in pairs, ax[i] = bx[i] * s[i], kernel wrapper.
void mulEqVPair (DeviceArray< cudaReal > &a1, DeviceArray< cudaReal > &a2, DeviceArray< cudaReal > const &s)
 In-place vector multiplication in pairs, ax[i] *= s[i], kernel wrapper.
void addVMany (DeviceArray< cudaReal > &a, DArray< DeviceArray< cudaReal > > const &vecs)
 Add an undefined number of vectors pointwise, kernel wrapper.
void addVMany (DeviceArray< cudaReal > &a, DArray< DeviceArray< cudaReal > const * > const &vecs)
 Add an undefined number of vectors pointwise, kernel wrapper.
void mulVMany (DeviceArray< cudaReal > &a, DArray< DeviceArray< cudaReal > > const &vecs)
 Multiply an undefined number of vectors pointwise, kernel wrapper.
void mulVMany (DeviceArray< cudaReal > &a, DArray< DeviceArray< cudaReal > const * > const &vecs)
 Multiply an undefined number of vectors pointwise, kernel wrapper.
void sqNormV (DeviceArray< cudaReal > &a, DeviceArray< cudaComplex > const &b)
 Squared norm of complex number, a[i] = norm(b[i])^2, kernel wrapper.
void sqSqNormV (DeviceArray< cudaReal > &a, DeviceArray< cudaComplex > const &b)
 Norm of complex number to the 4th power, a[i] = norm(b[i])^4, kernel wrapper.

Detailed Description

Functions that perform element-wise vector operations on the GPU.

The functions defined in this file are wrappers for CUDA kernels that perform the actual vector operations. The kernels themselves are only intended to be called through their wrappers, so they are defined in an anonymous namespace in VecOp.cu.

The wrapper functions operate on DeviceArray objects containing elements of type cudaReal or cudaComplex. The operations that are performed by these functions include addition, subtraction, multiplication, division, exponentiation, and assignment. The function names will, correspondingly, begin with "add", "sub", "mul", "div", "exp", or "eq" to indicate the operation being performed. Functions are also included to perform compound assignment operations, i.e. those that are performed using +=, -=, *=, and /= in C++. These functions have names that begin with "addEq", "subEq", "mulEq", and "divEq", respectively.

The functions are overloaded to perform their respective operations on any combination of cudaReal and cudaComplex input arrays, except those that would result in dividing by a complex number.

The output (the LHS of the vector operation) will always be the first parameter passed to the function. The input argument(s) (on the RHS of the vector operation) may be vectors or scalars. If an argument is a vector (scalar), the function name will contain a V (S). For example, addVV(A,B,C) implements vector-vector addition A[i] = B[i] + C[i], while addVS(A,B,c) implements vector-scalar addition A[i] = B[i] + c in which c is a scalar that is added to every element of B. In operations involving both vectors and scalars, the vectors will always be listed first. So, for example, addVS exists, but addSV does not.

Two wrapper functions are provided for each vector operation:

  • The first accepts only the output array and the necessary input arrays / scalars. In these functions, each input array must be at least as long as the output array, and the element-wise operation will be performed for every element of the output array. All arrays will be indexed starting at element 0.
  • The second allows for vector operations to be performed using only subsections (slices) of the input and output arrays. These functions require additional parameters: one index for each array involved in the operation (output and input), representing the element of each array at which to begin the slice, and an integer n, representing the size of the slices. Before calling the CUDA kernel, these functions check to ensure that the slices do not contain any indices that exceed the length of the corresponding arrays.

Additional functions that perform multiple operations within a single kernel are defined in VecOpMisc, which are not comprehensive and are written as-needed during the development of this software. VecOpMisc.h is included at the end of VecOp.h so that any code that includes VecOp.h will also include VecOpMisc.h.

Function Documentation

◆ eqV() [1/4]

void Pscf::Prdc::Cuda::VecOp::eqV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
const int beginIdA,
const int beginIdB,
const int n )

◆ eqV() [2/4]

void Pscf::Prdc::Cuda::VecOp::eqV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const int beginIdA,
const int beginIdB,
const int n )

Vector assignment, a[i] = b[i], kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1056 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ eqS() [1/4]

void Pscf::Prdc::Cuda::VecOp::eqS ( DeviceArray< cudaReal > & a,
const cudaReal b,
const int beginIdA,
const int n )

Vector assignment, a[i] = b, kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
nthe number of entries to evaluate

Definition at line 1073 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by Pscf::Rpg::Simulator< D >::computeCc(), Pscf::Rpg::Block< D >::computeConcentrationBead(), Pscf::Rpg::Block< D >::computeConcentrationThread(), Pscf::Rpg::Simulator< D >::computeWc(), eqS(), eqS(), and Pscf::Rpg::FourthOrderParameter< D >::setup().

◆ eqS() [2/4]

void Pscf::Prdc::Cuda::VecOp::eqS ( DeviceArray< cudaComplex > & a,
const cudaComplex b,
const int beginIdA,
const int n )

Vector assignment, a[i] = b, kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
nthe number of entries to evaluate

Definition at line 1088 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ addVV() [1/8]

void Pscf::Prdc::Cuda::VecOp::addVV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
DeviceArray< cudaReal > const & c,
const int beginIdA,
const int beginIdB,
const int beginIdC,
const int n )

Vector addition, a[i] = b[i] + c[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
beginIdCindex of the first entry to evaluate in array c
nthe number of entries to evaluate

Definition at line 1103 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by addVMany(), addVMany(), addVV(), addVV(), addVV(), and addVV().

◆ addVV() [2/8]

void Pscf::Prdc::Cuda::VecOp::addVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
DeviceArray< cudaComplex > const & c,
const int beginIdA,
const int beginIdB,
const int beginIdC,
const int n )

Vector addition, a[i] = b[i] + c[i], kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
beginIdCindex of the first entry to evaluate in array c
nthe number of entries to evaluate

Definition at line 1122 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ addVV() [3/8]

void Pscf::Prdc::Cuda::VecOp::addVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b,
DeviceArray< cudaComplex > const & c,
const int beginIdA,
const int beginIdB,
const int beginIdC,
const int n )

Vector addition, a[i] = b[i] + c[i], kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
beginIdCindex of the first entry to evaluate in array c
nthe number of entries to evaluate

Definition at line 1141 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ addVV() [4/8]

void Pscf::Prdc::Cuda::VecOp::addVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
DeviceArray< cudaReal > const & c,
const int beginIdA,
const int beginIdB,
const int beginIdC,
const int n )

Vector addition, a[i] = b[i] + c[i], kernel wrapper (mixed, c = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
beginIdCindex of the first entry to evaluate in array c
nthe number of entries to evaluate

Definition at line 1160 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ addVS() [1/8]

void Pscf::Prdc::Cuda::VecOp::addVS ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
const cudaReal c,
const int beginIdA,
const int beginIdB,
const int n )

Vector addition, a[i] = b[i] + c, kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1179 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by addVS(), addVS(), addVS(), and addVS().

◆ addVS() [2/8]

void Pscf::Prdc::Cuda::VecOp::addVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const cudaComplex c,
const int beginIdA,
const int beginIdB,
const int n )

Vector addition, a[i] = b[i] + c, kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1196 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ addVS() [3/8]

void Pscf::Prdc::Cuda::VecOp::addVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b,
const cudaComplex c,
const int beginIdA,
const int beginIdB,
const int n )

Vector addition, a[i] = b[i] + c, kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1213 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ addVS() [4/8]

void Pscf::Prdc::Cuda::VecOp::addVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const cudaReal c,
const int beginIdA,
const int beginIdB,
const int n )

Vector addition, a[i] = b[i] + c, kernel wrapper (mixed, c = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1230 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ subVV() [1/8]

void Pscf::Prdc::Cuda::VecOp::subVV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
DeviceArray< cudaReal > const & c,
const int beginIdA,
const int beginIdB,
const int beginIdC,
const int n )

Vector subtraction, a[i] = b[i] - c[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
beginIdCindex of the first entry to evaluate in array c
nthe number of entries to evaluate

Definition at line 1247 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by Pscf::Rpg::EinsteinCrystalPerturbation< D >::hamiltonian(), Pscf::Rpg::EinsteinCrystalPerturbation< D >::incrementDc(), Pscf::Rpg::PredCorrBdStep< D >::step(), Pscf::Rpg::FilmFieldGenMask< D >::stress(), subVV(), subVV(), subVV(), and subVV().

◆ subVV() [2/8]

void Pscf::Prdc::Cuda::VecOp::subVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
DeviceArray< cudaComplex > const & c,
const int beginIdA,
const int beginIdB,
const int beginIdC,
const int n )

Vector subtraction, a[i] = b[i] - c[i], kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
beginIdCindex of the first entry to evaluate in array c
nthe number of entries to evaluate

Definition at line 1266 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ subVV() [3/8]

void Pscf::Prdc::Cuda::VecOp::subVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b,
DeviceArray< cudaComplex > const & c,
const int beginIdA,
const int beginIdB,
const int beginIdC,
const int n )

Vector subtraction, a[i] = b[i] - c[i], kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
beginIdCindex of the first entry to evaluate in array c
nthe number of entries to evaluate

Definition at line 1285 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ subVV() [4/8]

void Pscf::Prdc::Cuda::VecOp::subVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
DeviceArray< cudaReal > const & c,
const int beginIdA,
const int beginIdB,
const int beginIdC,
const int n )

Vector subtraction, a[i] = b[i] - c[i], kernel wrapper (mixed, c = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
beginIdCindex of the first entry to evaluate in array c
nthe number of entries to evaluate

Definition at line 1304 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ subVS() [1/8]

void Pscf::Prdc::Cuda::VecOp::subVS ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
const cudaReal c,
const int beginIdA,
const int beginIdB,
const int n )

Vector subtraction, a[i] = b[i] - c, kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1323 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by Pscf::Rpg::Simulator< D >::computeHamiltonian(), subVS(), subVS(), subVS(), and subVS().

◆ subVS() [2/8]

void Pscf::Prdc::Cuda::VecOp::subVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const cudaComplex c,
const int beginIdA,
const int beginIdB,
const int n )

Vector subtraction, a[i] = b[i] - c, kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1341 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ subVS() [3/8]

void Pscf::Prdc::Cuda::VecOp::subVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b,
const cudaComplex c,
const int beginIdA,
const int beginIdB,
const int n )

Vector subtraction, a[i] = b[i] - c, kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1359 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ subVS() [4/8]

void Pscf::Prdc::Cuda::VecOp::subVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const cudaReal c,
const int beginIdA,
const int beginIdB,
const int n )

Vector subtraction, a[i] = b[i] - c, kernel wrapper (mixed, c = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1377 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ mulVV() [1/8]

void Pscf::Prdc::Cuda::VecOp::mulVV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
DeviceArray< cudaReal > const & c,
const int beginIdA,
const int beginIdB,
const int beginIdC,
const int n )

Vector multiplication, a[i] = b[i] * c[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
beginIdCindex of the first entry to evaluate in array c
nthe number of entries to evaluate

Definition at line 1395 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by mulVMany(), mulVMany(), mulVV(), mulVV(), mulVV(), and mulVV().

◆ mulVV() [2/8]

void Pscf::Prdc::Cuda::VecOp::mulVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
DeviceArray< cudaComplex > const & c,
const int beginIdA,
const int beginIdB,
const int beginIdC,
const int n )

Vector multiplication, a[i] = b[i] * c[i], kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
beginIdCindex of the first entry to evaluate in array c
nthe number of entries to evaluate

Definition at line 1414 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ mulVV() [3/8]

void Pscf::Prdc::Cuda::VecOp::mulVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b,
DeviceArray< cudaComplex > const & c,
const int beginIdA,
const int beginIdB,
const int beginIdC,
const int n )

Vector multiplication, a[i]=b[i]*c[i], kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
beginIdCindex of the first entry to evaluate in array c
nthe number of entries to evaluate

Definition at line 1433 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ mulVV() [4/8]

void Pscf::Prdc::Cuda::VecOp::mulVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
DeviceArray< cudaReal > const & c,
const int beginIdA,
const int beginIdB,
const int beginIdC,
const int n )

Vector multiplication, a[i]=b[i]*c[i], kernel wrapper (mixed, c = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
beginIdCindex of the first entry to evaluate in array c
nthe number of entries to evaluate

Definition at line 1452 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ mulVS() [1/8]

void Pscf::Prdc::Cuda::VecOp::mulVS ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
const cudaReal c,
const int beginIdA,
const int beginIdB,
const int n )

Vector multiplication, a[i] = b[i] * c, kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1471 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by mulVS(), mulVS(), mulVS(), and mulVS().

◆ mulVS() [2/8]

void Pscf::Prdc::Cuda::VecOp::mulVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const cudaComplex c,
const int beginIdA,
const int beginIdB,
const int n )

Vector multiplication, a[i] = b[i] * c, kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1489 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ mulVS() [3/8]

void Pscf::Prdc::Cuda::VecOp::mulVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b,
const cudaComplex c,
const int beginIdA,
const int beginIdB,
const int n )

Vector multiplication, a[i] = b[i] * c, kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1507 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ mulVS() [4/8]

void Pscf::Prdc::Cuda::VecOp::mulVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const cudaReal c,
const int beginIdA,
const int beginIdB,
const int n )

Vector multiplication, a[i] = b[i] * c, kernel wrapper (mixed, c = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1526 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ divVV() [1/4]

void Pscf::Prdc::Cuda::VecOp::divVV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
DeviceArray< cudaReal > const & c,
const int beginIdA,
const int beginIdB,
const int beginIdC,
const int n )

Vector division, a[i] = b[i] / c[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
beginIdCindex of the first entry to evaluate in array c
nthe number of entries to evaluate

Definition at line 1544 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by divVV(), and divVV().

◆ divVV() [2/4]

void Pscf::Prdc::Cuda::VecOp::divVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
DeviceArray< cudaReal > const & c,
const int beginIdA,
const int beginIdB,
const int beginIdC,
const int n )

Vector division, a[i] = b[i] / c[i], kernel wrapper (mixed, c = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
beginIdCindex of the first entry to evaluate in array c
nthe number of entries to evaluate

Definition at line 1563 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ divVS() [1/4]

void Pscf::Prdc::Cuda::VecOp::divVS ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
const cudaReal c,
const int beginIdA,
const int beginIdB,
const int n )

Vector division, a[i] = b[i] / c, kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1582 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by divVS(), and divVS().

◆ divVS() [2/4]

void Pscf::Prdc::Cuda::VecOp::divVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const cudaReal c,
const int beginIdA,
const int beginIdB,
const int n )

Vector division, a[i] = b[i] / c, kernel wrapper (mixed, c = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1600 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ divSV() [1/2]

void Pscf::Prdc::Cuda::VecOp::divSV ( DeviceArray< cudaReal > & a,
const cudaReal b,
DeviceArray< cudaReal > const & c,
const int beginIdA,
const int beginIdC,
const int n )

Vector division, a[i] = b / c[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput scalar (RHS)
cinput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdCindex of the first entry to evaluate in array c
nthe number of entries to evaluate

Definition at line 1619 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by divSV(), and Pscf::Rpg::Block< D >::setupSolver().

◆ expV() [1/4]

void Pscf::Prdc::Cuda::VecOp::expV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
const int beginIdA,
const int beginIdB,
const int n )

Vector exponentiation, a[i] = exp(b[i]), kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1638 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by expV(), and expV().

◆ expV() [2/4]

void Pscf::Prdc::Cuda::VecOp::expV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const int beginIdA,
const int beginIdB,
const int n )

Vector exponentiation, a[i] = exp(b[i]), kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1655 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ addEqV() [1/6]

void Pscf::Prdc::Cuda::VecOp::addEqV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
const int beginIdA,
const int beginIdB,
const int n )

Vector addition in-place, a[i] += b[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1672 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by addEqV(), addEqV(), addEqV(), and Pscf::Rpg::PredCorrBdStep< D >::step().

◆ addEqV() [2/6]

void Pscf::Prdc::Cuda::VecOp::addEqV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const int beginIdA,
const int beginIdB,
const int n )

Vector addition in-place, a[i] += b[i], kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1689 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ addEqV() [3/6]

void Pscf::Prdc::Cuda::VecOp::addEqV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b,
const int beginIdA,
const int beginIdB,
const int n )

Vector addition in-place, a[i] += b[i], kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1707 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ addEqS() [1/6]

void Pscf::Prdc::Cuda::VecOp::addEqS ( DeviceArray< cudaReal > & a,
const cudaReal b,
const int beginIdA,
const int n )

Vector addition in-place, a[i] += b, kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
nthe number of entries to evaluate

Definition at line 1724 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by addEqS(), addEqS(), and addEqS().

◆ addEqS() [2/6]

void Pscf::Prdc::Cuda::VecOp::addEqS ( DeviceArray< cudaComplex > & a,
const cudaComplex b,
const int beginIdA,
const int n )

Vector addition in-place, a[i] += b, kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
nthe number of entries to evaluate

Definition at line 1739 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ addEqS() [3/6]

void Pscf::Prdc::Cuda::VecOp::addEqS ( DeviceArray< cudaComplex > & a,
const cudaReal b,
const int beginIdA,
const int n )

Vector addition in-place, a[i] += b, kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
nthe number of entries to evaluate

Definition at line 1754 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ subEqV() [1/6]

void Pscf::Prdc::Cuda::VecOp::subEqV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
const int beginIdA,
const int beginIdB,
const int n )

Vector subtraction in-place, a[i] -= b[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1769 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by subEqV(), subEqV(), and subEqV().

◆ subEqV() [2/6]

void Pscf::Prdc::Cuda::VecOp::subEqV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const int beginIdA,
const int beginIdB,
const int n )

Vector subtraction in-place, a[i] -= b[i], kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1787 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ subEqV() [3/6]

void Pscf::Prdc::Cuda::VecOp::subEqV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b,
const int beginIdA,
const int beginIdB,
const int n )

Vector subtraction in-place, a[i]-=b[i], kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1805 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ subEqS() [1/6]

void Pscf::Prdc::Cuda::VecOp::subEqS ( DeviceArray< cudaReal > & a,
const cudaReal b,
const int beginIdA,
const int n )

Vector subtraction in-place, a[i] -= b, kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
nthe number of entries to evaluate

Definition at line 1822 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by subEqS(), subEqS(), and subEqS().

◆ subEqS() [2/6]

void Pscf::Prdc::Cuda::VecOp::subEqS ( DeviceArray< cudaComplex > & a,
const cudaComplex b,
const int beginIdA,
const int n )

Vector subtraction in-place, a[i] -= b, kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
nthe number of entries to evaluate

Definition at line 1837 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ subEqS() [3/6]

void Pscf::Prdc::Cuda::VecOp::subEqS ( DeviceArray< cudaComplex > & a,
const cudaReal b,
const int beginIdA,
const int n )

Vector subtraction in-place, a[i] -= b, kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
nthe number of entries to evaluate

Definition at line 1852 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ mulEqV() [1/6]

void Pscf::Prdc::Cuda::VecOp::mulEqV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
const int beginIdA,
const int beginIdB,
const int n )

Vector multiplication in-place, a[i] *= b[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1867 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by Pscf::Rpg::FourthOrderParameter< D >::compute(), Pscf::Rpg::Block< D >::computeStressBead(), mulEqV(), mulEqV(), mulEqV(), Pscf::Rpg::Block< D >::stepBondBead(), Pscf::Rpg::Block< D >::stepFieldBead(), Pscf::Rpg::Block< D >::stepHalfBondBead(), and Pscf::Rpg::Block< D >::stepThread().

◆ mulEqV() [2/6]

void Pscf::Prdc::Cuda::VecOp::mulEqV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const int beginIdA,
const int beginIdB,
const int n )

Vector multiplication in-place, a[i]*=b[i], kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1884 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ mulEqV() [3/6]

void Pscf::Prdc::Cuda::VecOp::mulEqV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b,
const int beginIdA,
const int beginIdB,
const int n )

Vector multiplication in-place, a[i]*=b[i], kernel wrapper (mixed, b=real).

Parameters
aoutput array (LHS)
binput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1901 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ mulEqS() [1/6]

void Pscf::Prdc::Cuda::VecOp::mulEqS ( DeviceArray< cudaReal > & a,
const cudaReal b,
const int beginIdA,
const int n )

◆ mulEqS() [2/6]

void Pscf::Prdc::Cuda::VecOp::mulEqS ( DeviceArray< cudaComplex > & a,
const cudaComplex b,
const int beginIdA,
const int n )

Vector multiplication in-place, a[i] *= b, kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
nthe number of entries to evaluate

Definition at line 1933 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ mulEqS() [3/6]

void Pscf::Prdc::Cuda::VecOp::mulEqS ( DeviceArray< cudaComplex > & a,
const cudaReal b,
const int beginIdA,
const int n )

Vector multiplication in-place, a[i]*=b, kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
nthe number of entries to evaluate

Definition at line 1949 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ divEqV() [1/4]

void Pscf::Prdc::Cuda::VecOp::divEqV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
const int beginIdA,
const int beginIdB,
const int n )

Vector division in-place, a[i] /= b[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1964 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by divEqV(), and divEqV().

◆ divEqV() [2/4]

void Pscf::Prdc::Cuda::VecOp::divEqV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b,
const int beginIdA,
const int beginIdB,
const int n )

Vector division in-place, a[i] /= b[i], kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput array (RHS)
beginIdAindex of the first entry to evaluate in array a
beginIdBindex of the first entry to evaluate in array b
nthe number of entries to evaluate

Definition at line 1981 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ divEqS() [1/4]

void Pscf::Prdc::Cuda::VecOp::divEqS ( DeviceArray< cudaReal > & a,
const cudaReal b,
const int beginIdA,
const int n )

Vector division in-place, a[i] /= b, kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
nthe number of entries to evaluate

Definition at line 1998 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by divEqS(), and divEqS().

◆ divEqS() [2/4]

void Pscf::Prdc::Cuda::VecOp::divEqS ( DeviceArray< cudaComplex > & a,
const cudaReal b,
const int beginIdA,
const int n )

Vector division in-place, a[i] /= b, kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput scalar (RHS)
beginIdAindex of the first entry to evaluate in array a
nthe number of entries to evaluate

Definition at line 2013 of file VecOp.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ eqV() [3/4]

void Pscf::Prdc::Cuda::VecOp::eqV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b )
inline

Vector assignment, a[i] = b[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 98 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and eqV().

◆ eqV() [4/4]

void Pscf::Prdc::Cuda::VecOp::eqV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b )
inline

Vector assignment, a[i] = b[i], kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 119 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and eqV().

◆ eqS() [3/4]

void Pscf::Prdc::Cuda::VecOp::eqS ( DeviceArray< cudaReal > & a,
const cudaReal b )
inline

Vector assignment, a[i] = b, kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput scalar (RHS)

Definition at line 140 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and eqS().

◆ eqS() [4/4]

void Pscf::Prdc::Cuda::VecOp::eqS ( DeviceArray< cudaComplex > & a,
const cudaComplex b )
inline

Vector assignment, a[i] = b, kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput scalar (RHS)

Definition at line 160 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and eqS().

◆ addVV() [5/8]

void Pscf::Prdc::Cuda::VecOp::addVV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
DeviceArray< cudaReal > const & c )
inline

Vector addition, a[i] = b[i] + c[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)

Definition at line 189 of file VecOp.h.

References addVV(), and Pscf::DeviceArray< Data >::capacity().

◆ addVV() [6/8]

void Pscf::Prdc::Cuda::VecOp::addVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
DeviceArray< cudaComplex > const & c )
inline

Vector addition, a[i] = b[i] + c[i], kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)

Definition at line 215 of file VecOp.h.

References addVV(), and Pscf::DeviceArray< Data >::capacity().

◆ addVV() [7/8]

void Pscf::Prdc::Cuda::VecOp::addVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b,
DeviceArray< cudaComplex > const & c )
inline

Vector addition, a[i] = b[i] + c[i], kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)

Definition at line 242 of file VecOp.h.

References addVV(), and Pscf::DeviceArray< Data >::capacity().

◆ addVV() [8/8]

void Pscf::Prdc::Cuda::VecOp::addVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
DeviceArray< cudaReal > const & c )
inline

Vector addition, a[i] = b[i] + c[i], kernel wrapper (mixed, c = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)

Definition at line 269 of file VecOp.h.

References addVV(), and Pscf::DeviceArray< Data >::capacity().

◆ addVS() [5/8]

void Pscf::Prdc::Cuda::VecOp::addVS ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
const cudaReal c )
inline

Vector addition, a[i] = b[i] + c, kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)

Definition at line 295 of file VecOp.h.

References addVS(), and Pscf::DeviceArray< Data >::capacity().

◆ addVS() [6/8]

void Pscf::Prdc::Cuda::VecOp::addVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const cudaComplex c )
inline

Vector addition, a[i] = b[i] + c, kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)

Definition at line 320 of file VecOp.h.

References addVS(), and Pscf::DeviceArray< Data >::capacity().

◆ addVS() [7/8]

void Pscf::Prdc::Cuda::VecOp::addVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b,
const cudaComplex c )
inline

Vector addition, a[i] = b[i] + c, kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)

Definition at line 345 of file VecOp.h.

References addVS(), and Pscf::DeviceArray< Data >::capacity().

◆ addVS() [8/8]

void Pscf::Prdc::Cuda::VecOp::addVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const cudaReal c )
inline

Vector addition, a[i] = b[i] + c, kernel wrapper (mixed, c = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)

Definition at line 370 of file VecOp.h.

References addVS(), and Pscf::DeviceArray< Data >::capacity().

◆ subVV() [5/8]

void Pscf::Prdc::Cuda::VecOp::subVV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
DeviceArray< cudaReal > const & c )
inline

Vector subtraction, a[i] = b[i] - c[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)

Definition at line 400 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and subVV().

◆ subVV() [6/8]

void Pscf::Prdc::Cuda::VecOp::subVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
DeviceArray< cudaComplex > const & c )
inline

Vector subtraction, a[i] = b[i] - c[i], kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)

Definition at line 426 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and subVV().

◆ subVV() [7/8]

void Pscf::Prdc::Cuda::VecOp::subVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b,
DeviceArray< cudaComplex > const & c )
inline

Vector subtraction, a[i] = b[i] - c[i], kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)

Definition at line 453 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and subVV().

◆ subVV() [8/8]

void Pscf::Prdc::Cuda::VecOp::subVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
DeviceArray< cudaReal > const & c )
inline

Vector subtraction, a[i] = b[i] - c[i], kernel wrapper (mixed, c = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)

Definition at line 479 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and subVV().

◆ subVS() [5/8]

void Pscf::Prdc::Cuda::VecOp::subVS ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
const cudaReal c )
inline

Vector subtraction, a[i] = b[i] - c, kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)

Definition at line 505 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and subVS().

◆ subVS() [6/8]

void Pscf::Prdc::Cuda::VecOp::subVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const cudaComplex c )
inline

Vector subtraction, a[i] = b[i] - c, kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)

Definition at line 530 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and subVS().

◆ subVS() [7/8]

void Pscf::Prdc::Cuda::VecOp::subVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b,
const cudaComplex c )
inline

Vector subtraction, a[i] = b[i] - c, kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)

Definition at line 555 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and subVS().

◆ subVS() [8/8]

void Pscf::Prdc::Cuda::VecOp::subVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const cudaReal c )
inline

Vector subtraction, a[i] = b[i] - c, kernel wrapper (mixed, c = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)

Definition at line 581 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and subVS().

◆ mulVV() [5/8]

void Pscf::Prdc::Cuda::VecOp::mulVV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
DeviceArray< cudaReal > const & c )
inline

Vector multiplication, a[i] = b[i] * c[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)

Definition at line 611 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and mulVV().

◆ mulVV() [6/8]

void Pscf::Prdc::Cuda::VecOp::mulVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
DeviceArray< cudaComplex > const & c )
inline

Vector multiplication, a[i] = b[i] * c[i], kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)

Definition at line 637 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and mulVV().

◆ mulVV() [7/8]

void Pscf::Prdc::Cuda::VecOp::mulVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b,
DeviceArray< cudaComplex > const & c )
inline

Vector multiplication, a[i]=b[i]*c[i], kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)

Definition at line 664 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and mulVV().

◆ mulVV() [8/8]

void Pscf::Prdc::Cuda::VecOp::mulVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
DeviceArray< cudaReal > const & c )
inline

Vector multiplication, a[i]=b[i]*c[i], kernel wrapper (mixed, c = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)

Definition at line 691 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and mulVV().

◆ mulVS() [5/8]

void Pscf::Prdc::Cuda::VecOp::mulVS ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
const cudaReal c )
inline

Vector multiplication, a[i] = b[i] * c, kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)

Definition at line 717 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and mulVS().

◆ mulVS() [6/8]

void Pscf::Prdc::Cuda::VecOp::mulVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const cudaComplex c )
inline

Vector multiplication, a[i] = b[i] * c, kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)

Definition at line 742 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and mulVS().

◆ mulVS() [7/8]

void Pscf::Prdc::Cuda::VecOp::mulVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b,
const cudaComplex c )
inline

Vector multiplication, a[i] = b[i] * c, kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)

Definition at line 768 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and mulVS().

◆ mulVS() [8/8]

void Pscf::Prdc::Cuda::VecOp::mulVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const cudaReal c )
inline

Vector multiplication, a[i] = b[i] * c, kernel wrapper (mixed, c = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)

Definition at line 794 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and mulVS().

◆ divVV() [3/4]

void Pscf::Prdc::Cuda::VecOp::divVV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
DeviceArray< cudaReal > const & c )
inline

Vector division, a[i] = b[i] / c[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)

Definition at line 825 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and divVV().

◆ divVV() [4/4]

void Pscf::Prdc::Cuda::VecOp::divVV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
DeviceArray< cudaReal > const & c )
inline

Vector division, a[i] = b[i] / c[i], kernel wrapper (mixed, c = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)

Definition at line 851 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and divVV().

◆ divVS() [3/4]

void Pscf::Prdc::Cuda::VecOp::divVS ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
const cudaReal c )
inline

Vector division, a[i] = b[i] / c, kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)

Definition at line 877 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and divVS().

◆ divVS() [4/4]

void Pscf::Prdc::Cuda::VecOp::divVS ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b,
const cudaReal c )
inline

Vector division, a[i] = b[i] / c, kernel wrapper (mixed, c = real).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)

Definition at line 902 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and divVS().

◆ divSV() [2/2]

void Pscf::Prdc::Cuda::VecOp::divSV ( DeviceArray< cudaReal > & a,
const cudaReal b,
DeviceArray< cudaReal > const & c )
inline

Vector division, a[i] = b / c[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput scalar (RHS)
cinput array (RHS)

Definition at line 927 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and divSV().

◆ expV() [3/4]

void Pscf::Prdc::Cuda::VecOp::expV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b )
inline

Vector exponentiation, a[i] = exp(b[i]), kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 952 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and expV().

◆ expV() [4/4]

void Pscf::Prdc::Cuda::VecOp::expV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b )
inline

Vector exponentiation, a[i] = exp(b[i]), kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 973 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and expV().

◆ addEqV() [4/6]

void Pscf::Prdc::Cuda::VecOp::addEqV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b )
inline

Vector addition in-place, a[i] += b[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 999 of file VecOp.h.

References addEqV(), and Pscf::DeviceArray< Data >::capacity().

◆ addEqV() [5/6]

void Pscf::Prdc::Cuda::VecOp::addEqV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b )
inline

Vector addition in-place, a[i] += b[i], kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 1020 of file VecOp.h.

References addEqV(), and Pscf::DeviceArray< Data >::capacity().

◆ addEqV() [6/6]

void Pscf::Prdc::Cuda::VecOp::addEqV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b )
inline

Vector addition in-place, a[i] += b[i], kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 1042 of file VecOp.h.

References addEqV(), and Pscf::DeviceArray< Data >::capacity().

◆ addEqS() [4/6]

void Pscf::Prdc::Cuda::VecOp::addEqS ( DeviceArray< cudaReal > & a,
const cudaReal b )
inline

Vector addition in-place, a[i] += b, kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput scalar (RHS)

Definition at line 1063 of file VecOp.h.

References addEqS(), and Pscf::DeviceArray< Data >::capacity().

◆ addEqS() [5/6]

void Pscf::Prdc::Cuda::VecOp::addEqS ( DeviceArray< cudaComplex > & a,
const cudaComplex b )
inline

Vector addition in-place, a[i] += b, kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput scalar (RHS)

Definition at line 1083 of file VecOp.h.

References addEqS(), and Pscf::DeviceArray< Data >::capacity().

◆ addEqS() [6/6]

void Pscf::Prdc::Cuda::VecOp::addEqS ( DeviceArray< cudaComplex > & a,
const cudaReal b )
inline

Vector addition in-place, a[i] += b, kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput scalar (RHS)

Definition at line 1103 of file VecOp.h.

References addEqS(), and Pscf::DeviceArray< Data >::capacity().

◆ subEqV() [4/6]

void Pscf::Prdc::Cuda::VecOp::subEqV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b )
inline

Vector subtraction in-place, a[i] -= b[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 1128 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and subEqV().

◆ subEqV() [5/6]

void Pscf::Prdc::Cuda::VecOp::subEqV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b )
inline

Vector subtraction in-place, a[i] -= b[i], kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 1149 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and subEqV().

◆ subEqV() [6/6]

void Pscf::Prdc::Cuda::VecOp::subEqV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b )
inline

Vector subtraction in-place, a[i]-=b[i], kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 1171 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and subEqV().

◆ subEqS() [4/6]

void Pscf::Prdc::Cuda::VecOp::subEqS ( DeviceArray< cudaReal > & a,
const cudaReal b )
inline

Vector subtraction in-place, a[i] -= b, kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput scalar (RHS)

Definition at line 1192 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and subEqS().

◆ subEqS() [5/6]

void Pscf::Prdc::Cuda::VecOp::subEqS ( DeviceArray< cudaComplex > & a,
const cudaComplex b )
inline

Vector subtraction in-place, a[i] -= b, kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput scalar (RHS)

Definition at line 1212 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and subEqS().

◆ subEqS() [6/6]

void Pscf::Prdc::Cuda::VecOp::subEqS ( DeviceArray< cudaComplex > & a,
const cudaReal b )
inline

Vector subtraction in-place, a[i] -= b, kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput scalar (RHS)

Definition at line 1232 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and subEqS().

◆ mulEqV() [4/6]

void Pscf::Prdc::Cuda::VecOp::mulEqV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b )
inline

Vector multiplication in-place, a[i] *= b[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 1257 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and mulEqV().

◆ mulEqV() [5/6]

void Pscf::Prdc::Cuda::VecOp::mulEqV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaComplex > const & b )
inline

Vector multiplication in-place, a[i]*=b[i], kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 1279 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and mulEqV().

◆ mulEqV() [6/6]

void Pscf::Prdc::Cuda::VecOp::mulEqV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b )
inline

Vector multiplication in-place, a[i]*=b[i], kernel wrapper (mixed, b=real).

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 1301 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and mulEqV().

◆ mulEqS() [4/6]

void Pscf::Prdc::Cuda::VecOp::mulEqS ( DeviceArray< cudaReal > & a,
const cudaReal b )
inline

Vector multiplication in-place, a[i] *= b, kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput scalar (RHS)

Definition at line 1322 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and mulEqS().

◆ mulEqS() [5/6]

void Pscf::Prdc::Cuda::VecOp::mulEqS ( DeviceArray< cudaComplex > & a,
const cudaComplex b )
inline

Vector multiplication in-place, a[i] *= b, kernel wrapper (cudaComplex).

Parameters
aoutput array (LHS)
binput scalar (RHS)

Definition at line 1342 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and mulEqS().

◆ mulEqS() [6/6]

void Pscf::Prdc::Cuda::VecOp::mulEqS ( DeviceArray< cudaComplex > & a,
const cudaReal b )
inline

Vector multiplication in-place, a[i]*=b, kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput scalar (RHS)

Definition at line 1362 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and mulEqS().

◆ divEqV() [3/4]

void Pscf::Prdc::Cuda::VecOp::divEqV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b )
inline

Vector division in-place, a[i] /= b[i], kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 1387 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and divEqV().

◆ divEqV() [4/4]

void Pscf::Prdc::Cuda::VecOp::divEqV ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b )
inline

Vector division in-place, a[i] /= b[i], kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 1408 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and divEqV().

◆ divEqS() [3/4]

void Pscf::Prdc::Cuda::VecOp::divEqS ( DeviceArray< cudaReal > & a,
const cudaReal b )
inline

Vector division in-place, a[i] /= b, kernel wrapper (cudaReal).

Parameters
aoutput array (LHS)
binput scalar (RHS)

Definition at line 1429 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and divEqS().

◆ divEqS() [4/4]

void Pscf::Prdc::Cuda::VecOp::divEqS ( DeviceArray< cudaComplex > & a,
const cudaReal b )
inline

Vector division in-place, a[i] /= b, kernel wrapper (mixed, b = real).

Parameters
aoutput array (LHS)
binput scalar (RHS)

Definition at line 1449 of file VecOp.h.

References Pscf::DeviceArray< Data >::capacity(), and divEqS().

◆ addVcVc()

void Pscf::Prdc::Cuda::VecOp::addVcVc ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
cudaReal const c,
DeviceArray< cudaReal > const & d,
cudaReal const e )

Vector addition w/ coefficient, a[i] = (b[i]*c) + (d[i]*e), kernel wrapper.

Parameters
aoutput array (LHS)
binput array 1 (RHS)
cinput scalar (RHS)
dinput array 2 (RHS)
einput scalar 2 (RHS)

Definition at line 304 of file VecOpMisc.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by Pscf::Rpg::EinsteinCrystalPerturbation< D >::incrementDc(), Pscf::Rpg::ForceBiasMove< D >::move(), Pscf::Rpg::BinaryStructureFactorGrid< D >::sample(), Pscf::Rpg::ExplicitBdStep< D >::step(), and Pscf::Rpg::PredCorrBdStep< D >::step().

◆ addVcVcVc()

void Pscf::Prdc::Cuda::VecOp::addVcVcVc ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
cudaReal const c,
DeviceArray< cudaReal > const & d,
cudaReal const e,
DeviceArray< cudaReal > const & f,
cudaReal const g )

3-vec addition w coeff, a[i] = (b[i]*c) + (d[i]*e) + (f[i]*g), kernel wrapper.

Parameters
aoutput array (LHS)
binput array 1 (RHS)
cinput scalar 1 (RHS)
dinput array 2 (RHS)
einput scalar 2 (RHS)
finput array 3 (RHS)
ginput scalar 3 (RHS)

Definition at line 322 of file VecOpMisc.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by Pscf::Rpg::LMBdStep< D >::step(), and Pscf::Rpg::PredCorrBdStep< D >::step().

◆ addEqVc()

void Pscf::Prdc::Cuda::VecOp::addEqVc ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
cudaReal const c )

◆ subVVS()

void Pscf::Prdc::Cuda::VecOp::subVVS ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
DeviceArray< cudaReal > const & c,
cudaReal const d )

Vector subtraction, a[i] = b[i] - c[i] - d, kernel wrapper.

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
dinput scalar (RHS)

Definition at line 359 of file VecOpMisc.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ divEqVc()

void Pscf::Prdc::Cuda::VecOp::divEqVc ( DeviceArray< cudaComplex > & a,
DeviceArray< cudaReal > const & b,
cudaReal const c )

Vector division in-place w/ coeff., a[i] /= (b[i] * c), kernel wrapper.

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar (RHS)

Definition at line 377 of file VecOpMisc.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ expVc()

void Pscf::Prdc::Cuda::VecOp::expVc ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
cudaReal const c )

Vector exponentiation w/ coefficient, a[i] = exp(b[i]*c), kernel wrapper.

Parameters
aoutput array (LHS)
binput array (RHS)
cinput scalar

Definition at line 393 of file VecOpMisc.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by Pscf::Rpg::Solvent< D >::compute(), and Pscf::Rpg::Block< D >::setupSolver().

◆ eqVPair()

void Pscf::Prdc::Cuda::VecOp::eqVPair ( DeviceArray< cudaReal > & a1,
DeviceArray< cudaReal > & a2,
DeviceArray< cudaReal > const & s )

Vector assignment in pairs, ax[i] = b[i], kernel wrapper.

Parameters
a1output array 1 (LHS)
a2output array 2 (LHS)
sshared input array to be assigned to both a1 and a2

Definition at line 409 of file VecOpMisc.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by Pscf::Rpg::PredCorrBdStep< D >::step().

◆ mulVVPair()

void Pscf::Prdc::Cuda::VecOp::mulVVPair ( DeviceArray< cudaReal > & a1,
DeviceArray< cudaReal > & a2,
DeviceArray< cudaReal > const & b1,
DeviceArray< cudaReal > const & b2,
DeviceArray< cudaReal > const & s )

Vector multiplication in pairs, ax[i] = bx[i] * s[i], kernel wrapper.

Parameters
a1output array 1 (LHS)
a2output array 2 (LHS)
b1input array 1 (RHS)
b2input array 2 (RHS)
sshared input array to be multiplied by both b1 and b2

Definition at line 426 of file VecOpMisc.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by Pscf::Rpg::Block< D >::stepThread().

◆ mulEqVPair()

void Pscf::Prdc::Cuda::VecOp::mulEqVPair ( DeviceArray< cudaReal > & a1,
DeviceArray< cudaReal > & a2,
DeviceArray< cudaReal > const & s )

In-place vector multiplication in pairs, ax[i] *= s[i], kernel wrapper.

Parameters
a1output array 1 (LHS)
a2output array 2 (LHS)
sshared input array to be multiplied by both a1 and a2

Definition at line 448 of file VecOpMisc.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by Pscf::Rpg::Block< D >::stepThread().

◆ addVMany() [1/2]

void Pscf::Prdc::Cuda::VecOp::addVMany ( DeviceArray< cudaReal > & a,
DArray< DeviceArray< cudaReal > > const & vecs )

Add an undefined number of vectors pointwise, kernel wrapper.

The input array 'vecs' contains the arrays that will be added together. The size of vecs determines the number of vectors that will ultimately be added together by the GPU kernel.

Parameters
aoutput array (LHS)
vecsarray of DeviceArrays to be added

Definition at line 465 of file VecOpMisc.cu.

References addVV(), Pscf::DeviceArray< Data >::cArray(), Util::Array< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ addVMany() [2/2]

void Pscf::Prdc::Cuda::VecOp::addVMany ( DeviceArray< cudaReal > & a,
DArray< DeviceArray< cudaReal > const * > const & vecs )

Add an undefined number of vectors pointwise, kernel wrapper.

The input array 'vecs' contains const pointers to each array that will be added together. The size of vecs determines the number of vectors that will ultimately be added together by the GPU kernel.

This version of addVMany is provided for cases in which one needs to add many arrays that are not already stored together in a DArray. The caller must simply assemble an array of pointers to all of the arrays that should be added, and then pass it to this method.

Parameters
aoutput array (LHS)
vecsarray of pointers to DeviceArrays to be added

Definition at line 495 of file VecOpMisc.cu.

References addVV(), Pscf::DeviceArray< Data >::cArray(), Util::Array< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ mulVMany() [1/2]

void Pscf::Prdc::Cuda::VecOp::mulVMany ( DeviceArray< cudaReal > & a,
DArray< DeviceArray< cudaReal > > const & vecs )

Multiply an undefined number of vectors pointwise, kernel wrapper.

The input array 'vecs' contains the arrays that will be multiplied. The size of vecs determines the number of vectors that will ultimately be multiplied together by the GPU kernel.

Parameters
aoutput array (LHS)
vecsarray of DeviceArrays to be multiplied

Definition at line 525 of file VecOpMisc.cu.

References Pscf::DeviceArray< Data >::cArray(), Util::Array< Data >::cArray(), mulVV(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ mulVMany() [2/2]

void Pscf::Prdc::Cuda::VecOp::mulVMany ( DeviceArray< cudaReal > & a,
DArray< DeviceArray< cudaReal > const * > const & vecs )

Multiply an undefined number of vectors pointwise, kernel wrapper.

The input array 'vecs' contains const pointers to each array that will be multiplied together. The size of vecs determines the number of vectors that will ultimately be multiplied together by the GPU kernel.

This version of mulVMany is provided for cases in which one needs to multiply many arrays that are not already stored together in a DArray. The caller must simply assemble an array of pointers to all of the arrays that should be multiplied, and then pass it to this method.

Parameters
aoutput array (LHS)
vecsarray of pointers to DeviceArrays to be multiplied

Definition at line 555 of file VecOpMisc.cu.

References Pscf::DeviceArray< Data >::cArray(), Util::Array< Data >::cArray(), mulVV(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

◆ sqNormV()

void Pscf::Prdc::Cuda::VecOp::sqNormV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaComplex > const & b )

Squared norm of complex number, a[i] = norm(b[i])^2, kernel wrapper.

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 585 of file VecOpMisc.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by Pscf::Rpg::MaxOrderParameter< D >::compute().

◆ sqSqNormV()

void Pscf::Prdc::Cuda::VecOp::sqSqNormV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaComplex > const & b )

Norm of complex number to the 4th power, a[i] = norm(b[i])^4, kernel wrapper.

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 600 of file VecOpMisc.cu.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by Pscf::Rpg::FourthOrderParameter< D >::compute().