PSCF v1.4.0

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

Functions

void Pscf::VecOp::eqVPair (Array< double > &a1, Array< double > &a2, Array< double > const &b)
 Vector assignment in pairs, ax[i] = b[i], x = 1, 2.
void Pscf::VecOp::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 Pscf::VecOp::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 Pscf::VecOp::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 Pscf::VecOp::eqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector-vector assignment, a[i] = b[i], (real).
void Pscf::VecOp::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 Pscf::VecOp::eqV (Array< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector-vector assignment, a[i] = b[i], (real, device to host).
void Pscf::VecOp::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 Pscf::VecOp::eqV (DeviceArray< cudaReal > &a, Array< cudaReal > const &b)
 Vector-vector assignment, a[i] = b[i], (real, host to device).
void Pscf::VecOp::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 Pscf::VecOp::eqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b)
 Vector-vector assignment, a[i] = b[i], (complex).
void Pscf::VecOp::eqS (DeviceArray< cudaReal > &a, const cudaReal b, const int beginIdA, const int n)
 Vector-scalar assignment, a[i] = b, (real).
void Pscf::VecOp::eqS (DeviceArray< cudaReal > &a, const cudaReal b)
 Vector-scalar assignment, a[i] = b, (real).
void Pscf::VecOp::eqS (DeviceArray< cudaComplex > &a, const cudaComplex b, const int beginIdA, const int n)
 Vector-scalar assignment, a[i] = b, (complex).
void Pscf::VecOp::eqS (DeviceArray< cudaComplex > &a, const cudaComplex b)
 Vector-scalar assignment, a[i] = b, (complex).
void Pscf::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-vector addition, a[i] = b[i] + c[i], (real).
void Pscf::VecOp::addVV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaReal > const &c)
 Vector-vector addition, a[i] = b[i] + c[i], (real).
void Pscf::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-vector addition, a[i] = b[i] + c[i], (complex).
void Pscf::VecOp::addVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaComplex > const &c)
 Vector-vector addition, a[i] = b[i] + c[i], (complex).
void Pscf::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-vector addition, a[i] = b[i] + c[i] (mixed).
void Pscf::VecOp::addVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaComplex > const &c)
 Vector-vector addition, a[i] = b[i] + c[i] (mixed).
void Pscf::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-vector addition, a[i] = b[i] + c[i] (mixed).
void Pscf::VecOp::addVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaReal > const &c)
 Vector-vector addition, a[i] = b[i] + c[i] (mixed).
void Pscf::VecOp::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 Pscf::VecOp::addVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const cudaReal c)
 Vector-scalar addition, a[i] = b[i] + c, (real).
void Pscf::VecOp::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 Pscf::VecOp::addVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaComplex c)
 Vector addition, a[i] = b[i] + c, (complex).
void Pscf::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 (mixed).
void Pscf::VecOp::addVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const cudaComplex c)
 Vector addition, a[i] = b[i] + c (mixed).
void Pscf::VecOp::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 Pscf::VecOp::addVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c)
 Vector-scalar addition, a[i] = b[i] + c (mixed).
void Pscf::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-vector subtraction, a[i] = b[i] - c[i], (real).
void Pscf::VecOp::subVV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaReal > const &c)
 Vector-vector subtraction, a[i] = b[i] - c[i], (real).
void Pscf::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-vector subtraction, a[i] = b[i] - c[i], (complex).
void Pscf::VecOp::subVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaComplex > const &c)
 Vector-vector subtraction, a[i] = b[i] - c[i], (complex).
void Pscf::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-vector subtraction, a[i] = b[i] - c[i] (mixed).
void Pscf::VecOp::subVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaComplex > const &c)
 Vector-vector subtraction, a[i] = b[i] - c[i] (mixed).
void Pscf::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-vector subtraction, a[i] = b[i] - c[i] (mixed, c = real).
void Pscf::VecOp::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 Pscf::VecOp::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 Pscf::VecOp::subVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const cudaReal c)
 Vector-scalar subtraction, a[i] = b[i] - c, (real).
void Pscf::VecOp::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 Pscf::VecOp::subVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaComplex c)
 Vector-scalar subtraction, a[i] = b[i] - c, (complex).
void Pscf::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 (mixed).
void Pscf::VecOp::subVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const cudaComplex c)
 Vector subtraction, a[i] = b[i] - c (mixed).
void Pscf::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 (mixed, c = real).
void Pscf::VecOp::subVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c)
 Vector subtraction, a[i] = b[i] - c (mixed, c = real).
void Pscf::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-vector multiplication, a[i] = b[i] * c[i], (real).
void Pscf::VecOp::mulVV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaReal > const &c)
 Vector-vector multiplication, a[i] = b[i] * c[i], (real).
void Pscf::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-vector multiplication, a[i] = b[i] * c[i], (complex).
void Pscf::VecOp::mulVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaComplex > const &c)
 Vector-vector multiplication, a[i] = b[i] * c[i], (complex).
void Pscf::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-vector multiplication, a[i] = b[i] * c[i] (mixed).
void Pscf::VecOp::mulVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaComplex > const &c)
 Vector-vector multiplication, a[i]=b[i]*c[i] (mixed).
void Pscf::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-vector multiplication, a[i]=b[i]*c[i] (mixed, c = real).
void Pscf::VecOp::mulVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaReal > const &c)
 Vector-vector multiplication, a[i]=b[i]*c[i] (mixed).
void Pscf::VecOp::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 Pscf::VecOp::mulVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const cudaReal c)
 Vector-scalar multiplication, a[i] = b[i] * c, (real).
void Pscf::VecOp::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 Pscf::VecOp::mulVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaComplex c)
 Vector-scalar multiplication, a[i] = b[i] * c, (complex).
void Pscf::VecOp::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 Pscf::VecOp::mulVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, const cudaComplex c)
 Vector-scalar multiplication, a[i] = b[i] * c (mixed).
void Pscf::VecOp::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 Pscf::VecOp::mulVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c)
 Vector-scalar multiplication, a[i] = b[i] * c (mixed).
