4#include <util/containers/Array.h>
15 template <
typename T>
class Array;
60 void eqV(Array<double>& a, Array<double>
const & b);
68 void eqS(Array<double>& a,
double b);
79 void addVV(Array<double>& a, Array<double>
const & b,
80 Array<double>
const & c);
89 void addVS(Array<double>& a, Array<double>
const & b,
double c);
100 void subVV(Array<double>& a,
101 Array<double>
const & b, Array<double>
const & c);
110 void subVS(Array<double>& a, Array<double>
const & b,
double c);
121 void mulVV(Array<double>& a,
122 Array<double>
const & b, Array<double>
const & c);
131 void mulVS(Array<double>& a, Array<double>
const & b,
double c);
142 void divVV(Array<double>& a,
143 Array<double>
const & b, Array<double>
const & c);
152 void divVS(Array<double>& a, Array<double>
const & b,
double c);
161 void divSV(Array<double>& a,
double b, Array<double>
const & c);
171 void expV(Array<double>& a, Array<double>
const & b);
182 void addEqV(Array<double>& a, Array<double>
const & b);
190 void addEqS(Array<double>& a,
double b);
200 void subEqV(Array<double>& a, Array<double>
const & b);
208 void subEqS(Array<double>& a,
double b);
218 void mulEqV(Array<double>& a, Array<double>
const & b);
226 void mulEqS(Array<double>& a,
double b);
236 void divEqV(Array<double>& a, Array<double>
const & b);
244 void divEqS(Array<double>& a,
double b);
Array container class template.
Functions that perform element-wise vector operations on the Cpu.
void subVV(Array< double > &a, Array< double > const &b, Array< double > const &c)
Vector subtraction, a[i] = b[i] - c[i].
void divSV(Array< double > &a, double b, Array< double > const &c)
Vector division, a[i] = b / c[i].
void mulEqV(Array< double > &a, Array< double > const &b)
Vector multiplication in-place, a[i] *= b[i].
void addEqV(Array< double > &a, Array< double > const &b)
Vector addition in-place, a[i] += b[i].
void eqV(Array< double > &a, Array< double > const &b)
Vector assignment, a[i] = b[i].
void mulVS(Array< double > &a, Array< double > const &b, double c)
Vector multiplication, a[i] = b[i] * c.
void divEqS(Array< double > &a, double b)
Vector division in-place, a[i] /= b.
void addEqS(Array< double > &a, double b)
Vector addition in-place, 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 subVS(Array< double > &a, Array< double > const &b, double c)
Vector subtraction, a[i] = b[i] - c.
void divEqV(Array< double > &a, Array< double > const &b)
Vector division in-place, a[i] /= b[i].
void mulEqS(Array< double > &a, double b)
Vector multiplication in-place, a[i] *= b.
void divVS(Array< double > &a, Array< double > const &b, double c)
Vector division, 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 eqS(Array< double > &a, double b)
Vector assignment, a[i] = b.
void addVS(Array< double > &a, Array< double > const &b, double c)
Vector addition, 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 subEqV(Array< double > &a, Array< double > const &b)
Vector subtraction in-place, a[i] -= b[i].
void expV(Array< double > &a, Array< double > const &b)
Vector exponentiation, a[i] = exp(b[i]).
void subEqS(Array< double > &a, double b)
Vector subtraction in-place, a[i] -= b.
Fields and FFTs for periodic boundary conditions (CPU)
Periodic fields and crystallography.
PSCF package top-level namespace.
Utility classes for scientific computation.