Пример #1
0
 void SymmetricBandMatrix<TYPE>::operator<<(const BaseMatrix<TYPE>& bm)
 {
     if (&bm == this)
     {
         return;
     }
     assert(bm.Nrows() == GeneralMatrix<TYPE>::nrows && bm.Ncols() == GeneralMatrix<TYPE>::ncols);
     int n = GeneralMatrix<TYPE>::nrows, lb = this->BandWidth().Lower();
     if (bm.Search(*this) == 0)
     {
         for (int i = 0; i <= lb; ++i)
         {
             for (int j = 1; j <= n - i; ++j)
             {
                 operator()(j + i, j) = bm(j + i, j);
             }
         }
     }
     else
     {
         SymmetricBandMatrix<TYPE> t(n, lb);
         t << bm;
         this->Swap(t);
     }
 }