20 const CPPL_INT size =(
kl+
ku+1)*
n;
21 for(CPPL_INT
i=0;
i<size;
i++){
34 std::cerr <<
"Only square matrix can be a identity matrix." << std::endl
35 <<
"The matrix size was " <<
m <<
"x" <<
n <<
"." << std::endl;
40 const CPPL_INT size =(
kl+
ku+1)*
n;
41 for(CPPL_INT
i=0;
i<size;
i++){
44 for(CPPL_INT
i=0;
i<
m;
i++){
54 const CPPL_INT size =(
kl+
ku+1)*
n;
55 for(CPPL_INT
i=0;
i<size;
i++){
71 for(
int i=0;
i<
n;
i++){
75 CPPL_INT size =(mat.
kl+mat.
ku+1)*mat.
n;
100 const CPPL_INT& _kl,
const CPPL_INT& _ku)
101 {CPPL_VERBOSE_REPORT;
103 if( _m<0 || _n<0 || _kl<0 || _ku<0 || _m<_kl || _n<_ku ){
105 std::cerr <<
"It is impossible to make a matrix you ordered. " << std::endl
106 <<
"Your input was (" << _m <<
"," << _n <<
","<< _ku <<
"," << _kl <<
")." << std::endl;
118 darray =
new double*[
n];
131 {CPPL_VERBOSE_REPORT;
135 std::cerr <<
"Input row number must be between 0 and " << m <<
"." << std::endl
136 <<
"Your input was " << _m <<
"." << std::endl;
143 const CPPL_INT jmax =std::min(
n,_m+
ku+1);
144 for(CPPL_INT j=std::max(CPPL_INT(0),_m-
kl); j<jmax; j++){
154 {CPPL_VERBOSE_REPORT;
158 std::cerr <<
"Input row number must be between 0 and " << n <<
"." << std::endl
159 <<
"Your input was " << _n <<
"." << std::endl;
166 const CPPL_INT imax =std::min(
m,_n+
kl+1);
167 for(CPPL_INT
i=std::max(CPPL_INT(0),_n-
ku);
i<imax;
i++){
181 {CPPL_VERBOSE_REPORT;
182 CPPL_INT A_m =A.
m, A_n =A.
n, A_kl =A.
kl, A_ku =A.
ku;
183 double* A_array =A.
array;
184 double** A_darray=A.
darray;
192 {CPPL_VERBOSE_REPORT;
friend _dgematrix i(const dgbmatrix &)
CPPL_INT m
matrix row size
friend _dgbmatrix _(dgbmatrix &)
double ** darray
array of pointers of column head addresses
_dgbmatrix _(dgbmatrix &mat)
CPPL_INT ku
upper band width
double ** darray
array of pointers of column head addresses
void shallow_copy(const _dgbmatrix &)
CPPL_INT kl
lower band width
CPPL_INT kl
lower band width
CPPL_INT ku
upper band width
double * array
1D array to store matrix data
_dcovector col(const CPPL_INT &) const
CPPL_INT n
matrix column size
Real Double-precision Row Vector Class.
(DO NOT USE) Smart-temporary Real Double-precision Row Vector Class
dgbmatrix & resize(const CPPL_INT &, const CPPL_INT &, const CPPL_INT &, const CPPL_INT &)
Real Double-precision General Band Matrix Class.
_drovector row(const CPPL_INT &) const
double * array
1D array to store matrix data
void swap(dgbmatrix &A, dgbmatrix &B)
void copy(const dgbmatrix &)
(DO NOT USE) Smart-temporary Real Double-precision General Band Matrix Class
Real Double-precision Column Vector Class.
double & operator()(const CPPL_INT &, const CPPL_INT &)
CPPL_INT n
matrix column size
(DO NOT USE) Smart-temporary Real Double-precision Column Vector Class
CPPL_INT m
matrix row size