6 std::cerr <<
"# [MARK] dgbmatrix::clear()"
11 std::cerr <<
"# [NOTE] dgbmatrix::clear() "
12 <<
" An array at " <<
Array
13 <<
" is going to be cleared." << std::endl;
32 std::cerr <<
"# [MARK] dgbmatrix::zero()"
36 for(
long i=0;
i<(KL+KU+1)*N;
i++){
Array[
i] =0.0; }
44 std::cerr <<
"# [MARK] dgbmatrix::identity()"
50 std::cerr <<
"[ERROR] dgbmatrix::identity()" << std::endl
51 <<
"Only square matrix can be a identity matrix." << std::endl
52 <<
"The matrix size was " << M <<
"x" << N <<
"." << std::endl;
57 for(
long i=0;
i<(KL+KU+1)*N;
i++){
Array[
i] =0.0; }
66 std::cerr <<
"# [MARK] dgbmatrix::chsign()"
77 std::cerr <<
"# [MARK] dgbmatrix::copy(const dgbmatrix&)"
82 std::cerr <<
"# [NOTE] dgbmatrix::copy(const dgbmatrix&) "
83 <<
"A dgbmatrix at " <<
Array <<
" is going to be deleted. ";
91 Array =
new double[(mat.KL+mat.KU+1)*mat.N];
93 Darray =
new double*[N];
94 for(
int i=0;
i<N;
i++){ Darray[
i] =&Array[
i*(KL+KU+1)]; }
96 dcopy_((mat.KL+mat.KU+1)*mat.N, mat.Array, 1, Array, 1);
99 std::cerr <<
"Then, a COPY of a dgbmatrix has been cleated at "
100 << Array <<
"." << std::endl;
110 std::cerr <<
"# [MARK] dgbmatrix::shallow_copy(const _dgbmatrix&)"
115 std::cerr <<
"# [NOTE] dgbmatrix::shallow_copy(const dgbmatrix&) "
116 <<
"A dgbmatrix at " <<
Array <<
" is going to be deleted "
117 <<
"and point at " << mat.
Array <<
" instead." << std::endl;
133 const long& _kl,
const long& _ku)
136 std::cerr <<
"# [MARK] dgbmatrix::resize(const long&, const long&, const long&, const long&)"
141 if( _m<0 || _n<0 || _kl<0 || _ku<0 || _m<_kl || _n<_ku ){
142 std::cerr <<
"[ERROR] dgbmatrix::resize"
143 <<
"(const long&, const long&, const long&, const long&)"
145 <<
"It is impossible to make a matrix you ordered. "
147 <<
"Your input was ("
148 << _m <<
"," << _n <<
","<< _ku <<
"," << _kl <<
")."
159 Array =
new double[(KL+KU+1)*N];
161 Darray =
new double*[N];
162 for(
int i=0;
i<N;
i++){ Darray[
i] =&
Array[
i*(KL+KU+1)]; }
170 std::cerr <<
"# [MARK] swap(dgbmatrix&, dgbmatrix&)"
174 long A_m(A.M), A_n(A.N), A_kl(A.KL), A_ku(A.KU);
175 double* A_array(A.Array);
176 double** A_darray = A.Darray;
177 A.M=B.M; A.N=B.N; A.KL=B.KL; A.KU=B.KU; A.Array=B.Array; A.Darray=B.Darray;
178 B.M=A_m; B.N=A_n; B.KL=A_kl; B.KU=A_ku; B.Array=A_array; B.Darray=A_darray;
186 std::cerr <<
"# [MARK] _(dgbmatrix&)"
196 newmat.
Array =mat.Array;
197 newmat.
Darray =mat.Darray;
double ** Darray
array of pointers of column head addresses
Definition: _dgbmatrix.hpp:12
friend _dgematrix i(const dgbmatrix &)
Definition: dgbmatrix-calc.hpp:22
long KL
lower band width
Definition: _dgbmatrix.hpp:9
void shallow_copy(const _dgbmatrix &)
Definition: dgbmatrix-misc.hpp:107
long M
matrix row size
Definition: _dgbmatrix.hpp:7
double * Array
1D Array to store vector data
Definition: _drovector.hpp:8
double & operator()(const long &, const long &)
Definition: dgbmatrix-io.hpp:3
long N
matrix column size
Definition: _dgbmatrix.hpp:8
double * Array
1D Array to store matrix data
Definition: _dgbmatrix.hpp:11
Real Double-precision General Band Matrix Class.
Definition: dgbmatrix.hpp:3
void clear()
Definition: dgbmatrix-misc.hpp:3
void identity()
Definition: dgbmatrix-misc.hpp:41
void copy(const dgbmatrix &)
Definition: dgbmatrix-misc.hpp:74
void zero()
Definition: dgbmatrix-misc.hpp:29
void chsign()
Definition: dgbmatrix-misc.hpp:63
(DO NOT USE) Smart-temporary Real Double-precision General Band Matrix Class
Definition: _dgbmatrix.hpp:3
void resize(const long &, const long &, const long &, const long &)
Definition: dgbmatrix-misc.hpp:132
long KU
upper band width
Definition: _dgbmatrix.hpp:10