void Pscf::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-vector division, a[i] = b[i] / c[i], (real).
void Pscf::VecOp::divVV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaReal > const &c)
 Vector-vector division, a[i] = b[i] / c[i], (real).
void Pscf::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-vector division, a[i] = b[i] / c[i] (mixed).
void Pscf::VecOp::divVV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaReal > const &c)
 Vector-vector division, a[i] = b[i] / c[i] (mixed).
void Pscf::VecOp::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 Pscf::VecOp::divVS (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const cudaReal c)
 Vector-scalar division, a[i] = b[i] / c, (real).
void Pscf::VecOp::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 Pscf::VecOp::divVS (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b, const cudaReal c)
 Vector-scalar division, a[i] = b[i] / c (mixed, c = real).
void Pscf::VecOp::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 Pscf::VecOp::divSV (DeviceArray< cudaReal > &a, const cudaReal b, DeviceArray< cudaReal > const &c)
 Scalar-vector division, a[i] = b / c[i], (real).
void Pscf::VecOp::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 Pscf::VecOp::addEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector-vector in-place addition, a[i] += b[i] (real).
void Pscf::VecOp::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 Pscf::VecOp::addEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b)
 Vector-vector in-place addition, a[i] += b[i] (complex).
void Pscf::VecOp::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 Pscf::VecOp::addEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b)
 Vector-vector in-place addition, a[i] += b[i] (mixed).
void Pscf::VecOp::addEqS (DeviceArray< cudaReal > &a, const cudaReal b, const int beginIdA, const int n)
 Vector-scalar in-place addition, a[i] += b, (real).
void Pscf::VecOp::addEqS (DeviceArray< cudaReal > &a, const cudaReal b)
 Vector-scalar in-place addition, a[i] += b, (real).
void Pscf::VecOp::addEqS (DeviceArray< cudaComplex > &a, const cudaComplex b, const int beginIdA, const int n)
 Vector-scalar in-place addition, a[i] += b, (complex).
void Pscf::VecOp::addEqS (DeviceArray< cudaComplex > &a, const cudaComplex b)
 Vector-scalar in-place addition, a[i] += b, (complex).
void Pscf::VecOp::addEqS (DeviceArray< cudaComplex > &a, const cudaReal b, const int beginIdA, const int n)
 Vector-scalar in-place addition, a[i] += b (mixed).
void Pscf::VecOp::addEqS (DeviceArray< cudaComplex > &a, const cudaReal b)
 Vector-scalar in-place addition, a[i] += b (mixed).
void Pscf::VecOp::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 Pscf::VecOp::subEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector in-place subtraction, a[i] -= b[i], (real).
void Pscf::VecOp::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 Pscf::VecOp::subEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b)
 Vector in-place subtraction, a[i] -= b[i], (complex).
void Pscf::VecOp::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 Pscf::VecOp::subEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b)
 Vector in-place subtraction, a[i]-=b[i] (mixed).
void Pscf::VecOp::subEqS (DeviceArray< cudaReal > &a, const cudaReal b, const int beginIdA, const int n)
 Vector in-place subtraction, a[i] -= b, (real).
void Pscf::VecOp::subEqS (DeviceArray< cudaReal > &a, const cudaReal b)
 Vector in-place subtraction, a[i] -= b, (real).
void Pscf::VecOp::subEqS (DeviceArray< cudaComplex > &a, const cudaComplex b, const int beginIdA, const int n)
 Vector in-place subtraction, a[i] -= b, (complex).
void Pscf::VecOp::subEqS (DeviceArray< cudaComplex > &a, const cudaComplex b)
 Vector in-place subtraction, a[i] -= b, (complex).
void Pscf::VecOp::subEqS (DeviceArray< cudaComplex > &a, const cudaReal b, const int beginIdA, const int n)
 Vector-scalar in-place subtraction, a[i] -= b (mixed).
void Pscf::VecOp::subEqS (DeviceArray< cudaComplex > &a, const cudaReal b)
 Vector-scalar in-place subtraction, a[i] -= b (mixed).
void Pscf::VecOp::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 Pscf::VecOp::mulEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector-vector in-place multiplication, a[i] *= b[i], (real).
void Pscf::VecOp::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 Pscf::VecOp::mulEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b)
 Vector-vector in-place multiplication, a[i] *= b[i], (complex).
void Pscf::VecOp::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 Pscf::VecOp::mulEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b)
 Vector-vector in-place multiplication, a[i] *= b[i] (mixed).
void Pscf::VecOp::mulEqS (DeviceArray< cudaReal > &a, const cudaReal b, const int beginIdA, const int n)
 Vector-scalar in-place multiplication, a[i] *= b, (real).
void Pscf::VecOp::mulEqS (DeviceArray< cudaReal > &a, const cudaReal b)
 Vector-scalar in-place multiplication, a[i] *= b, (real).
void Pscf::VecOp::mulEqS (DeviceArray< cudaComplex > &a, const cudaComplex b, const int beginIdA, const int n)
 Vector-scalar in-place multiplication, a[i] *= b, (complex).
void Pscf::VecOp::mulEqS (DeviceArray< cudaComplex > &a, const cudaComplex b)
 Vector-scalar in-place multiplication, a[i] *= b, (complex).
void Pscf::VecOp::mulEqS (DeviceArray< cudaComplex > &a, const cudaReal b, const int beginIdA, const int n)
 Vector-scalar in-place multiplication, a[i]*=b (mixed).
void Pscf::VecOp::mulEqS (DeviceArray< cudaComplex > &a, const cudaReal b)
 Vector-scalar in-place multiplication, a[i]*=b (mixed).
void Pscf::VecOp::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 Pscf::VecOp::divEqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector-vector in-place division, a[i] /= b[i], (real).
void Pscf::VecOp::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 Pscf::VecOp::divEqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b)
 Vector-vector in-place division, a[i] /= b[i] (mixed).
void Pscf::VecOp::divEqS (DeviceArray< cudaReal > &a, const cudaReal b, const int beginIdA, const int n)
 Vector-scalar in-place division, a[i] /= b, (real).
