Pastebin launched a little side project called HostCabi.net, check it out ;-)Don't like ads? PRO users don't see any ads ;-)
Guest

matrix.cpp

By: a guest on Nov 29th, 2010  |  syntax: C++  |  size: 0.95 KB  |  hits: 1,222  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <iostream>
  2. #include <vector>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include "matrix.h"
  6. using namespace std;
  7.  
  8. matrix::matrix(int dim, bool random, bool strassen) : dim_(dim) {
  9.         if (strassen) {
  10.                 int dim2 = 2;
  11.                 while (dim2 < dim)
  12.                         dim2 *= 2;
  13.                 dim_ = dim2;
  14.         }
  15.        
  16.         data_ = new int[dim_ * dim_];
  17.         if (!random) return;
  18.  
  19.         for (int i = 0; i < dim_ * dim_; i++)
  20.                 data_[i] = rand() % 10;
  21. }
  22.  
  23. void matrix::print() {
  24.         for (int i = 0; i < dim_; i++) {
  25.                 for (int j = 0; j < dim_; j++)
  26.                         cout << (*this)(i,j) << " ";
  27.                 cout << "\n";
  28.         }
  29.         cout << "\n";
  30. }
  31.  
  32. matrix matrix::operator+(matrix b) {
  33.         matrix c(dim_, false, false);
  34.         for (int i = 0; i < dim_; i++)
  35.                 for (int j = 0; j < dim_; j++)
  36.                         c(i,j) = (*this)(i,j) + b(i,j);
  37.                
  38.         return c;
  39. }
  40.  
  41. matrix matrix::operator-(matrix b) {
  42.         matrix c(dim_, false, false);
  43.         for (int i = 0; i < dim_; i++)
  44.                 for (int j = 0; j < dim_; j++)
  45.                         c(i,j) = (*this)(i,j) - b(i,j);
  46.                
  47.         return c;
  48. }