6 if( i<0 || j<0 ||
m<=i ||
n<=j ){
8 std::cerr <<
"The required component is out of the matrix size." << std::endl
9 <<
"Your input is (" << i <<
"," << j <<
"), whereas the matrix size is " <<
m <<
"x" <<
n <<
"." << std::endl;
17 for(
int k=k_beg; k<k_end; k++){
32 if( i<0 || j<0 ||
m<=i ||
n<=j ){
34 std::cerr <<
"The required component is out of the matrix size." << std::endl
35 <<
"Your input is (" << i <<
"," << j <<
"), whereas the matrix size is " <<
m <<
"x" <<
n <<
"." << std::endl;
43 for(
int k=k_beg; k<k_end; k++){
51 std::cerr <<
"dgrmatrix does not allow component addition with operator()." << std::endl;
62 for(CPPL_INT
i=0;
i<mat.
m;
i++){
63 int k_beg =mat.
ia[
i]-1;
64 int k_end =mat.
ia[
i+1]-1;
66 for(
int k=k_beg; k<k_end; k++){
68 for(; j<mat.
ja[k]-1; j++){
91 std::ofstream ofs(filename, std::ios::trunc);
92 ofs.setf(std::cout.flags());
93 ofs.precision(std::cout.precision());
94 ofs.width(std::cout.width());
95 ofs.fill(std::cout.fill());
97 ofs <<
"#dgrmatrix" <<
" " <<
m <<
" " <<
n <<
" " <<
a.size() << std::endl;
99 size_t a_size =
a.size();
100 for(
size_t k=0; k<a_size; k++){
105 size_t ia_size =
ia.size();
106 for(
size_t k=0; k<ia_size; k++){
111 size_t ja_size =
ja.size();
112 for(
size_t k=0; k<ja_size; k++){
115 ofs <<
"\n" << std::flush;
122 {CPPL_VERBOSE_REPORT;
123 std::ifstream s( filename );
126 std::cerr <<
"The file \"" << filename <<
"\" can not be opened." << std::endl;
132 if(
id !=
"dgrmatrix" &&
id !=
"#dgrmatrix" ){
134 std::cerr <<
"The type name of the file \"" << filename <<
"\" is not dgrmatrix." << std::endl
135 <<
"Its type name was " <<
id <<
" ." << std::endl;
141 s >>
m >>
n >> a_size;
146 for(
size_t k=0; k<a_size; k++){
153 for(CPPL_INT k=0; k<=
m; k++){
160 for(
size_t k=0; k<a_size; k++){
172 std::cerr <<
"There is something is wrong with the file \"" << filename <<
" ." << std::endl;
std::ostream & operator<<(std::ostream &s, const dgrmatrix &mat)
std::vector< double > a
matrix component values
void write(const char *) const
std::vector< CPPL_INT > ia
rowIndex (NOT zero-based BUT one-based indexing)
_dgematrix i(const _dgbmatrix &mat)
CPPL_INT n
matrix column size
CPPL_INT m
matrix row size
double operator()(const CPPL_INT &, const CPPL_INT &) const
std::vector< CPPL_INT > ja
columns (NOT zero-based BUT one-based indexing)
Real Double-precision General Compressed Sparse Row (CSR) Matrix Class.