/* *_________________________________________________________________________* * POEMS: PARALLELIZABLE OPEN SOURCE EFFICIENT MULTIBODY SOFTWARE * * DESCRIPTION: SEE READ-ME * * FILE NAME: colmatrix.cpp * * AUTHORS: See Author List * * GRANTS: See Grants List * * COPYRIGHT: (C) 2005 by Authors as listed in Author's List * * LICENSE: Please see License Agreement * * DOWNLOAD: Free at www.rpi.edu/~anderk5 * * ADMINISTRATOR: Prof. Kurt Anderson * * Computational Dynamics Lab * * Rensselaer Polytechnic Institute * * 110 8th St. Troy NY 12180 * * CONTACT: anderk5@rpi.edu * *_________________________________________________________________________*/ #include "colmatrix.h" #include "rowmatrix.h" #include #include #include using namespace std; ColMatrix::ColMatrix(){ numrows = 0; elements = 0; } ColMatrix::~ColMatrix(){ delete [] elements; } ColMatrix::ColMatrix(const ColMatrix& A){ // copy constructor numrows = 0; elements = 0; Dim(A.numrows); for(int i=0;i> n; Dim(n); for(int i=0;i> elements[i]; return c; } ostream& ColMatrix::WriteData(ostream& c) const{ //output c << numrows << ' '; for(int i=0;inumrows) || (i<1)){ cerr << "matrix index invalid in operator ()" << endl; exit(1); } return elements[i-1]; } double ColMatrix::Get_1int(int i) const{ if((i>numrows) || (i<1)){ cerr << "matrix index exceeded in Get" << endl; exit(1); } return elements[i-1]; } void ColMatrix::Set_1int(int i, double value){ if((i>numrows) || (i<1)){ cerr << "matrix index exceeded in Set" << endl; exit(1); } elements[i-1] = value; } double ColMatrix::BasicGet_1int(int i) const{ return elements[i]; } double* ColMatrix::GetElementPointer(int i){ return &(elements[i]); } void ColMatrix::BasicSet_1int(int i, double value){ elements[i] = value; } void ColMatrix::BasicIncrement_1int(int i, double value){ elements[i] += value; } void ColMatrix::AssignVM(const VirtualMatrix& A){ if( A.GetNumCols() != 1 ){ cerr << "error trying to write a 2D matrix to a collumn" << endl; exit(1); } Dim( A.GetNumRows() ); for(int i=0;i value){ value = elements[i]; index = i; } } void ColMatrix::BasicMin(double& value, int& index){ value = elements[0]; index = 0; for(int i=1;i