27 #ifndef _INCLUDE_MATRIX_H 28 #define _INCLUDE_MATRIX_H 34 #ifndef NOMATRIXTRIANGLE 50 void init(
int _nLine,
int _nColumn,
int _extLine,
int _extColumn,
MatrixData* d=NULL);
57 Matrix(
int _ligne=0,
int _nColumn=0);
58 Matrix(
int _ligne,
int _nColumn,
int _extLine,
int _extColumn);
59 Matrix(
const char *filename,
char ascii=0);
62 void save(
char *filename,
char ascii);
63 void save(FILE *
f,
char ascii);
69 void setSize(
int _nLine,
int _nColumn);
87 inline operator double**()
const {
return d->
p; };
94 void setLines(
int indexDest,
Matrix Source,
int indexSource=0,
int number=0);
120 #ifndef NOMATRIXTRIANGLE
double scalarProduct(int nl, Vector v)
void setColNames(char **c, int nc=0)
void merge(Matrix m, int eliminateDoubles=1)
void QR(Matrix Q=Matrix::emptyMatrix, MatrixTriangle R=MatrixTriangle::emptyMatrixTriangle, VectorInt permutation=VectorInt::emptyVectorInt)
Matrix multiply(Matrix B)
void swapLines(int i, int j)
void addInPlace(Matrix B)
Matrix & operator=(const Matrix &A)
void setSize(int _nLine, int _nColumn)
struct Matrix::MatrixDataTag MatrixData
int lineIndex(Vector r, int nn=0)
void setNColumn(int _nColumn)
void getSubMatrix(Matrix R, int startL, int StartC, int nl=0, int nc=0)
bool cholesky(MatrixTriangle matL, double lambda=0, double *lambdaCorrection=NULL)
bool operator==(const Matrix &A)
void multiplyInPlace(double d)
double euclidianNorm(int i)
static MatrixTriangle emptyMatrixTriangle
Vector getColumn(int i, int n=0)
double * operator[](int i)
Matrix(int _ligne=0, int _nColumn=0)
void setExtSize(int _extLine, int _extColumn)
void setLines(int indexDest, Matrix Source, int indexSource=0, int number=0)
void init(int _nLine, int _nColumn, int _extLine, int _extColumn, MatrixData *d=NULL)
void save(char *filename, char ascii)
Vector getLine(int i, int n=0, int startCol=0)
void addUnityInPlace(double d)
void setLine(int i, Vector v, int n=0)
static VectorInt emptyVectorInt
void multiplyByTranspose(Matrix R, Matrix a)
void transposeAndMultiply(Vector R, Vector a)
void setNLine(int _nLine)
static Matrix emptyMatrix
void addMultiplyInPlace(double d, Matrix B)
void choleskySolveInPlace(Vector b)
void destroyCurrentBuffer()
void updateSave(char *saveFileName)
void multiplyByDiagonalMatrix(Vector v)