PSCF v1.4.0
Pscf::VecOp Namespace Reference

Vector operations on GPU or CPU. More...

Functions

void eqV (Array< double > &a, Array< double > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector assignment, a[i] = b[i] (real, slice).
void eqV (Array< double > &a, Array< double > const &b)
 Vector assignment, a[i] = b[i] (real).
void eqS (Array< double > &a, double b)
 Vector assignment, a[i] = b (real).
void addVV (Array< double > &a, Array< double > const &b, Array< double > const &c)
 Vector-vector addition, a[i] = b[i] + c[i] (real)
void addVS (Array< double > &a, Array< double > const &b, double c)
 Vector-scalar addition, a[i] = b[i] + c (real).
void subVV (Array< double > &a, Array< double > const &b, Array< double > const &c)
 Vector-vector subtraction, a[i] = b[i] - c[i] (real)
void subVS (Array< double > &a, Array< double > const &b, double c)
 Vector-scalar subtraction, a[i] = b[i] - c (real).
void mulVV (Array< double > &a, Array< double > const &b, Array< double > const &c)
 Vector-vector multiplication, a[i] = b[i] * c[i] (real).
void mulVS (Array< double > &a, Array< double > const &b, double c)
 Vector-scalar multiplication, a[i] = b[i] * c (real).
void divVV (Array< double > &a, Array< double > const &b, Array< double > const &c)
 Vector-vector division, a[i] = b[i] / c[i] (real).
void divVS (Array< double > &a, Array< double > const &b, double c)
 Vector-scalar division, a[i] = b[i] / c (real).
void divSV (Array< double > &a, double b, Array< double > const &c)
 Vector division, a[i] = b / c[i].
void addEqV (Array< double > &a, Array< double > const &b)
 Vector-vector in-place addition, a[i] += b[i] (real).
void addEqS (Array< double > &a, double b)
 Vector-scalar in-place addition, a[i] += b (real).
void subEqV (Array< double > &a, Array< double > const &b)
 Vector-vector in-place subtraction, a[i] -= b[i] (real).
void subEqS (Array< double > &a, double b)
 Vector-scalar subtraction in-place, a[i] -= b (real).
void mulEqV (Array< double > &a, Array< double > const &b)
 Vector-vector in-place multiplication, a[i] *= b[i] (real).
void mulEqS (Array< double > &a, double b)
 Vector-scalar in-place multiplication, a[i] *= b (real).
void divEqV (Array< double > &a, Array< double > const &b)
 Vector-vector in-place division, a[i] /= b[i].
void divEqS (Array< double > &a, double b)
 Vector-scalar in-place division, a[i] /= b.
void expV (Array< double > &a, Array< double > const &b)
 Vector exponentiation, a[i] = exp(b[i]) (real).
void expVc (Array< double > &a, Array< double > const &b, const double c)
 Exponentiation a scaled vector, a[i] = exp(b[i]*c) (real).
void sqV (Array< double > &a, Array< double > const &b)
 Vector element-wise square, a[i] = b[i]*b[i] (real).
void absV (Array< double > &a, Array< double > const &b)
 Element-wise absolute magnitude, a[i] = abs(b[i]) (real).
void addVcVc (Array< double > &a, Array< double > const &b1, const double c1, Array< double > const &b2, const double c2)
 Add two scaled vectors, a[i] = b1[i]*c1 + b2[2]*c2 (real).
void addVcS (Array< double > &a, Array< double > const &b, const double c, const double s)
 Add a scaled vector and a scalar, a[i] = b[i]*c + s (real).
void addEqVc (Array< double > &a, Array< double > const &b, double const c)
 Add scaled vector in-place, a[i] += b[i]*c (real).
void addVcVcS (Array< double > &a, Array< double > const &b1, const double c1, Array< double > const &b2, const double c2, const double s)
 Add scaled vectors + scalar, a[i] = b1[i]*c1 + b2[2]*c2 + s (real).
void addVcVcVc (Array< double > &a, Array< double > const &b1, const double c1, Array< double > const &b2, const double c2, Array< double > const &b3, const double c3)
 Add scaled vectors, a[i] = b1[i]*c1 + b2[i]*c2 + b3[i]*c3 (real).
void eqVPair (Array< double > &a1, Array< double > &a2, Array< double > const &b)
 Vector assignment in pairs, ax[i] = b[i], x = 1, 2.
void mulVVPair (Array< double > &a1, Array< double > &a2, Array< double > const &b1, Array< double > const &b2, Array< double > const &c)
 Vector multiplication in pairs, ax[i] = bx[i] * s[i], x=1,2.
void mulEqVPair (Array< double > &a1, Array< double > &a2, Array< double > const &b)
 In-place vector multiplication in pairs, ax[i] *= b[i], x=1,2.
void real (Array< double > &a, Array< fftw_complex > const &b)
 Copy real part of a complex array to a real array.
void imag (Array< double > &a, Array< fftw_complex > const &b)
 Copy imaginary part of a complex array to a real array.
void eqV (Array< fftw_complex > &a, Array< fftw_complex > const &b)
 Vector assignment, a[i] = b[i] (complex).
void eqV (Array< fftw_complex > &a, Array< double > const &b, Array< double > const &c)
 Vector assignment, a[i] = (b[i], c[i]) (complex, real & imaginary).
void eqV (Array< fftw_complex > &a, Array< double > const &b)
 Vector assignment, a[i] = b[i] (mixed, real b).
void eqS (Array< fftw_complex > &a, fftw_complex b)
 Vector-scalar assignment, a[i] = b (complex).
void eqS (Array< fftw_complex > &a, double b)
 Vector-scalar assignment, a[i] = b (mixed, real scalar b).
void addVV (Array< fftw_complex > &a, Array< fftw_complex > const &b, Array< fftw_complex > const &c)
 Vector addition, a[i] = b[i] + c[i] (complex).
void addVV (Array< fftw_complex > &a, Array< fftw_complex > const &b, Array< double > const &c)
 Vector addition, a[i] = b[i] + c[i] (mixed, real array c).
void addVS (Array< fftw_complex > &a, Array< fftw_complex > const &b, fftw_complex c)
 Vector-scalar addition, a[i] = b[i] + c (complex).
void addVS (Array< fftw_complex > &a, Array< fftw_complex > const &b, double c)
 Vector-scalar addition, a[i] = b[i] + c (mixed).
void subVV (Array< fftw_complex > &a, Array< fftw_complex > const &b, Array< fftw_complex > const &c)
 Vector subtraction, a[i] = b[i] - c[i] (complex).
void subVV (Array< fftw_complex > &a, Array< fftw_complex > const &b, Array< double > const &c)
 Vector subtraction, a[i] = b[i] - c[i] (mixed, real array c).
void subVS (Array< fftw_complex > &a, Array< fftw_complex > const &b, fftw_complex c)
 Vector-scalar subtraction, a[i] = b[i] - c (complex).
void subVS (Array< fftw_complex > &a, Array< fftw_complex > const &b, double c)
 Vector-scalar subtraction, a[i] = b[i] - c (mixed, real scalar c).
void mulVV (Array< fftw_complex > &a, Array< fftw_complex > const &b, Array< fftw_complex > const &c)
 Vector multiplication, a[i] = b[i] * c[i] (complex).
void mulVV (Array< fftw_complex > &a, Array< fftw_complex > const &b, Array< double > const &c)
 Vector multiplication, a[i] = b[i] * c[i] (mixed, real array c).
void mulVS (Array< fftw_complex > &a, Array< fftw_complex > const &b, fftw_complex c)
 Vector-scalar multiplication, a[i] = b[i] * c (complex).
void mulVS (Array< fftw_complex > &a, Array< fftw_complex > const &b, double c)
 Vector-scalar multiplication, a[i] = b[i] * c (mixed, real c).
void divVV (Array< fftw_complex > &a, Array< fftw_complex > const &b, Array< fftw_complex > const &c)
 Vector division, a[i] = b[i] / c[i] (complex).
void divVV (Array< fftw_complex > &a, Array< fftw_complex > const &b, Array< double > const &c)
 Vector division, a[i] = b[i] / c[i] (mixed, real array c).
void divVS (Array< fftw_complex > &a, Array< fftw_complex > const &b, fftw_complex c)
 Vector-scalar division, a[i] = b[i] / c (complex).
void divVS (Array< fftw_complex > &a, Array< fftw_complex > const &b, double c)
 Vector-scalar division, a[i] = b[i] / c (mixed, real scalar c).
void addEqS (Array< fftw_complex > &a, double b)
 Vector-scalar in-place addition, a[i] += b (mixed, real scalar b).
void subEqV (Array< fftw_complex > &a, Array< fftw_complex > const &b)
 Vector in-place subtraction, a[i] -= b[i] (complex).
void subEqV (Array< fftw_complex > &a, Array< double > const &b)
 Vector in-place subtraction, a[i] -= b[i] (mixed, real array b).
void subEqS (Array< fftw_complex > &a, fftw_complex b)
 Vector-scalar in-place subtraction, a[i] -= b (complex).
void subEqS (Array< fftw_complex > &a, double b)
 Vector-scalar in-place subtraction, a[i] -= b (mixed, real b).
void mulEqV (Array< fftw_complex > &a, Array< fftw_complex > const &b)
 Vector in-place multiplication, a[i] *= b[i] (complex).
void mulEqV (Array< fftw_complex > &a, Array< double > const &b)
 Vector in-place multiplication, a[i] *= b[i] (mixed, real array b).
void mulEqS (Array< fftw_complex > &a, fftw_complex const &b)
 Vector-scalar in-place multiplication, a[i] *= b[i] (complex).
void mulEqS (Array< fftw_complex > &a, double b)
 Vector-scalar in-place multiplication, a[i] *= b (mixed real b).
void divEqV (Array< fftw_complex > &a, Array< fftw_complex > const &b)
 Vector in-place division, a[i] /= b[i] (complex).
void divEqV (Array< fftw_complex > &a, Array< double > const &b)
 Vector in-place division, a[i] /= b[i] (mixed, real array b).
void divEqS (Array< fftw_complex > &a, fftw_complex b)
 Vector-scalar in-place division, a[i] /= b (complex).
void divEqS (Array< fftw_complex > &a, double b)
 Vector-scalar in-place division, a[i] /= b (mixed, real scalar b).
void expV (Array< fftw_complex > &a, Array< fftw_complex > const &b)
 Vector exponentiation, a[i] = exp(b[i]) (complex).
void sqV (Array< fftw_complex > &a, Array< fftw_complex > const &b)
 Elementwise complex square, a[i] = b[i] * b[i] (complex).
void sqAbsV (Array< double > &a, Array< fftw_complex > const &b)
 Square of absolute magnitude, a[i] = |b[i]|^2 (complex).
void sqSqAbsV (Array< double > &a, Array< fftw_complex > const &b)
 Fourth power of absolute magnitude, a[i] = |b[i]|^4 (complex).
void divEqVc (Array< fftw_complex > &a, Array< double > const &b, double const c)
 Vector division in-place w/ coeff., a[i] /= (b[i] * c).
void eqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector-vector assignment, a[i] = b[i], (real).
void eqV (Array< cudaReal > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector-vector assignment, a[i] = b[i], (real, device to host).
void eqV (DeviceArray< cudaReal > &a, Array< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector-vector assignment, a[i] = b[i], (real, host to device).
void eqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector-vector assignment, a[i] = b[i], (complex).
void eqS (DeviceArray< cudaReal > &a, const cudaReal b, const int beginIdA, const int n)
 Vector-scalar assignment, a[i] = b, (real).
void eqS (DeviceArray< cudaComplex > &a, const cudaComplex b, const int beginIdA, const int n)
 Vector-scalar assignment, a[i] = b, (complex).
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-vector addition, a[i] = b[i] + c[i], (real).
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-vector addition, a[i] = b[i] + c[i], (complex).
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-vector addition, a[i] = b[i] + c[i] (mixed).
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-vector addition, a[i] = b[i] + c[i] (mixed).
void addVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const cudaReal c, const int beginIdA, const int beginIdB, const int n)
 Vector-scalar addition, a[i] = b[i] + c (real).
void addVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaComplex c, const int beginIdA, const int beginIdB, const int n)
 Vector-scalar addition, a[i] = b[i] + c, (complex).
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 (mixed).
void addVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c, const int beginIdA, const int beginIdB, const int n)
 Vector-scalar addition, a[i] = b[i] + c (mixed).
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-vector subtraction, a[i] = b[i] - c[i], (real).
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-vector subtraction, a[i] = b[i] - c[i], (complex).
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-vector subtraction, a[i] = b[i] - c[i] (mixed).
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-vector subtraction, a[i] = b[i] - c[i] (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-scalar subtraction, a[i] = b[i] - c, (real).
void subVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaComplex c, const int beginIdA, const int beginIdB, const int n)
 Vector-scalar subtraction, a[i] = b[i] - c, (complex).
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 (mixed).
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 (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-vector multiplication, a[i] = b[i] * c[i], (real).
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-vector multiplication, a[i] = b[i] * c[i], (complex).
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-vector multiplication, a[i] = b[i] * c[i] (mixed).
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-vector multiplication, a[i]=b[i]*c[i] (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-scalar multiplication, a[i] = b[i] * c, (real).
void mulVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaComplex c, const int beginIdA, const int beginIdB, const int n)
 Vector-scalar multiplication, a[i] = b[i] * c, (complex).
void mulVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const cudaComplex c, const int beginIdA, const int beginIdB, const int n)
 Vector-scalar multiplication, a[i] = b[i] * c (mixed).
void mulVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c, const int beginIdA, const int beginIdB, const int n)
 Vector-scalar multiplication, a[i] = b[i] * c (mixed).
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-vector division, a[i] = b[i] / c[i], (real).
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-vector division, a[i] = b[i] / c[i] (mixed).
void divVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const cudaReal c, const int beginIdA, const int beginIdB, const int n)
 Vector-scalar division, a[i] = b[i] / c, (real).
void divVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c, const int beginIdA, const int beginIdB, const int n)
 Vector-scalar division, a[i] = b[i] / c (mixed, c real).
void divSV (DeviceArray< cudaReal > &a, const cudaReal b, DeviceArray< cudaReal > const &c, const int beginIdA, const int beginIdC, const int n)
 Scalar-vector division, a[i] = b / c[i], (real).
void addEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector in-place addition, a[i] += b[i], (real).
void addEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector-vector in-place addition, a[i] += b[i] (complex).
void addEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector-vector in-place addition, a[i] += b[i] (mixed).
void addEqS (DeviceArray< cudaReal > &a, const cudaReal b, const int beginIdA, const int n)
 Vector-scalar in-place addition, a[i] += b, (real).
void addEqS (DeviceArray< cudaComplex > &a, const cudaComplex b, const int beginIdA, const int n)
 Vector-scalar in-place addition, a[i] += b, (complex).
