6 std::cerr <<
"# [MARK] zgematrix::operator=(const _zgematrix&)"
23 std::cerr <<
"# [MARK] zgematrix::operator+=(const _zgematrix&)"
28 if(N!=mat.
N || M!=mat.
M){
29 std::cerr <<
"[ERROR] zgematrix::operator+=(_zgematrix&)" << std::endl
30 <<
"These two matrises can not make a summation." << std::endl
31 <<
"Your input was (" << M <<
"x" << N <<
") += ("
32 << mat.
M <<
"x" << mat.
N <<
")." << std::endl;
48 std::cerr <<
"# [MARK] zgematrix::operator-=(const _zgematrix&)"
53 if(N!=mat.
N || M!=mat.
M){
54 std::cerr <<
"[ERROR] zgematrix::operator-=(_zgematrix&)" << std::endl
55 <<
"These two matrises can not make a sutraction." << std::endl
56 <<
"Your input was (" << M <<
"x" << N <<
") -= ("
57 << mat.
M <<
"x" << mat.
N <<
")." << std::endl;
73 std::cerr <<
"# [MARK] zgematrix::operator*=(const _zgematrix&)"
79 std::cerr <<
"[ERROR] zgematrix::operator*=(_zgematrix&)" << std::endl
80 <<
"These two matrises can not make a product." << std::endl
81 <<
"Your input was (" << M <<
"x" << N <<
") *= ("
82 << mat.
M <<
"x" << mat.
N <<
")." << std::endl;
88 zgemm_(
'N',
'N', M, mat.
N, N, std::complex<double>(1.0,0.0),
Array, M,
89 mat.
Array, mat.
M, std::complex<double>(0.0,0.0), newmat.array, M );
105 std::cerr <<
"# [MARK] operator+(const zgematrix&, const _zgematrix&)"
110 if(matA.N!=matB.
N || matA.M!=matB.
M){
111 std::cerr <<
"[ERROR] operator+(zgematrix&, _zgematrix&)" << std::endl
112 <<
"These two matrises can not make a summation." << std::endl
113 <<
"Your input was (" << matA.M <<
"x" << matA.N <<
") + ("
114 << matB.
M <<
"x" << matB.
N <<
")." << std::endl;
119 for(
long i=0; i<matA.M*matA.N; i++){ matB.
Array[i] +=matA.Array[i]; }
129 std::cerr <<
"# [MARK] operator-(const zgematrix&, const _zgematrix&)"
134 if(matA.N!=matB.
N || matA.M!=matB.
M){
135 std::cerr <<
"[ERROR] operator-(zgematrix&, _zgematrix&)" << std::endl
136 <<
"These two matrises can not make a subtraction." << std::endl
137 <<
"Your input was (" << matA.M <<
"x" << matA.N <<
") - ("
138 << matB.
M <<
"x" << matB.
N <<
")." << std::endl;
143 for(
long i=0; i<matA.M*matA.N; i++){
155 std::cerr <<
"# [MARK] operator*(const zgematrix&, const _zgematrix&)"
161 std::cerr <<
"[ERROR] operator*(zgematrix&, _zgematrix&)" << std::endl
162 <<
"These two matrises can not make a product." << std::endl
163 <<
"Your input was (" << matA.M <<
"x" << matA.N <<
") * ("
164 << matB.
M <<
"x" << matB.
N <<
")." << std::endl;
170 zgemm_(
'N',
'N', matA.M, matB.
N, matA.N, std::complex<double>(1.0,0.0),
171 matA.Array, matA.M, matB.
Array, matB.
M,
172 std::complex<double>(0.0,0.0), newmat.array, matA.M );
void shallow_copy(const _zgematrix &)
Definition: zgematrix-misc.hpp:103
long N
matrix column size
Definition: _zgematrix.hpp:8
zgematrix & operator-=(const zgematrix &)
Definition: zgematrix-zgematrix.hpp:45
friend _zrovector operator-(const _zrovector &)
Definition: _zrovector-unary.hpp:15
zgematrix & operator=(const zgematrix &)
Definition: zgematrix-zgematrix.hpp:3
friend _zgematrix i(const zgematrix &)
Definition: zgematrix-calc.hpp:21
zgematrix & operator*=(const zgematrix &)
Definition: zgematrix-zgematrix.hpp:68
Complex Double-precision General Dence Matrix Class.
Definition: zgematrix.hpp:3
(DO NOT USE) Smart-temporary Complex Double-precision General Dence Matrix Class
Definition: _zgematrix.hpp:3
void destroy() const
Definition: _zgematrix-misc.hpp:3
std::complex< double > * Array
1D Array to store matrix data
Definition: _zgematrix.hpp:9
friend _zrovector operator*(const zrovector &, const zgematrix &)
Definition: zrovector-zgematrix.hpp:3
long M
matrix row size
Definition: _zgematrix.hpp:7
zgematrix & operator+=(const zgematrix &)
Definition: zgematrix-zgematrix.hpp:22
friend void swap(zgematrix &, zgematrix &)
Definition: zgematrix-misc.hpp:154
friend const _zrovector & operator+(const _zrovector &)
Definition: _zrovector-unary.hpp:3
std::complex< double > * Array
1D Array to store vector data
Definition: _zrovector.hpp:8