void Pscf::VecOp::divEqS (DeviceArray< cudaReal > &a, const cudaReal b)
 Vector-scalar in-place division, a[i] /= b, (real).
void Pscf::VecOp::divEqS (DeviceArray< cudaComplex > &a, const cudaReal b, const int beginIdA, const int n)
 Vector-scalar in-place division, a[i] /= b (mixed).
void Pscf::VecOp::divEqS (DeviceArray< cudaComplex > &a, const cudaReal b)
 Vector-scalar in-place division, a[i] /= b (mixed).
void Pscf::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]), (real).
void Pscf::VecOp::expV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector exponentiation, a[i] = exp(b[i]), (real).
void Pscf::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]), (complex).
void Pscf::VecOp::expV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b)
 Vector exponentiation, a[i] = exp(b[i]), (complex).
void Pscf::VecOp::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 Pscf::VecOp::sqV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector square, a[i] = b[i]*b[i], (real).
void Pscf::VecOp::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 Pscf::VecOp::sqV (DeviceArray< cudaComplex > &a, DeviceArray< cudaComplex > const &b)
 Vector square, a[i] = b[i]*b[i], (complex).
void Pscf::VecOp::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 Pscf::VecOp::absV (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b)
 Vector absolute magnitude, a[i] = abs(b[i]) (real).
void Pscf::VecOp::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 Pscf::VecOp::sqAbsV (DeviceArray< cudaReal > &a, DeviceArray< cudaComplex > const &b)
 Vector absolute magnitude squared, a[i] = |b[i]|^2 (complex).
void Pscf::VecOp::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 Pscf::VecOp::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 Pscf::VecOp::addEqVc (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, cudaReal const c)
 Add a scaled vector in-place, a[i] += b[i] * c (real).
void Pscf::VecOp::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 Pscf::VecOp::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 Pscf::VecOp::divEqVc (DeviceArray< cudaComplex > &a, DeviceArray< cudaReal > const &b, cudaReal const c)
 Vector division in-place w/ coeff., a[i] /= (b[i] * c).
void Pscf::VecOp::expVc (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, cudaReal const c)
 Vector exponentiation w/ coefficient, a[i] = exp(b[i]*c).
void Pscf::VecOp::eqVPair (DeviceArray< cudaReal > &a1, DeviceArray< cudaReal > &a2, DeviceArray< cudaReal > const &s)
 Vector assignment in pairs, ax[i] = b[i], x = 1, 2 (real).
void Pscf::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], x=1,2 (real).
void Pscf::VecOp::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 Pscf::VecOp::addVMany (DeviceArray< cudaReal > &a, DArray< DeviceArray< cudaReal > > const &vecs)
 Add an arbitrary number of vectors pointwise (real).
void Pscf::VecOp::addVMany (DeviceArray< cudaReal > &a, DArray< DeviceArray< cudaReal > const * > const &vecs)
 Add an arbitrary number of vectors pointwise (real).
void Pscf::VecOp::mulVMany (DeviceArray< cudaReal > &a, DArray< DeviceArray< cudaReal > > const &vecs)
 Multiply an undefined number of vectors pointwise (real).
void Pscf::VecOp::mulVMany (DeviceArray< cudaReal > &a, DArray< DeviceArray< cudaReal > const * > const &vecs)
 Multiply an undefined number of vectors pointwise.
void Pscf::VecOp::sqSqAbsV (DeviceArray< cudaReal > &a, DeviceArray< cudaComplex > const &b)
 Fourth power of magnitude, a[i] = |b[i]|^4 (complex).

Detailed Description

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

The functions declared in this header operate on DeviceArray objects with elements of type cudaReal or cudaComplex. The operations that are performed by these functions include assignment, addition, subtraction, multiplication, division, exponentiation, square and absolute magnitude. Function names, correspondingly, begin with "eq", "add", "sub", "mul", "div", "exp", "sq" and "abs" to indicate the operation being performed. Functions that perform in-place arithmetic assignment operations, which are analogous to those performed using the +=, -=, *=, and /= C/C++ operators, have names that begin with "addEq", "subEq", "mulEq", and "divEq".

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

The output (the LHS of the vector operation) is always 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 the vector-vector addition operation 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 array B. In commutative binary operations involving a vector and a scalar, the vector is listed first. So, for example, addVS exists, but addSV does not.

Two wrapper functions are provided for each vector operation:

Additional functions that perform multiple operations within a single kernel are defined in VecOpMisc. This collection is not comprehensive and is added to 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.

The functions declared in this file are wrappers for CUDA kernels that perform the actual parallel vector operations. The underlying CUDA kernels are only intended to be called through their wrappers. To enforce this, kernels are defined in an anonymous namespace in the file VecOp.cu, and are thus only accessible for use within that source file.

Function Documentation

◆ eqVPair() [1/2]

void Pscf::VecOp::eqVPair ( Array< double > & a1,
Array< double > & a2,
Array< double > const & b )

Vector assignment in pairs, ax[i] = b[i], x = 1, 2.

Parameters
a1real array 1 (LHS)
a2real array 2 (LHS)
bshared real array to be assigned to both a1 and a2

Definition at line 446 of file VecOp.cpp.

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

◆ mulVVPair() [1/2]

void Pscf::VecOp::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.

Parameters
a1real array 1 (LHS)
a2real array 2 (LHS)
b1real array 1 (RHS)
b2real array 2 (RHS)
cshared real array to multiply both b1 and b2

Definition at line 463 of file VecOp.cpp.

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

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

◆ mulEqVPair() [1/2]

void Pscf::VecOp::mulEqVPair ( Array< double > & a1,
Array< double > & a2,
Array< double > const & b )

In-place vector multiplication in pairs, ax[i] *= b[i], x=1,2.

Parameters
a1real array 1 (LHS)
a2real array 2 (LHS)
bshared real array to multiply both a1 and a2 (RHS)

Definition at line 484 of file VecOp.cpp.

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

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

◆ eqV() [1/8]

void Pscf::VecOp::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).