void addEqS (DeviceArray< cudaComplex > &a, const cudaReal b, const int beginIdA, const int n)
 Vector-scalar in-place addition, a[i] += b (mixed).
void subEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector in-place subtraction, a[i] -= b[i], (real).
void subEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector-vector in-place subtraction, a[i] -= b[i], (complex).
void subEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector in-place subtraction, a[i]-=b[i] (mixed).
void subEqS (DeviceArray< cudaReal > &a, const cudaReal b, const int beginIdA, const int n)
 Vector in-place subtraction, a[i] -= b, (real).
void subEqS (DeviceArray< cudaComplex > &a, const cudaComplex b, const int beginIdA, const int n)
 Vector in-place subtraction, a[i] -= b, (complex).
void subEqS (DeviceArray< cudaComplex > &a, const cudaReal b, const int beginIdA, const int n)
 Vector-scalar in-place subtraction, a[i] -= b (mixed).
void mulEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector-vector in-place multiplication, a[i] *= b[i], (real).
void mulEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector-vector in-place multiplication, a[i] *= b[i], (complex).
void mulEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector-vector in-place multiplication, a[i]*=b[i] (mixed).
void mulEqS (DeviceArray< cudaReal > &a, const cudaReal b, const int beginIdA, const int n)
 Vector-scalar in-place multiplication, a[i] *= b, (real).
