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);
const std::complex< double > i
Definition cal_pLpR.cpp:46
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
void randomize(void)
set all elements to a random number whose real/image is between [-0.5,0.5).
Definition complexarray.cpp:327
ComplexArray operator-(const ComplexArray &cd) const
Subtract two ComplexArray.
Definition complexarray.cpp:144
int bound2
Definition complexarray.h:103
int getBound4() const
Definition complexarray.h:99
~ComplexArray()
Definition complexarray.cpp:26
void freemem()
Definition complexarray.cpp:43
int bound3
Definition complexarray.h:103
void negate(void)
Negates all the entries in the array.
Definition complexarray.cpp:319
void create(const int bnd1=0, const int bnd2=1, const int bnd3=1, const int bnd4=1)
Definition complexarray.cpp:52
int bound1
Definition complexarray.h:103
ComplexArray operator*(const double r) const
Scale a ComplexArray by real r.
Definition complexarray.cpp:183
void zero_out(void)
set all elements to be {0.0,0.0}
Definition complexarray.cpp:311
void operator-=(const ComplexArray &cd)
Accumulate difference of arrays.
Definition complexarray.cpp:155
bool operator!=(const ComplexArray &cd2) const
Judge if two ComplexArray is not equal.
Definition complexarray.cpp:270
ComplexArray operator+(const ComplexArray &cd) const
Add two ComplexArray.
Definition complexarray.cpp:124
bool operator==(const ComplexArray &cd2) const
Judge if two ComplexArray is equal.
Definition complexarray.cpp:229
ComplexArray & operator=(ComplexArray &&cd)
Definition complexarray.cpp:91
void init(const int size)
Definition complexarray.cpp:30
int getBound2() const
Definition complexarray.h:97
void operator+=(const ComplexArray &cd)
Accumulate sum of ComplexArray.
Definition complexarray.cpp:135
int getSize() const
Definition complexarray.h:100
void operator*=(const double r)
Scale a ComplexArray by real number in place.
Definition complexarray.cpp:221
int bound4
Definition complexarray.h:103
Definition clebsch_gordan_coeff.cpp:8
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:352
ComplexArray operator*(const double r, const ComplexArray &cd)
Scale a ComplexArray cd by real r.
Definition complexarray.cpp:173
double abs2(const ComplexArray &cd)
Sum of absolute squares of all elements in cd.
Definition complexarray.cpp:336
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:405
void scaled_sum(double r1, const ComplexArray &cd1, double r2, const ComplexArray &cd2, ComplexArray &cd3)
Does cd3 = r1*cd1 + r2*cd2.
Definition complexarray.cpp:385
void scale_accumulate(double r, const ComplexArray &cd1, ComplexArray &cd2)
Does cd2 += r * cd1.
Definition complexarray.cpp:367