@@ -42,25 +42,31 @@ class ComplexArray
4242 ComplexArray operator -(const ComplexArray &cd);
4343 void operator -=(const ComplexArray &cd);
4444 ComplexArray operator *(const double r);
45- ComplexArray operator *(const std::complex < double > c);
45+ ComplexArray operator *(const std::complex <double > c);
4646 void operator *=(const double r);
47- void operator *=(const std::complex < double > c);
47+ void operator *=(const std::complex <double > c);
4848
4949 void operator *=(const ComplexArray &in);
5050 bool operator == (const ComplexArray &cd2)const ;
5151 bool operator != (const ComplexArray &cd2)const ;
5252
5353 // subscript operator
54- std::complex < double > &operator ()
54+ std::complex <double > &operator ()
5555 (const int ind1=0 , const int ind2=0 , const int ind3=0 , const int ind4=0 );
5656// std::complex < double> &operator()(int, int, int, int, int);
5757
58- const std::complex < double > &operator ()
58+ const std::complex <double > &operator ()
5959 (const int ind1=0 , const int ind2=0 , const int ind3=0 , const int ind4=0 )const ;
6060// const std::complex < double> &operator()(int, int, int, int, int)const;
6161
62+ // set all elements to be {0.0,0.0}
6263 void zero_out (void );
64+
65+ // Multiply all elements by -1
6366 void negate (void );
67+
68+ // set all elements to a random number whose real/image
69+ // is between [-0.5,0.5).
6470 void randomize (void );// uniform distribution
6571
6672// void write(char *fname);
@@ -81,25 +87,36 @@ class ComplexArray
8187};
8288
8389ComplexArray operator *(double r, const ComplexArray &cd);
84- ComplexArray operator *(std::complex < double > c, const ComplexArray &cd);
90+ ComplexArray operator *(std::complex <double > c, const ComplexArray &cd);
8591
92+ // Sum of absolute squares of all elements in cd
8693double abs2 (const ComplexArray &cd);
8794
95+
8896void
89- add_scale_abs2 (const std::complex < double > &c, const ComplexArray & in,
97+ add_scale_abs2 (const std::complex <double > &c, const ComplexArray & in,
9098 ComplexArray &out);
9199
92- std::complex < double > dot (const ComplexArray &cd1, const ComplexArray &cd2);
100+ // Take "dot-product" of two ComplexArray: sum of cd1(conjugate)[i] * cd2[i]
101+ std::complex <double > dot (const ComplexArray &cd1, const ComplexArray &cd2);
102+
103+ /* Does cd2 += r * cd1 */
93104void scale_accumulate (double r, const ComplexArray &cd1, ComplexArray &cd2);
94- void scale_accumulate (std::complex < double > c, const ComplexArray &cd1, ComplexArray &cd2);
105+
106+ /* Does cd2 += c * cd1 */
107+ void scale_accumulate (std::complex <double > c, const ComplexArray &cd1, ComplexArray &cd2);
108+
109+ /* Does cd3 = r1*cd1 + r2*cd2 */
95110void scaled_sum (double r1, const ComplexArray &cd1,
96111 double r2, const ComplexArray &cd2,
97112 ComplexArray &cd3);
98113
99- void scaled_sum (double r1, ComplexArray &cd1,
100- double r2, ComplexArray &cd2,
101- ComplexArray &cd3);
114+ /* Does cd3 = c1*cd1 + c2*cd2 */
115+ void scaled_sum (std::complex <double > c1, const ComplexArray &cd1,
116+ std::complex <double > c2, const ComplexArray &cd2,
117+ ComplexArray &cd3);
102118
119+ // out[i] = a1[i] * in2[i]
103120void point_mult (ComplexArray &a1, ComplexArray &in2, ComplexArray &out);
104121
105122// set elements of u as zero which u is 1_d std::complex array
0 commit comments