void mulEqS (DeviceArray< cudaComplex > &a, const cudaComplex b, const int beginIdA, const int n)
 Vector-scalar in-place multiplication, a[i] *= b, (complex).
void mulEqS (DeviceArray< cudaComplex > &a, const cudaReal b, const int beginIdA, const int n)
 Vector-scalar in-place multiplication, a[i]*=b (mixed).
void divEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector-vector in-place division, a[i] /= b[i], (real).
void divEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector-vector in-place division, a[i] /= b[i] (mixed).
void divEqS (DeviceArray< cudaReal > &a, const cudaReal b, const int beginIdA, const int n)
 Vector-scalar in-place division, a[i] /= b, (real).
void divEqS (DeviceArray< cudaComplex > &a, const cudaReal b, const int beginIdA, const int n)
 Vector-scalar in-place division, a[i] /= b (mixed).
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]), (real).
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]), (complex).
void sqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector square, a[i] = b[i]*b[i], (real).
void sqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector square, a[i] = b[i]*b[i], (complex).
void absV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector absolute magnitude, a[i] = abs(b[i]) (real).
void sqAbsV (DeviceArray< cudaReal > &a, DeviceArray< cudaComplex > const &b, const int beginIdA, const int beginIdB, const int n)
 Vector squared absolute magnitude, a[i] = |b[i]|^2 (complex).
void eqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector-vector assignment, a[i] = b[i], (real).
void eqV (Array< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector-vector assignment, a[i] = b[i], (real, device to host).
void eqV (DeviceArray< cudaReal > &a, Array< cudaReal > const &b)
 Vector-vector assignment, a[i] = b[i], (real, host to device).
void eqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b)
 Vector-vector assignment, a[i] = b[i], (complex).
void eqS (DeviceArray< cudaReal > &a, const cudaReal b)
 Vector-scalar assignment, a[i] = b, (real).
void eqS (DeviceArray< cudaComplex > &a, const cudaComplex b)
 Vector-scalar assignment, a[i] = b, (complex).
void addVV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaReal > const &c)
 Vector-vector addition, a[i] = b[i] + c[i], (real).
void addVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaComplex > const &c)
 Vector-vector addition, a[i] = b[i] + c[i], (complex).
void addVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaComplex > const &c)
 Vector-vector addition, a[i] = b[i] + c[i] (mixed).
void addVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaReal > const &c)
 Vector-vector addition, a[i] = b[i] + c[i] (mixed).
void addVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const cudaReal c)
 Vector-scalar addition, a[i] = b[i] + c, (real).
void addVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaComplex c)
 Vector addition, a[i] = b[i] + c, (complex).
void addVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const cudaComplex c)
 Vector addition, a[i] = b[i] + c (mixed).
void addVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c)
 Vector-scalar addition, a[i] = b[i] + c (mixed).
void subVV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaReal > const &c)
 Vector-vector subtraction, a[i] = b[i] - c[i], (real).
void subVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaComplex > const &c)
 Vector-vector subtraction, a[i] = b[i] - c[i], (complex).
void subVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaComplex > const &c)
 Vector-vector subtraction, a[i] = b[i] - c[i] (mixed).
void subVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaReal > const &c)
 Vector-vector subtraction, a[i] = b[i] - c[i] (mixed, c = real).
void subVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const cudaReal c)
 Vector-scalar subtraction, a[i] = b[i] - c, (real).
void subVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaComplex c)
 Vector-scalar subtraction, a[i] = b[i] - c, (complex).
void subVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const cudaComplex c)
 Vector subtraction, a[i] = b[i] - c (mixed).
void subVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c)
 Vector subtraction, a[i] = b[i] - c (mixed, c = real).
void mulVV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaReal > const &c)
 Vector-vector multiplication, a[i] = b[i] * c[i], (real).
void mulVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaComplex > const &c)
 Vector-vector multiplication, a[i] = b[i] * c[i], (complex).
void mulVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaComplex > const &c)
 Vector-vector multiplication, a[i]=b[i]*c[i] (mixed).
void mulVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaReal > const &c)
 Vector-vector multiplication, a[i]=b[i]*c[i] (mixed).
void mulVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const cudaReal c)
 Vector-scalar multiplication, a[i] = b[i] * c, (real).
void mulVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaComplex c)
 Vector-scalar multiplication, a[i] = b[i] * c, (complex).
void mulVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const cudaComplex c)
 Vector-scalar multiplication, a[i] = b[i] * c (mixed).
void mulVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c)
 Vector-scalar multiplication, a[i] = b[i] * c (mixed).
void divVV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaReal > const &c)
 Vector-vector division, a[i] = b[i] / c[i], (real).
void divVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaReal > const &c)
 Vector-vector division, a[i] = b[i] / c[i] (mixed).
void divVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const cudaReal c)
 Vector-scalar division, a[i] = b[i] / c, (real).
void divVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c)
 Vector-scalar division, a[i] = b[i] / c (mixed, c = real).
