rendered paste body//matrix implementation
#include "matrix.h"
#include <cstdlib>
#include <iostream>
using namespace std;
matrix::matrix(int rows,int columns){
numrows=rows;
numcolumns=columns;
elements=new double *[rows];
for (int i = 0; i < rows; i++){
elements[i] = new double [columns];
}
//initalize to 0
for(int i=0;i<numrows;i++){
for(int j=0;j<numcolumns;j++){
elements[i][j]=1;
}
}
}
matrix::~matrix(){
delete elements;
}
const double matrix::get_numrows(){
return numrows;
}
const double matrix::get_numcolumns(){
return numcolumns;
}
const double matrix::get_element(int row,int column){
return elements[row][column];
}
void matrix::set_element(int row,int column,double value){
elements[row][column]=value;
}
void matrix::add(matrix &matrix1,matrix &matrix2){
if (numrows==matrix1.numrows && numrows==matrix2.numrows && numcolumns==matrix1.numcolumns && numcolumns==matrix2.numcolumns){
for(int i=0;i<numrows;i++){
for(int j=0;j<numcolumns;j++){
//DEBUG cout<<matrix2.get_element(i,j);
elements[i][j]=matrix1.get_element(i,j)+matrix2.get_element(i,j);
//DEBUG cout<<elements[i][j];
}
}
}
else{
cout<<"Matrices are of improper sizes for addition."<<endl;
}
}
void matrix::subtract(matrix &matrix1,matrix &matrix2){
if (numrows==matrix1.numrows && numrows==matrix2.numrows && numcolumns==matrix1.numcolumns && numcolumns==matrix2.numcolumns){
for(int i=0;i<numrows;i++){
for(int j=0;j<numcolumns;j++){
elements[i][j]=matrix1.get_element(i,j)-matrix2.get_element(i,j);
}
}
}
else{
cout<<"Matrices are of improper sizes for subtraction."<<endl;
}
}
void matrix::operator=(matrix matrix1){
//cout<<"fuck"<<endl;
for(int i=0;i<numrows;i++){
for(int j=0;j<numcolumns;j++){
//cout<<"fuck"<<endl;
this->set_element(i,j,matrix1.get_element(i,j));
}
}
}
matrix matrix::operator+(matrix &matrix1){
if (numrows==matrix1.numrows && numcolumns==matrix1.numcolumns){
matrix x(numrows, numcolumns);
for(int i=0;i<numrows;i++){
for(int j=0;j<numcolumns;j++){
x.elements[i][j]=get_element(i,j)+matrix1.get_element(i,j);
//DEBUG cout<<x.elements[i][j];
}
}
x.display();
return x;
}
else{
cout<<"Matrices are of improper sizes for addition."<<endl;
}
}
matrix matrix::operator-(matrix &matrix1){
if (numrows==matrix1.numrows && numcolumns==matrix1.numcolumns){
matrix x(numrows, numcolumns);
for(int i=0;i<numrows;i++){
for(int j=0;j<numcolumns;j++){
x.elements[i][j]=get_element(i,j)-matrix1.get_element(i,j);
//DEBUG cout<<x.elements[i][j];
}
}
x.display();
return x;
}
else{
cout<<"Matrices are of improper sizes for addition."<<endl;
}
}
void matrix::display(){
cout<<"\n";
for(int i=0;i<numrows;i++){
cout<<"{";
for(int j=0;j<numcolumns;j++){
cout<<elements[i][j]<<"\t";
}
cout<<"}"<<endl;
}
}