10#include <util/containers/Array.h>
22 const int beginIdA,
const int beginIdB,
const int n)
29 for (
int i = 0; i < n; ++i) {
30 a[i + beginIdA] = b[i + beginIdB];
42 for (
int i = 0; i < n; ++i) {
54 for (
int i = 0; i < n; ++i) {
71 for (
int i = 0; i < n; ++i) {
85 for (
int i = 0; i < n; ++i) {
102 for (
int i = 0; i < n; ++i) {
115 for (
int i = 0; i < n; ++i) {
132 for (
int i = 0; i < n; ++i) {
145 for (
int i = 0; i < n; ++i) {
162 for (
int i = 0; i < n; ++i) {
175 for (
int i = 0; i < n; ++i) {
188 for (
int i = 0; i < n; ++i) {
203 for (
int i = 0; i < n; ++i) {
215 for (
int i = 0; i < n; ++i) {
230 for (
int i = 0; i < n; ++i) {
242 for (
int i = 0; i < n; ++i) {
257 for (
int i = 0; i < n; ++i) {
269 for (
int i = 0; i < n; ++i) {
284 for (
int i = 0; i < n; ++i) {
296 for (
int i = 0; i < n; ++i) {
311 for (
int i = 0; i < n; ++i) {
324 for (
int i = 0; i < n; ++i) {
339 for (
int i = 0; i < n; ++i) {
354 for (
int i = 0; i < n; ++i) {
355 a[i] = std::abs(b[i]);
372 for (
int i = 0; i < n; ++i) {
373 a[i] = b1[i]*c1 + b2[i]*c2;
387 for (
int i = 0; i < n; ++i) {
401 for (
int i = 0; i < n; ++i) {
418 for (
int i = 0; i < n; ++i) {
419 a[i] = b1[i]*c1 + b2[i]*c2 + s;
436 for (
int i = 0; i < n; ++i) {
437 a[i] = b1[i]*c1 + b2[i]*c2 + b3[i]*c3;
454 for (
int i = 0; i < n; ++i) {
475 for (
int i = 0; i < n; ++i) {
492 for (
int i = 0; i < n; ++i) {
Array container class template.
int capacity() const
Return allocated size.
#define UTIL_CHECK(condition)
Assertion macro suitable for serial or parallel production code.
void divEqS(Array< double > &a, double b)
Vector-scalar in-place division, a[i] /= b.
void addEqV(Array< double > &a, Array< double > const &b)
Vector-vector in-place addition, a[i] += b[i] (real).
void divEqV(Array< double > &a, Array< double > const &b)
Vector-vector in-place division, a[i] /= b[i].
void addEqS(Array< double > &a, double b)
Vector-scalar in-place addition, a[i] += b (real).
void sqV(Array< double > &a, Array< double > const &b)
Vector element-wise square, a[i] = b[i]*b[i] (real).
void mulEqV(Array< double > &a, Array< double > const &b)
Vector-vector in-place multiplication, a[i] *= b[i] (real).
void eqV(Array< double > &a, Array< double > const &b, const int beginIdA, const int beginIdB, const int n)
Vector assignment, a[i] = b[i] (real, slice).
void mulEqS(Array< double > &a, double b)
Vector-scalar in-place multiplication, a[i] *= b (real).
void subVV(Array< double > &a, Array< double > const &b, Array< double > const &c)
Vector-vector subtraction, a[i] = b[i] - c[i] (real)
void absV(Array< double > &a, Array< double > const &b)
Element-wise absolute magnitude, a[i] = abs(b[i]) (real).
void expV(Array< double > &a, Array< double > const &b)
Vector exponentiation, a[i] = exp(b[i]) (real).
void divVS(Array< double > &a, Array< double > const &b, double c)
Vector-scalar division, a[i] = b[i] / c (real).
void expVc(Array< double > &a, Array< double > const &b, const double c)
Exponentiation a scaled vector, a[i] = exp(b[i]*c) (real).
void eqS(Array< double > &a, double b)
Vector assignment, a[i] = b (real).
void mulVV(Array< double > &a, Array< double > const &b, Array< double > const &c)
Vector-vector multiplication, a[i] = b[i] * c[i] (real).
void subVS(Array< double > &a, Array< double > const &b, double c)
Vector-scalar subtraction, a[i] = b[i] - c (real).
void subEqV(Array< double > &a, Array< double > const &b)
Vector-vector in-place subtraction, a[i] -= b[i] (real).
void addVV(Array< double > &a, Array< double > const &b, Array< double > const &c)
Vector-vector addition, a[i] = b[i] + c[i] (real)
void divSV(Array< double > &a, double b, Array< double > const &c)
Vector division, a[i] = b / c[i].
void addVS(Array< double > &a, Array< double > const &b, double c)
Vector-scalar addition, a[i] = b[i] + c (real).
void divVV(Array< double > &a, Array< double > const &b, Array< double > const &c)
Vector-vector division, a[i] = b[i] / c[i] (real).
void subEqS(Array< double > &a, double b)
Vector-scalar subtraction in-place, a[i] -= b (real).
void addEqVc(Array< double > &a, Array< double > const &b, const double c)
Add scaled vector in-place, a[i] += b[i]*c (real).
void mulVS(Array< double > &a, Array< double > const &b, double c)
Vector-scalar multiplication, a[i] = b[i] * c (real).
void mulVVPair(Array< double > &a1, Array< double > &a2, Array< double > const &b1, Array< double > const &b2, Array< double > const &c)
Vector multiplication in pairs, ax[i] = bx[i] * s[i], x=1,2.
void eqVPair(Array< double > &a1, Array< double > &a2, Array< double > const &b)
Vector assignment in pairs, ax[i] = b[i], x = 1, 2.
void mulEqVPair(Array< double > &a1, Array< double > &a2, Array< double > const &b)
In-place vector multiplication in pairs, ax[i] *= b[i], x=1,2.
Vector operations on GPU or CPU.
void addVcVcS(Array< double > &a, Array< double > const &b1, const double c1, Array< double > const &b2, const double c2, const double s)
Add scaled vectors + scalar, a[i] = b1[i]*c1 + b2[2]*c2 + s (real).
void addVcS(Array< double > &a, Array< double > const &b, const double c, const double s)
Add a scaled vector and a scalar, a[i] = b[i]*c + s (real).
void addVcVc(Array< double > &a, Array< double > const &b1, const double c1, Array< double > const &b2, const double c2)
Add two scaled vectors, a[i] = b1[i]*c1 + b2[2]*c2 (real).
void addVcVcVc(Array< double > &a, Array< double > const &b1, const double c1, Array< double > const &b2, const double c2, Array< double > const &b3, const double c3)
Add scaled vectors, a[i] = b1[i]*c1 + b2[i]*c2 + b3[i]*c3 (real).
PSCF package top-level namespace.