Parameters
areal array (LHS)
breal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 1231 of file VecOp.cu.

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

◆ eqV() [2/8]

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

Vector-vector assignment, a[i] = b[i], (real).

Parameters
areal array (LHS)
breal array (RHS)

Definition at line 109 of file cuda/VecOp.h.

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

◆ eqV() [3/8]

void Pscf::VecOp::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).

Parameters
areal array (LHS)
breal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 1260 of file VecOp.cu.

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

◆ eqV() [4/8]

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

Vector-vector assignment, a[i] = b[i], (real, device to host).

Parameters
areal array (LHS)
breal array (RHS)

Definition at line 137 of file cuda/VecOp.h.

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

◆ eqV() [5/8]

void Pscf::VecOp::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).

Parameters
areal array (LHS)
breal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 1282 of file VecOp.cu.

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

◆ eqV() [6/8]

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

Vector-vector assignment, a[i] = b[i], (real, host to device).

Parameters
areal array (LHS)
breal array (RHS)

Definition at line 165 of file cuda/VecOp.h.

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

◆ eqV() [7/8]

void Pscf::VecOp::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).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 1304 of file VecOp.cu.

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

◆ eqV() [8/8]

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

Vector-vector assignment, a[i] = b[i], (complex).

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 193 of file cuda/VecOp.h.

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

◆ eqS() [1/4]

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

Vector-scalar assignment, a[i] = b, (real).

Parameters
areal array (LHS)
breal scalar (RHS)
beginIdAindex of first element in a slice of array a
nnumber of elements in the slice

Definition at line 1348 of file VecOp.cu.

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

◆ eqS() [2/4]

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

Vector-scalar assignment, a[i] = b, (real).

Parameters
areal array (LHS)
breal scalar (RHS)

Definition at line 220 of file cuda/VecOp.h.

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

◆ eqS() [3/4]

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

Vector-scalar assignment, a[i] = b, (complex).

Parameters
acomplex array (LHS)
bcomplex scalar (RHS)
beginIdAindex of first element in a slice of array a
nnumber of elements in the slice

Definition at line 1366 of file VecOp.cu.

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

◆ eqS() [4/4]

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

Vector-scalar assignment, a[i] = b, (complex).

Parameters
acomplex array (LHS)
bcomplex scalar (RHS)

Definition at line 246 of file cuda/VecOp.h.

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

◆ addVV() [1/8]

void Pscf::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-vector addition, a[i] = b[i] + c[i], (real).

Parameters
areal array (LHS)
breal array (RHS)
creal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
beginIdCindex of first element in a slice of array c
nnumber of elements in the slice

Definition at line 1386 of file VecOp.cu.

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

◆ addVV() [2/8]

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

Vector-vector addition, a[i] = b[i] + c[i], (real).

Parameters
areal array (LHS)
breal array (RHS)
creal array (RHS)

Definition at line 280 of file cuda/VecOp.h.

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

◆ addVV() [3/8]

void Pscf::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-vector addition, a[i] = b[i] + c[i], (complex).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
ccomplex array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
beginIdCindex of first element in a slice of array c
nnumber of elements in the slice

Definition at line 1410 of file VecOp.cu.

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

◆ addVV() [4/8]

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

Vector-vector addition, a[i] = b[i] + c[i], (complex).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
ccomplex array (RHS)

Definition at line 314 of file cuda/VecOp.h.

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

◆ addVV() [5/8]

void Pscf::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-vector addition, a[i] = b[i] + c[i] (mixed).

Parameters
acomplex array (LHS)
breal array (RHS)
ccomplex array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
beginIdCindex of first element in a slice of array c
nnumber of elements in the slice

Definition at line 1434 of file VecOp.cu.

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

◆ addVV() [6/8]

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

Vector-vector addition, a[i] = b[i] + c[i] (mixed).

Parameters
acomplex array (LHS)
breal array (RHS)
ccomplex array (RHS)

Definition at line 348 of file cuda/VecOp.h.

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

◆ addVV() [7/8]

void Pscf::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-vector addition, a[i] = b[i] + c[i] (mixed).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
creal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
beginIdCindex of first element in a slice of array c
nnumber of elements in the slice

Definition at line 1458 of file VecOp.cu.

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

◆ addVV() [8/8]

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

Vector-vector addition, a[i] = b[i] + c[i] (mixed).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
creal array (RHS)

Definition at line 382 of file cuda/VecOp.h.

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

◆ addVS() [1/8]

void Pscf::VecOp::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).

