足し算

の計算量を減らす。

   friend Matrix operator + (const Matrix &m1, const Matrix &m2)
    {
      Node *n1 = m1.rows;
      Node *n2 = m2.rows;
      Matrix mat(m1.size);
      while (n1 || n2)
       {
         if (n1 && n2)
          { if(n1->row == n2->row && n1->col == n2->col)
             { mat.append(n1->data + n2->data, n1->row, n1->col);
               n1 = n1->nextrow;
               n2 = n2->nextrow;
             }
            else if (lt(n1->row, n1->col, n2->row, n2->col))
             { mat.append(n1->data, n1->row, n1->col);
               n1 = n1->nextrow;
             }
            else
             { mat.append(n2->data, n2->row, n2->col);
               n2 = n2->nextrow;
             }
          }
         else if (n1)
          { mat.append(n1->data, n1->row, n1->col);
            n1 = n1->nextrow;
          }
         else
          { mat.append(n2->data, n2->row, n2->col);
            n2 = n2->nextrow;
          }
       }
      return mat;
    }