void divSV (DeviceArray< cudaReal > &a, const cudaReal b, DeviceArray< cudaReal > const &c)
 Scalar-vector division, a[i] = b / c[i], (real).
void addEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector-vector in-place addition, a[i] += b[i] (real).
void addEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b)
 Vector-vector in-place addition, a[i] += b[i] (complex).
void addEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b)
 Vector-vector in-place addition, a[i] += b[i] (mixed).
void addEqS (DeviceArray< cudaReal > &a, const cudaReal b)
 Vector-scalar in-place addition, a[i] += b, (real).
void addEqS (DeviceArray< cudaComplex > &a, const cudaComplex b)
 Vector-scalar in-place addition, a[i] += b, (complex).
void addEqS (DeviceArray< cudaComplex > &a, const cudaReal b)
 Vector-scalar in-place addition, a[i] += b (mixed).
void subEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector in-place subtraction, a[i] -= b[i], (real).
void subEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b)
 Vector in-place subtraction, a[i] -= b[i], (complex).
void subEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b)
 Vector in-place subtraction, a[i]-=b[i] (mixed).
void subEqS (DeviceArray< cudaReal > &a, const cudaReal b)
 Vector in-place subtraction, a[i] -= b, (real).
void subEqS (DeviceArray< cudaComplex > &a, const cudaComplex b)
 Vector in-place subtraction, a[i] -= b, (complex).
void subEqS (DeviceArray< cudaComplex > &a, const cudaReal b)
 Vector-scalar in-place subtraction, a[i] -= b (mixed).
void mulEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector-vector in-place multiplication, a[i] *= b[i], (real).
void mulEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b)
 Vector-vector in-place multiplication, a[i] *= b[i], (complex).
void mulEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b)
 Vector-vector in-place multiplication, a[i] *= b[i] (mixed).
void mulEqS (DeviceArray< cudaReal > &a, const cudaReal b)
 Vector-scalar in-place multiplication, a[i] *= b, (real).
void mulEqS (DeviceArray< cudaComplex > &a, const cudaComplex b)
 Vector-scalar in-place multiplication, a[i] *= b, (complex).
void mulEqS (DeviceArray< cudaComplex > &a, const cudaReal b)
 Vector-scalar in-place multiplication, a[i]*=b (mixed).
void divEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector-vector in-place division, a[i] /= b[i], (real).
void divEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b)
 Vector-vector in-place division, a[i] /= b[i] (mixed).
void divEqS (DeviceArray< cudaReal > &a, const cudaReal b)
 Vector-scalar in-place division, a[i] /= b, (real).
void divEqS (DeviceArray< cudaComplex > &a, const cudaReal b)
 Vector-scalar in-place division, a[i] /= b (mixed).
void expV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector exponentiation, a[i] = exp(b[i]), (real).
void expV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b)
 Vector exponentiation, a[i] = exp(b[i]), (complex).
void sqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector square, a[i] = b[i]*b[i], (real).
void sqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b)
 Vector square, a[i] = b[i]*b[i], (complex).
void absV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector absolute magnitude, a[i] = abs(b[i]) (real).
void sqAbsV (DeviceArray< cudaReal > &a, DeviceArray< cudaComplex > const &b)
 Vector absolute magnitude squared, a[i] = |b[i]|^2 (complex).
void addVcVc (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b1, cudaReal const c1, DeviceArray< cudaReal > const &b2, cudaReal const c2)
 Add two scaled vectors, a[i] = b1[i]*c1 + b2[i]*c2 (real).
void addVcS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, cudaReal const c, cudaReal const s)
 Add a scaled vector and a scalar, a[i] = b[i]*c + s (real).
void addVcVcVc (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b1, cudaReal const c1, DeviceArray< cudaReal > const &b2, cudaReal const c2, DeviceArray< cudaReal > const &b3, cudaReal const c3)
 Add 3 scaled vectors, a[i] = b1[i]*c1 + b2[i]*c2 + b3[i]*c3 (real).
void addVcVcS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b1, cudaReal const c1, DeviceArray< cudaReal > const &b2, cudaReal const c2, cudaReal const s)
 Add 2 scaled vectors + scalar, a[i] = b1[i]*c1 + b2[i]*c2 + s (real).
void addEqVc (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, cudaReal const c)
 Add a scaled vector in-place, a[i] += b[i] * c (real).