Parameters
areal array (LHS)
breal array (RHS)
creal scalar (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 1482 of file VecOp.cu.

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

◆ addVS() [2/8]

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

Vector-scalar addition, a[i] = b[i] + c, (real).

Parameters
areal array (LHS)
breal array (RHS)
creal scalar (RHS)

Definition at line 415 of file cuda/VecOp.h.

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

◆ addVS() [3/8]

void Pscf::VecOp::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).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
ccomplex scalar (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 1502 of file VecOp.cu.

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

◆ addVS() [4/8]

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

Vector addition, a[i] = b[i] + c, (complex).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
ccomplex scalar (RHS)

Definition at line 448 of file cuda/VecOp.h.

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

◆ addVS() [5/8]

void Pscf::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 (mixed).

Parameters
acomplex array (LHS)
breal array (RHS)
ccomplex scalar (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 1522 of file VecOp.cu.

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

◆ addVS() [6/8]

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

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

Parameters
acomplex array (LHS)
breal array (RHS)
ccomplex scalar (RHS)

Definition at line 480 of file cuda/VecOp.h.

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

◆ addVS() [7/8]

void Pscf::VecOp::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).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
creal scalar (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 1542 of file VecOp.cu.

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

◆ addVS() [8/8]

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

Vector-scalar addition, a[i] = b[i] + c (mixed).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
creal scalar (RHS)

Definition at line 512 of file cuda/VecOp.h.

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

◆ subVV() [1/8]

void Pscf::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-vector subtraction, a[i] = b[i] - c[i], (real).

Parameters
areal array (LHS)
breal array (RHS)
creal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
beginIdCindex of first element in a slice of array c
nnumber of elements in the slice

Definition at line 1562 of file VecOp.cu.

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

◆ subVV() [2/8]

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

Vector-vector subtraction, a[i] = b[i] - c[i], (real).

Parameters
areal array (LHS)
breal array (RHS)
creal array (RHS)

Definition at line 549 of file cuda/VecOp.h.

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

◆ subVV() [3/8]

void Pscf::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-vector subtraction, a[i] = b[i] - c[i], (complex).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
beginIdCindex of first element in a slice of array c
nnumber of elements in the slice

Definition at line 1584 of file VecOp.cu.

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

◆ subVV() [4/8]

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

Vector-vector subtraction, a[i] = b[i] - c[i], (complex).

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

Definition at line 581 of file cuda/VecOp.h.

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

◆ subVV() [5/8]

void Pscf::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-vector subtraction, a[i] = b[i] - c[i] (mixed).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
beginIdCindex of first element in a slice of array c
nnumber of elements in the slice

Definition at line 1606 of file VecOp.cu.

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

◆ subVV() [6/8]

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

Vector-vector subtraction, a[i] = b[i] - c[i] (mixed).

Parameters
acomplex array (LHS)
breal array (RHS)
ccomplex array (RHS)

Definition at line 616 of file cuda/VecOp.h.

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

◆ subVV() [7/8]

void Pscf::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-vector subtraction, a[i] = b[i] - c[i] (mixed, c = real).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
creal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
beginIdCindex of first element in a slice of array c
nnumber of elements in the slice

Definition at line 1628 of file VecOp.cu.

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

◆ subVV() [8/8]

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

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

Parameters
acomplex array (LHS)
bcomplex array (RHS)
creal array (RHS)

Definition at line 650 of file cuda/VecOp.h.

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

◆ subVS() [1/8]

void Pscf::VecOp::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).

Parameters
areal array (LHS)
breal array (RHS)
creal scalar (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 1650 of file VecOp.cu.

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

◆ subVS() [2/8]

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

Vector-scalar subtraction, a[i] = b[i] - c, (real).

Parameters
areal array (LHS)
breal array (RHS)
creal scalar (RHS)

Definition at line 683 of file cuda/VecOp.h.

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

◆ subVS() [3/8]

void Pscf::VecOp::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).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
ccomplex scalar (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 1671 of file VecOp.cu.

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

◆ subVS() [4/8]

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

Vector-scalar subtraction, a[i] = b[i] - c, (complex).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
ccomplex scalar (RHS)

Definition at line 715 of file cuda/VecOp.h.

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

◆ subVS() [5/8]

void Pscf::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 (mixed).

Parameters
acomplex array (LHS)
breal array (RHS)
ccomplex scalar (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 1691 of file VecOp.cu.

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

◆ subVS() [6/8]

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

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

Parameters
acomplex array (LHS)
breal array (RHS)
ccomplex scalar (RHS)

Definition at line 747 of file cuda/VecOp.h.

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

◆ subVS() [7/8]

void Pscf::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 (mixed, c = real).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
creal scalar (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 1710 of file VecOp.cu.

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

◆ subVS() [8/8]

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

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

Parameters
acomplex array (LHS)
bcomplex array (RHS)
creal scalar (RHS)

Definition at line 779 of file cuda/VecOp.h.

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

◆ mulVV() [1/8]

void Pscf::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-vector multiplication, a[i] = b[i] * c[i], (real).

Parameters
areal array (LHS)
breal array (RHS)
creal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
beginIdCindex of first element in a slice of array c
nnumber of elements in the slice

Definition at line 1730 of file VecOp.cu.

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

◆ mulVV() [2/8]

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

Vector-vector multiplication, a[i] = b[i] * c[i], (real).

Parameters
areal array (LHS)
breal array (RHS)
creal array (RHS)

Definition at line 816 of file cuda/VecOp.h.

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

◆ mulVV() [3/8]

void Pscf::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-vector multiplication, a[i] = b[i] * c[i], (complex).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
beginIdCindex of first element in a slice of array c
nnumber of elements in the slice

Definition at line 1751 of file VecOp.cu.

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

◆ mulVV() [4/8]

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

Vector-vector multiplication, a[i] = b[i] * c[i], (complex).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
ccomplex array (RHS)

Definition at line 850 of file cuda/VecOp.h.

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

◆ mulVV() [5/8]

void Pscf::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-vector multiplication, a[i] = b[i] * c[i] (mixed).

Parameters
aoutput array (LHS)
binput array (RHS)
cinput array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
beginIdCindex of first element in a slice of array c
nnumber of elements in the slice

Definition at line 1773 of file VecOp.cu.

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

◆ mulVV() [6/8]

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

Vector-vector multiplication, a[i]=b[i]*c[i] (mixed).

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

Definition at line 883 of file cuda/VecOp.h.

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

◆ mulVV() [7/8]

void Pscf::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-vector multiplication, a[i]=b[i]*c[i] (mixed, c = real).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
creal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
beginIdCindex of first element in a slice of array c
nnumber of elements in the slice

Definition at line 1795 of file VecOp.cu.

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

◆ mulVV() [8/8]

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

Vector-vector multiplication, a[i]=b[i]*c[i] (mixed).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
creal array (RHS)

Definition at line 917 of file cuda/VecOp.h.

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

◆ mulVS() [1/8]

void Pscf::VecOp::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).

Parameters
areal array (LHS)
breal array (RHS)
creal scalar (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 1817 of file VecOp.cu.

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

◆ mulVS() [2/8]

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

Vector-scalar multiplication, a[i] = b[i] * c, (real).

Parameters
areal array (LHS)
breal array (RHS)
creal scalar (RHS)

Definition at line 950 of file cuda/VecOp.h.

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

◆ mulVS() [3/8]

void Pscf::VecOp::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).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
ccomplex scalar (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 1838 of file VecOp.cu.

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

◆ mulVS() [4/8]

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

Vector-scalar multiplication, a[i] = b[i] * c, (complex).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
ccomplex scalar (RHS)

Definition at line 982 of file cuda/VecOp.h.

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

◆ mulVS() [5/8]

void Pscf::VecOp::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).

Parameters
acomplex array (LHS)
breal array (RHS)
ccomplex scalar (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 1858 of file VecOp.cu.

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

◆ mulVS() [6/8]

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

Vector-scalar multiplication, a[i] = b[i] * c (mixed).

Parameters
aoutput array (LHS)
breal array (RHS)
ccomplex scalar (RHS)

Definition at line 1014 of file cuda/VecOp.h.

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

◆ mulVS() [7/8]

void Pscf::VecOp::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).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
creal scalar (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 1877 of file VecOp.cu.

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

◆ mulVS() [8/8]

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

Vector-scalar multiplication, a[i] = b[i] * c (mixed).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
creal scalar (RHS)

Definition at line 1046 of file cuda/VecOp.h.

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

◆ divVV() [1/4]

void Pscf::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-vector division, a[i] = b[i] / c[i], (real).

Parameters
areal array (LHS)
breal array (RHS)
creal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
beginIdCindex of first element in a slice of array c
nnumber of elements in the slice

Definition at line 1897 of file VecOp.cu.

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

◆ divVV() [2/4]

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

Vector-vector division, a[i] = b[i] / c[i], (real).

Parameters
areal array (LHS)
breal array (RHS)
creal array (RHS)

Definition at line 1083 of file cuda/VecOp.h.

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

◆ divVV() [3/4]

void Pscf::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-vector division, a[i] = b[i] / c[i] (mixed).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
creal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
beginIdCindex of first element in a slice of array c
nnumber of elements in the slice

Definition at line 1919 of file VecOp.cu.

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

◆ divVV() [4/4]

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

Vector-vector division, a[i] = b[i] / c[i] (mixed).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
creal array (RHS)

Definition at line 1117 of file cuda/VecOp.h.

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

◆ divVS() [1/4]

void Pscf::VecOp::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).

Parameters
areal array (LHS)
breal array (RHS)
creal scalar (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 1943 of file VecOp.cu.

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

◆ divVS() [2/4]

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

Vector-scalar division, a[i] = b[i] / c, (real).

Parameters
areal array (LHS)
breal array (RHS)
creal scalar (RHS)

Definition at line 1149 of file cuda/VecOp.h.

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

◆ divVS() [3/4]

void Pscf::VecOp::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).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
creal scalar (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 1966 of file VecOp.cu.

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

◆ divVS() [4/4]

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

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

Parameters
acomplex array (LHS)
bcomplex array (RHS)
creal scalar (RHS)

Definition at line 1181 of file cuda/VecOp.h.

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

◆ divSV() [1/2]

void Pscf::VecOp::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).

Parameters
areal array (LHS)
breal scalar (RHS)
creal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdCindex of first element in a slice of array c
nnumber of elements in the slice

Definition at line 1989 of file VecOp.cu.

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

◆ divSV() [2/2]

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

Scalar-vector division, a[i] = b / c[i], (real).

Parameters
areal array (LHS)
breal scalar (RHS)
creal array (RHS)

Definition at line 1213 of file cuda/VecOp.h.

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

◆ addEqV() [1/6]

void Pscf::VecOp::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).

Parameters
areal array (LHS)
breal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 2012 of file VecOp.cu.

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

◆ addEqV() [2/6]

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

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

Parameters
areal array (LHS)
breal array (RHS)

Definition at line 1244 of file cuda/VecOp.h.

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

◆ addEqV() [3/6]

void Pscf::VecOp::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).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 2032 of file VecOp.cu.

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

◆ addEqV() [4/6]

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

Vector-vector in-place addition, a[i] += b[i] (complex).

Parameters
acomplex array (LHS)
bcomplex array (RHS)

Definition at line 1272 of file cuda/VecOp.h.

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

◆ addEqV() [5/6]

void Pscf::VecOp::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).

