37     inline void PutDim(
size_t nRows,
size_t nCols)
    42     inline void inic(
size_t n_rows,
size_t n_columns)
    43       { PutDim(n_rows,n_columns); }
    44     inline virtual bool check_range(
const size_t &iRow,
const size_t &col)
 const    45       { 
return ((iRow<=n_rows) && (col<=n_columns)); }
    46     inline void check_put_box(
size_t f,
size_t c,
const ProtoMatrix &box)
 const    48         if(((f+box.getNumberOfRows())>(n_rows+1)) || ((c+box.getNumberOfColumns())>(n_columns+1)))
    49           std::cerr << __FUNCTION__
    50                 << 
"; indices out of range." << std::endl;
    52     inline void check_get_box(
size_t f1, 
size_t c1, 
size_t f2, 
size_t c2)
 const    54         if ( (f2 < f1) || (c2 < c1) )
    55           std::cerr << 
"Erroneous indexes in "    56                 << __FUNCTION__ << 
" function." << std::endl;
    58     inline void check_sto_sum(
const ProtoMatrix &m)
 const    60         if (!CompDim(*
this,m))
    61           std::cerr << 
"Matrices de dimensiones distintas en operador += " << std::endl
    62                     << 
"  this: " << 
" (" << n_rows << 
'x' << n_columns << 
')' << std::endl
    63                     << 
"  m= " << 
" (" << m.n_rows << 
'x' << m.n_columns << 
')' << std::endl;
    65     inline void check_sto_dif(
const ProtoMatrix &m)
 const    67         if (!CompDim(*
this,m))
    68           std::cerr << 
"Matrices de dimensiones distintas en operador -="  << std::endl
    69                     << 
"  this: " << 
" (" << n_rows << 
'x' << n_columns << 
')' << std::endl
    70                     << 
"  m= " << 
" (" << m.n_rows << 
'x' << m.n_columns << 
')' << std::endl;
    72     inline void check_traza(
void)
 const    75           std::cerr << 
"Not a square matrix." << std::endl;
    80           std::cerr << 
"First matrix of scalar product is not a row matrix."    83           std::cerr << 
"Second matrix of scalar product is not a column matrix."    85         if (v1.n_columns != v2.n_rows)
    86           std::cerr << 
"Matrices de dimensiones incompatibles en producto escalar."    87                     << 
"  m1= " << v1 << 
" (" << v1.n_rows << 
'x' << v1.n_columns << 
')' << std::endl
    88                     << 
"  m2= " << v2 << 
" (" << v2.n_rows << 
'x' << v2.n_columns << 
')'    96             std::cerr << 
"Matrices de dimensiones distintas en operador +"    106             std::cerr << 
"Matrices de dimensiones distintas en operador -"     114         if (m1.n_columns != m2.n_rows)
   116             std::cerr << 
"Matrices de dimensiones incompatibles en producto." << std::endl;
   117             std::cerr << 
"  m1= " << m1 << std::endl;
   118             std::cerr << 
"  m2= " << m2 << std::endl;
   125       { inic(n_rows,n_columns); }
   127       { inic(other.n_rows,other.n_columns); }
   130         inic(m.n_rows,m.n_columns);
   133     virtual bool operator==(
const ProtoMatrix &other)
 const   140         retval= (this->n_rows==other.n_rows) && (this->n_columns==other.n_columns);
   145     inline virtual void resize(
size_t n_rows,
size_t n_columns)
   146       { inic(n_rows,n_columns); }
   147     inline virtual size_t Tam(
void)
   148       { 
return (n_rows*n_columns); }
   149     inline size_t getNumberOfRows(
void)
 const   151     inline size_t getNumberOfColumns(
void)
 const   152       { 
return n_columns; }
   153     inline bool CheckIndices(
const size_t &f,
const size_t &c)
 const   154       { 
return check_range(f,c);; }
   157     inline bool interior(
const size_t &i,
const size_t &j)
 const   158       { 
return ( (i>1) && (j>1) && (i<n_rows) && (j<n_columns) ); }
   159     inline int Cuadrada(
void)
 const   160       { 
return (n_rows == n_columns); }
   161     inline bool isRow(
void)
 const   162       { 
return (n_rows == 1); }
   163     inline bool isColumn(
void)
 const   164       { 
return (n_columns == 1); }
   165     virtual void Print(std::ostream &os) 
const=0;
   167       { 
return (m1.n_rows == m2.n_rows); }
   169       { 
return (m1.n_columns == m2.n_columns); }
   171       { 
return (compareRowNumber(m1,m2) && compareColumnNumber(m1,m2)); }
   172     friend inline std::ostream &operator<<(std::ostream &os,
const ProtoMatrix &m)
 Definition: ProtoMatrix.h:32
bool interior(const size_t &i, const size_t &j) const
Return true if the indices correspond to a component. 
Definition: ProtoMatrix.h:157