void divEqVc (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, cudaReal const c)
 Vector division in-place w/ coeff., a[i] /= (b[i] * c).
void expVc (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, cudaReal const c)
 Vector exponentiation w/ coefficient, a[i] = exp(b[i]*c).
void eqVPair (DeviceArray< cudaReal > &a1, DeviceArray< cudaReal > &a2, DeviceArray< cudaReal > const &s)
 Vector assignment in pairs, ax[i] = b[i], x = 1, 2 (real).
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], x=1,2 (real).
void mulEqVPair (DeviceArray< cudaReal > &a1, DeviceArray< cudaReal > &a2, DeviceArray< cudaReal > const &s)
 In-place vector multiplication in pairs, ax[i] *= s[i], x=1,2 (real).
void addVMany (DeviceArray< cudaReal > &a, DArray< DeviceArray< cudaReal > > const &vecs)
 Add an arbitrary number of vectors pointwise (real).
void addVMany (DeviceArray< cudaReal > &a, DArray< DeviceArray< cudaReal > const * > const &vecs)
 Add an arbitrary number of vectors pointwise (real).
void mulVMany (DeviceArray< cudaReal > &a, DArray< DeviceArray< cudaReal > > const &vecs)
 Multiply an undefined number of vectors pointwise (real).
void mulVMany (DeviceArray< cudaReal > &a, DArray< DeviceArray< cudaReal > const * > const &vecs)
 Multiply an undefined number of vectors pointwise.
void sqSqAbsV (DeviceArray< cudaReal > &a, DeviceArray< cudaComplex > const &b)
 Fourth power of magnitude, a[i] = |b[i]|^4 (complex).

Detailed Description

Vector operations on GPU or CPU.

Function Documentation

◆ addVcVc()

void Pscf::VecOp::addVcVc ( Array< double > & a,
Array< double > const & b1,
const double c1,
Array< double > const & b2,
const double c2 )

Add two scaled vectors, a[i] = b1[i]*c1 + b2[2]*c2 (real).

Parameters
areal output array (LHS)
b11st real input array (RHS)
c1real coefficient of b1 (RHS)
b22nd real input array (RHS)
c2real coefficient of b2 (RHS)

Definition at line 364 of file VecOp.cpp.

References Util::Array< Data >::capacity(), and UTIL_CHECK.

Referenced by Pscf::Rp::ExplicitBdStep< D, T >::step(), and Pscf::Rp::PredCorrBdStep< D, T >::step().

◆ addVcS()

void Pscf::VecOp::addVcS ( Array< double > & a,
Array< double > const & b,
const double c,
const double s )

Add a scaled vector and a scalar, a[i] = b[i]*c + s (real).

Parameters
areal output array (LHS)
breal input array (RHS)
creal coefficient of b (RHS)
sreal scalar summand (RHS)

Definition at line 380 of file VecOp.cpp.

References Util::Array< Data >::capacity(), and UTIL_CHECK.

◆ addVcVcS()

void Pscf::VecOp::addVcVcS ( Array< double > & a,
Array< double > const & b1,
const double c1,
Array< double > const & b2,
const double c2,
const double s )

Add scaled vectors + scalar, a[i] = b1[i]*c1 + b2[2]*c2 + s (real).

Parameters
areal array (LHS)
b11st real input array (RHS)
c1real coefficient of b1 (RHS)
b22nd real input array (RHS)
c2real coefficient of b2 (RHS)
sreal scalar summand (RHS)

Definition at line 409 of file VecOp.cpp.

References Util::Array< Data >::capacity(), and UTIL_CHECK.

◆ addVcVcVc()

void Pscf::VecOp::addVcVcVc ( Array< double > & a,
Array< double > const & b1,
const double c1,
Array< double > const & b2,
const double c2,
Array< double > const & b3,
const double c3 )

Add scaled vectors, a[i] = b1[i]*c1 + b2[i]*c2 + b3[i]*c3 (real).

Parameters
areal array (LHS)
b11st real input array (RHS)
c1real coefficient of b1 (RHS)
b22nd real input array (RHS)
c2real coefficient of b2 (RHS)
b33rd real input array (RHS)
c3real coefficient of b3 (RHS)

Definition at line 426 of file VecOp.cpp.

References Util::Array< Data >::capacity(), and UTIL_CHECK.

Referenced by Pscf::Rp::PredCorrBdStep< D, T >::step().