Parameters
acomplex array (LHS)
breal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 2077 of file VecOp.cu.

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

◆ addEqV() [6/6]

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

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

Parameters
acomplex array (LHS)
breal array (RHS)

Definition at line 1300 of file cuda/VecOp.h.

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

◆ addEqS() [1/6]

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

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

Parameters
areal array (LHS)
breal scalar (RHS)
beginIdAindex of first element in a slice of array a
nnumber of elements in the slice

Definition at line 2098 of file VecOp.cu.

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

◆ addEqS() [2/6]

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

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

Parameters
areal array (LHS)
breal scalar (RHS)

Definition at line 1327 of file cuda/VecOp.h.

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

◆ addEqS() [3/6]

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

Vector-scalar in-place addition, a[i] += b, (complex).

Parameters
aoutput array (LHS)
binput scalar (RHS)
beginIdAindex of first element in a slice of array a
nnumber of elements in the slice

Definition at line 2116 of file VecOp.cu.

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

◆ addEqS() [4/6]

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

Vector-scalar in-place addition, a[i] += b, (complex).

Parameters
aoutput array (LHS)
binput scalar (RHS)

Definition at line 1353 of file cuda/VecOp.h.

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

◆ addEqS() [5/6]

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

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

Parameters
acomplex array (LHS)
breal scalar (RHS)
beginIdAindex of first element in a slice of array a
nnumber of elements in the slice

Definition at line 2134 of file VecOp.cu.

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

◆ addEqS() [6/6]

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

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

Parameters
acomplex array (LHS)
breal scalar (RHS)

Definition at line 1379 of file cuda/VecOp.h.

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

◆ subEqV() [1/6]

void Pscf::VecOp::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).

Parameters
areal array (LHS)
breal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 2152 of file VecOp.cu.

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

◆ subEqV() [2/6]

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

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

Parameters
areal array (LHS)
breal array (RHS)

Definition at line 1409 of file cuda/VecOp.h.

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

◆ subEqV() [3/6]

void Pscf::VecOp::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).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 2172 of file VecOp.cu.

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

◆ subEqV() [4/6]

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

Vector in-place subtraction, a[i] -= b[i], (complex).

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 1437 of file cuda/VecOp.h.

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

