17 std::complex<double> *
ptr=
nullptr;
19 ComplexArray(
const int bnd1=0,
const int bnd2=1,
const int bnd3=1,
const int bnd4=1);
25 void create(
const int bnd1=0,
const int bnd2=1,
const int bnd3=1,
const int bnd4=1);
52 void operator*=(
const std::complex <double> c);
61 std::complex <double> &operator()
62 (
const int ind1=0,
const int ind2=0,
const int ind3=0,
const int ind4=0)
64 assert(ind1>=0); assert(ind1<
bound1);
65 assert(ind2>=0); assert(ind2<
bound2);
66 assert(ind3>=0); assert(ind3<
bound3);
67 assert(ind4>=0); assert(ind4<
bound4);
73 const std::complex <double> &operator()
74 (
const int ind1=0,
const int ind2=0,
const int ind3=0,
const int ind4=0)
const
76 assert(ind1>=0); assert(ind1<
bound1);
77 assert(ind2>=0); assert(ind2<
bound2);
78 assert(ind3>=0); assert(ind3<
bound3);
79 assert(ind4>=0); assert(ind4<
bound4);
104 void init(
const int size);
141void zeros(std::complex <T> *u,
int n)
143 if (n == 0 || u == 0)
145 std::cout <<
"\n error in zeros(),n or u = 0";
149 for (
int i = 0;i < n;i++)
151 u[i] = std::complex <T> (0.0, 0.0);
A basic type of data for complex array.
Definition complexarray.h:15
int getBound1() const
Definition complexarray.h:96
std::complex< double > * ptr
Definition complexarray.h:17
int getBound3() const
Definition complexarray.h:98
ComplexArray operator-(const ComplexArray &cd)
Subtract two ComplexArray.
Definition complexarray.cpp:101
void randomize(void)
set all elements to a random number whose real/image is between [-0.5,0.5).
Definition complexarray.cpp:200
int bound2
Definition complexarray.h:103
int getBound4() const
Definition complexarray.h:99
~ComplexArray()
Definition complexarray.cpp:22
void freemem()
Definition complexarray.cpp:33
int bound3
Definition complexarray.h:103
void negate(void)
Negates all the entries in the array.
Definition complexarray.cpp:195
void create(const int bnd1=0, const int bnd2=1, const int bnd3=1, const int bnd4=1)
Definition complexarray.cpp:41
ComplexArray operator*(const double r)
Scale a ComplexArray by real r.
Definition complexarray.cpp:126
int bound1
Definition complexarray.h:103
void zero_out(void)
set all elements to be {0.0,0.0}
Definition complexarray.cpp:190
void operator-=(const ComplexArray &cd)
Accumulate difference of arrays.
Definition complexarray.cpp:108
bool operator!=(const ComplexArray &cd2) const
Judge if two ComplexArray is not equal.
Definition complexarray.cpp:172
bool operator==(const ComplexArray &cd2) const
Judge if two ComplexArray is equal.
Definition complexarray.cpp:154
ComplexArray & operator=(ComplexArray &&cd)
Definition complexarray.cpp:70
void init(const int size)
Definition complexarray.cpp:25
int getBound2() const
Definition complexarray.h:97
void operator+=(const ComplexArray &cd)
Accumulate sum of ComplexArray.
Definition complexarray.cpp:95
ComplexArray operator+(const ComplexArray &cd)
Add two ComplexArray.
Definition complexarray.cpp:88
int getSize() const
Definition complexarray.h:100
void operator*=(const double r)
Scale a ComplexArray by real number in place.
Definition complexarray.cpp:149
int bound4
Definition complexarray.h:103
Definition array_pool.h:6
std::complex< double > dot(const ComplexArray &cd1, const ComplexArray &cd2)
Take "dot-product" of two ComplexArray: sum of cd1(conjugate)[i] * cd2[i].
Definition complexarray.cpp:218
ComplexArray operator*(const double r, const ComplexArray &cd)
Scale a ComplexArray cd by real r.
Definition complexarray.cpp:120
double abs2(const ComplexArray &cd)
Sum of absolute squares of all elements in cd.
Definition complexarray.cpp:206
void zeros(std::complex< T > *u, int n)
set elements of u as zero which u is 1_d std::complex array
Definition complexarray.h:141
void point_mult(ComplexArray &in1, ComplexArray &in2, ComplexArray &out)
out[i] = a1[i] * in2[i]
Definition complexarray.cpp:254
void scaled_sum(double r1, const ComplexArray &cd1, double r2, const ComplexArray &cd2, ComplexArray &cd3)
Does cd3 = r1*cd1 + r2*cd2.
Definition complexarray.cpp:241
void scale_accumulate(double r, const ComplexArray &cd1, ComplexArray &cd2)
Does cd2 += r * cd1.
Definition complexarray.cpp:229