//matrixd.hpp #ifndef matrixd_hpp #define matrixd_hpp #include #include #include #include "matrixi.hpp" class Matrixd { public: Matrixd(); //Constructor for Matrixd of doubles Matrixd(int, int, double *); Matrixd(int, int); Matrixd(int, int, double); Matrixd(int, double); Matrixd(int, int, ifstream &); Matrixd(Matrixd &); ~Matrixd(); int rows; int cols; double * array; char name[max_name_length]; char descript[max_descript_length]; Matrixd operator+(Matrixd &); Matrixd operator-(Matrixd &); Matrixd operator*(Matrixd &); Matrixd & operator=(Matrixd &); void printMatrixd(ofstream &); double val(int, int); double val(int); void set(int, int, double); void set(int, double); double addrow(int); double addcol(int); double A(int, int); double A(int); Matrixd GJ(Matrixd &); //Gauss-Jordan Elim. Matrixd GJ(ofstream &); //Gauss-Jordan Elim. void augment(Matrixd &); //Augment Matrixd void transpose(); Matrixd extract(int); //extract last int columns Matrixd Gauss(Matrixd &); //Gauss Elim Matrixd Inverse(); //Matrixd Inverse Matrixd ident(int); //return identity Matrixd size int double norm(); void normalize(); double condition(); Matrixd iterative_refinement(Matrixd &, ofstream &); double test_iter_refine(Matrixd &, ofstream &); Matrixd diag_dom(ofstream &); double testrow(int, int); int testforuse(Matrixi &, int r); Matrixi order_vector; void setorder(Matrixi & ); Matrixd Gauss_Seidel(Matrixd &, ofstream &); }; #include "matrixd.cpp" #endif