◆ subEqV() [5/6]

void Pscf::VecOp::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).

Parameters
aoutput array (LHS)
binput array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 2192 of file VecOp.cu.

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

◆ subEqV() [6/6]

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

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

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 1465 of file cuda/VecOp.h.

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

◆ subEqS() [1/6]

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

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

Parameters
areal array (LHS)
breal scalar (RHS)
beginIdAindex of first element in a slice of array a
nnumber of elements in the slice

Definition at line 2212 of file VecOp.cu.

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

◆ subEqS() [2/6]

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

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

Parameters
areal array (LHS)
breal scalar (RHS)

Definition at line 1491 of file cuda/VecOp.h.

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

◆ subEqS() [3/6]

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

Vector in-place subtraction, a[i] -= b, (complex).

Parameters
acomplex array (LHS)
bcomplex scalar (RHS)
beginIdAindex of first element in a slice of array a
nnumber of elements in the slice

Definition at line 2230 of file VecOp.cu.

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

◆ subEqS() [4/6]

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

Vector in-place subtraction, a[i] -= b, (complex).

Parameters
acomplex array (LHS)
bcomplex scalar (RHS)

Definition at line 1516 of file cuda/VecOp.h.

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

◆ subEqS() [5/6]

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

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

Parameters
acomplex array (LHS)
breal scalar (RHS)
beginIdAindex of first element in a slice of array a
nnumber of elements in the slice

Definition at line 2248 of file VecOp.cu.

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

◆ subEqS() [6/6]

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

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

Parameters
acomplex array (LHS)
breal scalar (RHS)

Definition at line 1542 of file cuda/VecOp.h.

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

◆ mulEqV() [1/6]

void Pscf::VecOp::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).

Parameters
areal array (LHS)
breal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 2266 of file VecOp.cu.

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

◆ mulEqV() [2/6]

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

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

Parameters
areal array (LHS)
breal array (RHS)

Definition at line 1572 of file cuda/VecOp.h.

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

◆ mulEqV() [3/6]

void Pscf::VecOp::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).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 2284 of file VecOp.cu.

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

◆ mulEqV() [4/6]

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

Vector-vector in-place multiplication, a[i] *= b[i], (complex).

Parameters
acomplex array (LHS)
bcomplex array (RHS)

Definition at line 1600 of file cuda/VecOp.h.

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

◆ mulEqV() [5/6]

void Pscf::VecOp::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).

Parameters
acomplex array (LHS)
breal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 2302 of file VecOp.cu.

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

◆ mulEqV() [6/6]

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

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

Parameters
acomplex array (LHS)
breal array (RHS)

Definition at line 1628 of file cuda/VecOp.h.

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

◆ mulEqS() [1/6]

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

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

Parameters
areal array (LHS)
breal scalar (RHS)
beginIdAindex of first element in a slice of array a
nnumber of elements in the slice

Definition at line 2320 of file VecOp.cu.

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

◆ mulEqS() [2/6]

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

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

Parameters
areal array (LHS)
breal scalar (RHS)

Definition at line 1654 of file cuda/VecOp.h.

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

◆ mulEqS() [3/6]

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

Vector-scalar in-place multiplication, a[i] *= b, (complex).

Parameters
acomplex array (LHS)
bcomplex scalar (RHS)
beginIdAindex of first element in a slice of array a
nnumber of elements in the slice

Definition at line 2336 of file VecOp.cu.

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

◆ mulEqS() [4/6]

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

Vector-scalar in-place multiplication, a[i] *= b, (complex).

Parameters
acomplex array (LHS)
bcomplex scalar (RHS)

Definition at line 1679 of file cuda/VecOp.h.

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

◆ mulEqS() [5/6]

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

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

Parameters
acomplex array (LHS)
breal scalar (RHS)
beginIdAindex of first element in a slice of array a
nnumber of elements in the slice

Definition at line 2354 of file VecOp.cu.

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

◆ mulEqS() [6/6]

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

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

Parameters
acomplex array (LHS)
breal scalar (RHS)

Definition at line 1705 of file cuda/VecOp.h.

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

◆ divEqV() [1/4]

void Pscf::VecOp::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).

Parameters
areal array (LHS)
breal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 2374 of file VecOp.cu.

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

◆ divEqV() [2/4]

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

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

Parameters
areal array (LHS)
breal array (RHS)

Definition at line 1735 of file cuda/VecOp.h.

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

◆ divEqV() [3/4]

void Pscf::VecOp::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).

Parameters
acomplex array (LHS)
breal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 2394 of file VecOp.cu.

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

◆ divEqV() [4/4]

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

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

Parameters
acomplex array (LHS)
breal array (RHS)

Definition at line 1763 of file cuda/VecOp.h.

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

◆ divEqS() [1/4]

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

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

Parameters
areal array (LHS)
breal scalar (RHS)
beginIdAindex of first element in a slice of array a
nnumber of elements in the slice

Definition at line 2414 of file VecOp.cu.

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

◆ divEqS() [2/4]

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

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

Parameters
areal array (LHS)
breal scalar (RHS)

Definition at line 1790 of file cuda/VecOp.h.

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

◆ divEqS() [3/4]

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

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

Parameters
acomplex array (LHS)
breal scalar (RHS)
beginIdAindex of first element in a slice of array a
nnumber of elements in the slice

Definition at line 2432 of file VecOp.cu.

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

◆ divEqS() [4/4]

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

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

Parameters
acomplex array (LHS)
breal scalar (RHS)

Definition at line 1816 of file cuda/VecOp.h.

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

◆ expV() [1/4]

void Pscf::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]), (real).

Parameters
areal array (LHS)
breal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 2452 of file VecOp.cu.

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

◆ expV() [2/4]

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

Vector exponentiation, a[i] = exp(b[i]), (real).

Parameters
areal array (LHS)
breal array (RHS)

Definition at line 1846 of file cuda/VecOp.h.

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

◆ expV() [3/4]

void Pscf::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]), (complex).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 2472 of file VecOp.cu.

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

