Ice Sheet System Model  4.18
Code documentation
matrix.h
Go to the documentation of this file.
1 
5 #ifndef _MATRIXUTILS_H_
6 #define _MATRIXUTILS_H_
7 
8 #include "../Numerics/types.h"
9 
10 int TripleMultiply( IssmDouble* a, int nrowa, int ncola, int itrna, IssmDouble* b, int nrowb, int ncolb, int itrnb, IssmDouble* c, int nrowc, int ncolc, int itrnc, IssmDouble* d, int iaddd);
11 int MatrixMultiply( IssmDouble* a, int nrowa, int ncola, int itrna, IssmDouble* b, int nrowb, int ncolb, int itrnb, IssmDouble* c, int iaddc );
12 int MatrixInverse( IssmDouble* a, int ndim, int nrow, IssmDouble* b, int nvec, IssmDouble* pdet );
13 
14 void Matrix2x2Invert(IssmDouble* Ainv, IssmDouble* A);
16 void Matrix2x2Eigen(IssmDouble* plambda1,IssmDouble* plambda2,IssmDouble* pvx, IssmDouble* pvy,IssmDouble a11, IssmDouble a21,IssmDouble a22);
17 
18 void Matrix3x3Invert(IssmDouble* Ainv, IssmDouble* A);
22 
23 void Matrix4x4Adjoint(IssmDouble* Aadj, IssmDouble* A);
24 void Matrix4x4Invert(IssmDouble* Ainv, IssmDouble* A);
27 
28 void newcell(IssmDouble** pcell, IssmDouble newvalue, bool top, int m);
29 IssmDouble cellsum(IssmDouble* cell, int m);
30 void celldelete(IssmDouble** pcell, int m, int* indices, int nind);
31 void cellsplit(IssmDouble** pcell, int m, int i,IssmDouble scale);
32 void cellecho(int numcells, int m, ...);
33 #endif //ifndef _MATRIXUTILS_H_
newcell
void newcell(IssmDouble **pcell, IssmDouble newvalue, bool top, int m)
Definition: MatrixUtils.cpp:577
IssmDouble
double IssmDouble
Definition: types.h:37
MatrixInverse
int MatrixInverse(IssmDouble *a, int ndim, int nrow, IssmDouble *b, int nvec, IssmDouble *pdet)
Definition: MatrixUtils.cpp:149
Matrix2x2Invert
void Matrix2x2Invert(IssmDouble *Ainv, IssmDouble *A)
Definition: MatrixUtils.cpp:329
Matrix4x4Solve
void Matrix4x4Solve(IssmDouble *X, IssmDouble *A, IssmDouble *B)
Definition: MatrixUtils.cpp:570
TripleMultiply
int TripleMultiply(IssmDouble *a, int nrowa, int ncola, int itrna, IssmDouble *b, int nrowb, int ncolb, int itrnb, IssmDouble *c, int nrowc, int ncolc, int itrnc, IssmDouble *d, int iaddd)
Definition: MatrixUtils.cpp:20
Matrix4x4Invert
void Matrix4x4Invert(IssmDouble *Ainv, IssmDouble *A)
Definition: MatrixUtils.cpp:552
Matrix2x2Determinant
void Matrix2x2Determinant(IssmDouble *Adet, IssmDouble *A)
Definition: MatrixUtils.cpp:322
Matrix3x3Invert
void Matrix3x3Invert(IssmDouble *Ainv, IssmDouble *A)
Definition: MatrixUtils.cpp:448
Matrix2x2Eigen
void Matrix2x2Eigen(IssmDouble *plambda1, IssmDouble *plambda2, IssmDouble *pvx, IssmDouble *pvy, IssmDouble a11, IssmDouble a21, IssmDouble a22)
Definition: MatrixUtils.cpp:348
Matrix4x4Adjoint
void Matrix4x4Adjoint(IssmDouble *Aadj, IssmDouble *A)
Definition: MatrixUtils.cpp:509
cellsum
IssmDouble cellsum(IssmDouble *cell, int m)
Definition: MatrixUtils.cpp:604
Matrix4x4Determinant
void Matrix4x4Determinant(IssmDouble *Adet, IssmDouble *A)
Definition: MatrixUtils.cpp:480
Matrix3x3Determinant
void Matrix3x3Determinant(IssmDouble *Adet, IssmDouble *A)
Definition: MatrixUtils.cpp:431
cellsplit
void cellsplit(IssmDouble **pcell, int m, int i, IssmDouble scale)
Definition: MatrixUtils.cpp:630
MatrixMultiply
int MatrixMultiply(IssmDouble *a, int nrowa, int ncola, int itrna, IssmDouble *b, int nrowb, int ncolb, int itrnb, IssmDouble *c, int iaddc)
Definition: MatrixUtils.cpp:88
Matrix3x3Solve
void Matrix3x3Solve(IssmDouble *X, IssmDouble *A, IssmDouble *B)
Definition: MatrixUtils.cpp:471
cellecho
void cellecho(int numcells, int m,...)
Definition: MatrixUtils.cpp:649
celldelete
void celldelete(IssmDouble **pcell, int m, int *indices, int nind)
Definition: MatrixUtils.cpp:612