11 inline HepDiagMatrix::HepDiagMatrix()
15 inline int HepDiagMatrix::num_row()
const {
return nrow;}
16 inline int HepDiagMatrix::num_col()
const {
return nrow;}
17 inline int HepDiagMatrix::num_size()
const {
return nrow;}
19 inline double & HepDiagMatrix::fast(
int row,
int col)
21 #ifdef MATRIX_BOUND_CHECK 22 if (row<1 || row>nrow || col<1 || col>nrow)
23 error(
"Range error in HepDiagMatrix::fast()");
26 error(
"Index error in HepDiagMatrix::fast(i,j): i != j");
28 return *(m.begin()+(col-1));
31 inline const double & HepDiagMatrix::fast(
int row,
int col)
const 33 #ifdef MATRIX_BOUND_CHECK 34 if (row<1 || row>nrow || col<1 || col>nrow)
35 error(
"Range error in HepDiagMatrix::fast()");
38 return *(m.begin()+(col-1));
40 #if defined(__sun) || !defined(__GNUG__) 50 inline double & HepDiagMatrix::operator()(
int row,
int col)
55 inline const double & HepDiagMatrix::operator()(
int row,
int col)
const 60 inline void HepDiagMatrix::assign(
const HepDiagMatrix &hm2) {(*this)=hm2;}
62 inline HepDiagMatrix HepDiagMatrix::T()
const {
return HepDiagMatrix(*
this);}
64 inline HepDiagMatrix::HepDiagMatrix_row HepDiagMatrix::operator[] (
int r)
65 #ifdef HEP_GNU_OPTIMIZED_RETURN 70 HepDiagMatrix_row b(*
this,r);
75 inline HepDiagMatrix::HepDiagMatrix_row_const HepDiagMatrix::operator[] (
int r)
const 76 #ifdef HEP_GNU_OPTIMIZED_RETURN 81 const HepDiagMatrix_row_const b(*
this,r);
86 inline double &HepDiagMatrix::HepDiagMatrix_row::operator[](
int c)
88 return _a.fast(_r+1, c+1);
92 HepDiagMatrix::HepDiagMatrix_row_const::operator[](
int c)
const 94 return _a.fast(_r+1,c+1);
97 inline HepDiagMatrix::HepDiagMatrix_row::HepDiagMatrix_row
98 (HepDiagMatrix& a,
int r)
102 inline HepDiagMatrix::HepDiagMatrix_row_const::HepDiagMatrix_row_const
103 (
const HepDiagMatrix& a,
int r)
107 inline HepDiagMatrix HepDiagMatrix::inverse(
int &ierr)
const 108 #ifdef HEP_GNU_OPTIMIZED_RETURN 113 HepDiagMatrix mTmp(*
this);
119 inline HepDiagMatrix HepDiagMatrix::inverse()
const {
121 HepDiagMatrix mt=inverse(ierr);
122 if (ierr)
throw std::runtime_error(
"Error in HepDiagMatrix inversion");
126 inline void HepDiagMatrix::invert() {
129 if (ierr)
throw std::runtime_error(
"Error in HepDiagMatrix inversion");