PSCF v1.3.2
Pscf::Prdc::Cpu::VecOp Namespace Reference

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

Functions

void eqV (Array< double > &a, Array< double > const &b)
 Vector assignment, a[i] = b[i].
void eqS (Array< double > &a, double b)
 Vector assignment, a[i] = b.
void addVV (Array< double > &a, Array< double > const &b, Array< double > const &c)
 Vector addition, a[i] = b[i] + c[i].
void addVS (Array< double > &a, Array< double > const &b, double c)
 Vector addition, a[i] = b[i] + c.
void subVV (Array< double > &a, Array< double > const &b, Array< double > const &c)
 Vector subtraction, a[i] = b[i] - c[i].
void subVS (Array< double > &a, Array< double > const &b, double c)
 Vector subtraction, a[i] = b[i] - c.
void mulVV (Array< double > &a, Array< double > const &b, Array< double > const &c)
 Vector multiplication, a[i] = b[i] * c[i].
void mulVS (Array< double > &a, Array< double > const &b, double c)
 Vector multiplication, a[i] = b[i] * c.
void divVV (Array< double > &a, Array< double > const &b, Array< double > const &c)
 Vector division, a[i] = b[i] / c[i].
void divVS (Array< double > &a, Array< double > const &b, double c)
 Vector division, a[i] = b[i] / c.
void divSV (Array< double > &a, double b, Array< double > const &c)
 Vector division, a[i] = b / c[i].
void expV (Array< double > &a, Array< double > const &b)
 Vector exponentiation, a[i] = exp(b[i]).
void addEqV (Array< double > &a, Array< double > const &b)
 Vector addition in-place, a[i] += b[i].
void addEqS (Array< double > &a, double b)
 Vector addition in-place, a[i] += b.
void subEqV (Array< double > &a, Array< double > const &b)
 Vector subtraction in-place, a[i] -= b[i].
void subEqS (Array< double > &a, double b)
 Vector subtraction in-place, a[i] -= b.
void mulEqV (Array< double > &a, Array< double > const &b)
 Vector multiplication in-place, a[i] *= b[i].
void mulEqS (Array< double > &a, double b)
 Vector multiplication in-place, a[i] *= b.
void divEqV (Array< double > &a, Array< double > const &b)
 Vector division in-place, a[i] /= b[i].
void divEqS (Array< double > &a, double b)
 Vector division in-place, a[i] /= b.

Detailed Description

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

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

The 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, the function addVV(A,B,C) implements vector-vector addition A[i] = B[i] + C[i], while addVS(A,B,c) implements vector-scalar addition A[i] = B[i] + c in which c is a scalar that is added to every element of B. In commutative operations involving both vectors and scalars, the vectors are listed first. So, for example, addVS exists, but addSV does not.

Function Documentation

◆ eqV()

◆ eqS()

◆ addVV()

void Pscf::Prdc::Cpu::VecOp::addVV ( Array< double > & a,
Array< double > const & b,
Array< double > const & c )

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

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

Definition at line 50 of file VecOp.cpp.

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

Referenced by Pscf::Prdc::Cuda::VecOp::addVMany(), Pscf::Prdc::Cuda::VecOp::addVMany(), Pscf::Prdc::Cuda::VecOp::addVV(), Pscf::Prdc::Cuda::VecOp::addVV(), Pscf::Prdc::Cuda::VecOp::addVV(), and Pscf::Prdc::Cuda::VecOp::addVV().

◆ addVS()

void Pscf::Prdc::Cpu::VecOp::addVS ( Array< double > & a,
Array< double > const & b,
double c )

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

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

Definition at line 65 of file VecOp.cpp.

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

Referenced by Pscf::Prdc::Cuda::VecOp::addVS(), Pscf::Prdc::Cuda::VecOp::addVS(), Pscf::Prdc::Cuda::VecOp::addVS(), and Pscf::Prdc::Cuda::VecOp::addVS().

◆ subVV()

void Pscf::Prdc::Cpu::VecOp::subVV ( Array< double > & a,
Array< double > const & b,
Array< double > const & c )

◆ subVS()

void Pscf::Prdc::Cpu::VecOp::subVS ( Array< double > & a,
Array< double > const & b,
double c )

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

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

Definition at line 96 of file VecOp.cpp.

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

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

◆ mulVV()

void Pscf::Prdc::Cpu::VecOp::mulVV ( Array< double > & a,
Array< double > const & b,
Array< double > const & c )

Vector multiplication, a[i] = b[i] * c[i].

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

Definition at line 111 of file VecOp.cpp.

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

