#include "SCmathlib.h" Point::Point(int dim){ dimension = dim; data = new double[dimension]; for(int i=0;i=0 && i=0 && i0) cout << data[0]; for(int i=1;i=0 && i=0 && i0) cout << data[0]; for(int i=1;i tmp)?maxval:tmp; } return(maxval); } double Vector::MaxMod(){ double maxm = -1.0e+10; for(int i=0; i fabs(data[i]))?maxm:fabs(data[i]); return maxm; } double Vector::ElementofMaxMod(){ return(data[MaxModindex()]); } int Vector::MaxModindex(){ double maxm = -1.0e+10; int maxmindex = 0; for(int i=0; i sum)?maxval:sum; } return(maxval); } double Matrix::Norm_l1(){ double maxval = 0.0,sum; for(int j=0;j sum)?maxval:sum; } return(maxval); } Matrix& Matrix::operator=(const Matrix &m){ if( (rows == m.rows) && (columns == m.columns)){ for(int i=0; i=0) && (j>=0) && (i=0) && (j>=0) && (imaxv)?fabs(data[row][i]):maxv; return maxv; } double Matrix::MaxModInRow(int row, int starting_column){ double maxv = -1.0e+10; for(int i=starting_column;imaxv)?fabs(data[row][i]):maxv; return maxv; } int Matrix::MaxModInRowindex(int row){ int maxvindex = 0; double maxv = -1.0e+10; for(int i=0;imaxv)?fabs(data[i][column]):maxv; return maxv; } double Matrix::MaxModInColumn(int column, int starting_row){ double maxv = -1.0e+10; for(int i=starting_row;imaxv)?fabs(data[i][column]):maxv; return maxv; } int Matrix::MaxModInColumnindex(int column){ int maxvindex = 0; double maxv = -1.0e+10; for(int i=0;i=0.0)?1.0:-1.0; return xs; } //GammaF function valid for x integer, or x (integer+0.5) double GammaF(double x){ double gamma = 1.0; if (x == -0.5) gamma = -2.0*sqrt(M_PI); else if (!x) return gamma; else if ((x-(int)x) == 0.5){ int n = (int) x; double tmp = x; gamma = sqrt(M_PI); while(n--){ tmp -= 1.0; gamma *= tmp; } } else if ((x-(int)x) == 0.0){ int n = (int) x; double tmp = x; while(--n){ tmp -= 1.0; gamma *= tmp; } } return gamma; } int Factorial(int n){ int value=1; for(int i=n;i>0;i--) value = value*i; return value; } double ** CreateMatrix(int m, int n){ double ** mat; mat = new double*[m]; for(int i=0;i