#include "full-storage.icc"
int
-Diagonal_storage::dim()const
+Diagonal_storage::dim() const
{
return band_.rows();
}
}
int
-Diagonal_storage::band_size_i()const
+Diagonal_storage::band_size_i() const
{
return (band_.cols()-1)/2;
}
bool
-Diagonal_storage::band_elt_b (int i,int j)const
+Diagonal_storage::band_elt_b (int i,int j) const
{
return abs (i-j) <= band_size_i();
}
void
-Diagonal_storage::assert_valid (int i,int j)const
+Diagonal_storage::assert_valid (int i,int j) const
{
assert (band_elt_b (i,j));
assert (i >=0 && j >=0 && i < dim() && j < dim ());
bool
-Diagonal_storage::mult_ok (int i,int)const
+Diagonal_storage::mult_ok (int i,int) const
{
return i < dim();
}
void
-Diagonal_storage::mult_next (int &i, int &j)const
+Diagonal_storage::mult_next (int &i, int &j) const
{
j++;
if ( j < i - band_size_i())
}
bool
-Diagonal_storage::trans_ok (int ,int j)const
+Diagonal_storage::trans_ok (int ,int j) const
{
return j < dim();
}
void
-Diagonal_storage::trans_next (int &i, int& j)const
+Diagonal_storage::trans_next (int &i, int& j) const
{
i++;
if ( i < j - band_size_i())
static Real nul_entry=0.0;
Real
-Diagonal_storage::elem (int i, int j)const
+Diagonal_storage::elem (int i, int j) const
{
if (abs ( i-j) > band_size_i())
return 0;
bool
Diagonal_storage::try_right_multiply (Matrix_storage*dest,
- const Matrix_storage*right)const
+ const Matrix_storage*right) const
{
if ( right->name() != Diagonal_storage::static_name ())
return false;