◆ expV() [4/4]

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

Vector exponentiation, a[i] = exp(b[i]), (complex).

Parameters
acomplex array (LHS)
bcomplex array (RHS)

Definition at line 1875 of file cuda/VecOp.h.

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

◆ sqV() [1/4]

void Pscf::VecOp::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).

Parameters
areal array (LHS)
breal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 2494 of file VecOp.cu.

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

◆ sqV() [2/4]

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

Vector square, a[i] = b[i]*b[i], (real).

Parameters
areal array (LHS)
breal array (RHS)

Definition at line 1906 of file cuda/VecOp.h.

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

◆ sqV() [3/4]

void Pscf::VecOp::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).

Parameters
acomplex array (LHS)
bcomplex array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nnumber of elements in the slice

Definition at line 2515 of file VecOp.cu.

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

◆ sqV() [4/4]

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

Vector square, a[i] = b[i]*b[i], (complex).

Parameters
acomplex array (LHS)
bcomplex array (RHS)

Definition at line 1935 of file cuda/VecOp.h.

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

◆ absV() [1/2]

void Pscf::VecOp::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).

Parameters
areal array (LHS)
breal array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nsize of arrays

Definition at line 2538 of file VecOp.cu.

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

◆ absV() [2/2]

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

Vector absolute magnitude, a[i] = abs(b[i]) (real).

Parameters
areal array (LHS)
breal array (RHS)

Definition at line 1966 of file cuda/VecOp.h.

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

◆ sqAbsV() [1/2]

void Pscf::VecOp::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).

Parameters
areal array (LHS)
bcomplex array (RHS)
beginIdAindex of first element in a slice of array a
beginIdBindex of first element in a slice of array b
nsize of arrays

Definition at line 2559 of file VecOp.cu.

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

◆ sqAbsV() [2/2]

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

Vector absolute magnitude squared, a[i] = |b[i]|^2 (complex).

Parameters
areal array (LHS)
bconplex array (RHS)

Definition at line 1995 of file cuda/VecOp.h.

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

◆ addVcVc()

void Pscf::VecOp::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).

Parameters
areal array (LHS)
b1real input array 1 (RHS)
c1real coefficent of b1 (RHS)
b2real input array 2 (RHS)
c2real coefficent of b2 (RHS)

Definition at line 365 of file VecOpMisc.cu.

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

◆ addVcS()

void Pscf::VecOp::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).

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

Definition at line 387 of file VecOpMisc.cu.

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

◆ addEqVc()

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

Add a scaled vector in-place, a[i] += b[i] * c (real).

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

Definition at line 457 of file VecOpMisc.cu.

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

◆ addVcVcVc()

void Pscf::VecOp::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).

Parameters
areal output array (LHS)
b1real input array 1 (RHS)
c1real coefficient of b1 (RHS)
b2real input array 2 (RHS)
c2real coefficient of b2 (RHS)
b3real input array 3 (RHS)
c3real coefficient of b3 (RHS)

Definition at line 406 of file VecOpMisc.cu.

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

◆ addVcVcS()

void Pscf::VecOp::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).

Parameters
areal output array (LHS)
b1real input array 1 (RHS)
c1real coefficient of b1 (RHS)
b2real input array 2 (RHS)
c2real coefficient of b2 (RHS)
sreal scalar summand (RHS)

Definition at line 431 of file VecOpMisc.cu.

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

◆ divEqVc()

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

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

Parameters
acomplex array (LHS)
breal array (RHS)
cinput scalar (RHS)

Definition at line 476 of file VecOpMisc.cu.

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

◆ expVc()

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

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

Parameters
areal array (LHS)
breal array (RHS)
cinput scalar

Definition at line 494 of file VecOpMisc.cu.

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

◆ eqVPair() [2/2]

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

Vector assignment in pairs, ax[i] = b[i], x = 1, 2 (real).

Parameters
a1real array 1 (LHS)
a2real array 2 (LHS)
sshared real array to be assigned to both a1 and a2

Definition at line 512 of file VecOpMisc.cu.

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

◆ mulVVPair() [2/2]

void Pscf::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], x=1,2 (real).

Parameters
a1real array 1 (LHS)
a2real array 2 (LHS)
b1real array 1 (RHS)
b2real array 2 (RHS)
sshared real array to be multiplied by both b1 and b2

Definition at line 532 of file VecOpMisc.cu.

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

◆ mulEqVPair() [2/2]

void Pscf::VecOp::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).

Parameters
a1real array 1 (LHS)
a2real array 2 (LHS)
sshared real array to multiply both a1 and a2 (RHS)

Definition at line 557 of file VecOpMisc.cu.

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

◆ addVMany() [1/2]

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

Add an arbitrary number of vectors pointwise (real).

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

Parameters
areal array (LHS)
vecsarray of DeviceArrays to be added (RHS)

Definition at line 577 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::VecOp::addVMany ( DeviceArray< cudaReal > & a,
DArray< DeviceArray< cudaReal > const * > const & vecs )

Add an arbitrary number of vectors pointwise (real).

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 be added together.

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
areal array (LHS)
vecsarray of pointers to DeviceArrays to be added

Definition at line 610 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::VecOp::mulVMany ( DeviceArray< cudaReal > & a,
DArray< DeviceArray< cudaReal > > const & vecs )

Multiply an undefined number of vectors pointwise (real).

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

Parameters
areal array (LHS)
vecsarray of DeviceArrays to be multiplied (RHS)

Definition at line 643 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::VecOp::mulVMany ( DeviceArray< cudaReal > & a,
DArray< DeviceArray< cudaReal > const * > const & vecs )

Multiply an undefined number of vectors pointwise.

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 pointwise.

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
areal array (LHS)
vecsarray of real arrays to be multiplied (RHS)

Definition at line 676 of file VecOpMisc.cu.

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

◆ sqSqAbsV()

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

Fourth power of magnitude, a[i] = |b[i]|^4 (complex).

Parameters
areal array (LHS)
bcomplex array (RHS)

Definition at line 709 of file VecOpMisc.cu.

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