Referenced by Pscf::Prdc::Cuda::VecOp::mulVMany(), Pscf::Prdc::Cuda::VecOp::mulVMany(), Pscf::Prdc::Cuda::VecOp::mulVV(), Pscf::Prdc::Cuda::VecOp::mulVV(), Pscf::Prdc::Cuda::VecOp::mulVV(), and Pscf::Prdc::Cuda::VecOp::mulVV().

◆ mulVS()

void Pscf::Prdc::Cpu::VecOp::mulVS ( Array< double > & a,
Array< double > const & b,
double c )

Vector multiplication, a[i] = b[i] * c.

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

Definition at line 126 of file VecOp.cpp.

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

Referenced by Pscf::Prdc::Cuda::VecOp::mulVS(), Pscf::Prdc::Cuda::VecOp::mulVS(), Pscf::Prdc::Cuda::VecOp::mulVS(), and Pscf::Prdc::Cuda::VecOp::mulVS().

◆ divVV()

void Pscf::Prdc::Cpu::VecOp::divVV ( Array< double > & a,
Array< double > const & b,
Array< double > const & c )

Vector division, a[i] = b[i] / c[i].

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

Definition at line 141 of file VecOp.cpp.

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

Referenced by Pscf::Prdc::Cuda::VecOp::divVV(), and Pscf::Prdc::Cuda::VecOp::divVV().

◆ divVS()

void Pscf::Prdc::Cpu::VecOp::divVS ( Array< double > & a,
Array< double > const & b,
double c )

Vector division, a[i] = b[i] / c.

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

Definition at line 156 of file VecOp.cpp.

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

Referenced by Pscf::Prdc::Cuda::VecOp::divVS(), and Pscf::Prdc::Cuda::VecOp::divVS().

◆ divSV()

void Pscf::Prdc::Cpu::VecOp::divSV ( Array< double > & a,
double b,
Array< double > const & c )

Vector division, a[i] = b / c[i].

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

Definition at line 169 of file VecOp.cpp.

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

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

◆ expV()

void Pscf::Prdc::Cpu::VecOp::expV ( Array< double > & a,
Array< double > const & b )

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

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 184 of file VecOp.cpp.

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

Referenced by Pscf::Prdc::Cuda::VecOp::expV(), and Pscf::Prdc::Cuda::VecOp::expV().

◆ addEqV()

void Pscf::Prdc::Cpu::VecOp::addEqV ( Array< double > & a,
Array< double > const & b )

Vector addition in-place, a[i] += b[i].

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 199 of file VecOp.cpp.

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

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

◆ addEqS()

void Pscf::Prdc::Cpu::VecOp::addEqS ( Array< double > & a,
double b )

Vector addition in-place, a[i] += b.

Parameters
aoutput array (LHS)
binput scalar (RHS)

Definition at line 212 of file VecOp.cpp.

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

Referenced by Pscf::Prdc::Cuda::VecOp::addEqS(), Pscf::Prdc::Cuda::VecOp::addEqS(), and Pscf::Prdc::Cuda::VecOp::addEqS().

◆ subEqV()

void Pscf::Prdc::Cpu::VecOp::subEqV ( Array< double > & a,
Array< double > const & b )

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

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 227 of file VecOp.cpp.

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

Referenced by Pscf::Prdc::Cuda::VecOp::subEqV(), Pscf::Prdc::Cuda::VecOp::subEqV(), and Pscf::Prdc::Cuda::VecOp::subEqV().

◆ subEqS()

void Pscf::Prdc::Cpu::VecOp::subEqS ( Array< double > & a,
double b )

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

Parameters
aoutput array (LHS)
binput scalar (RHS)

Definition at line 240 of file VecOp.cpp.

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

Referenced by Pscf::Prdc::Cuda::VecOp::subEqS(), Pscf::Prdc::Cuda::VecOp::subEqS(), and Pscf::Prdc::Cuda::VecOp::subEqS().

◆ mulEqV()

◆ mulEqS()

◆ divEqV()

void Pscf::Prdc::Cpu::VecOp::divEqV ( Array< double > & a,
Array< double > const & b )

Vector division in-place, a[i] /= b[i].

Parameters
aoutput array (LHS)
binput array (RHS)

Definition at line 281 of file VecOp.cpp.

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

Referenced by Pscf::Prdc::Cuda::VecOp::divEqV(), and Pscf::Prdc::Cuda::VecOp::divEqV().

◆ divEqS()

void Pscf::Prdc::Cpu::VecOp::divEqS ( Array< double > & a,
double b )

Vector division in-place, a[i] /= b.

Parameters
aoutput array (LHS)
binput scalar (RHS)

Definition at line 294 of file VecOp.cpp.

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

Referenced by Pscf::Prdc::Cuda::VecOp::divEqS(), and Pscf::Prdc::Cuda::VecOp::divEqS().