17 #include <Structure.h>
101 int Write(
const char *filename)
const;
104 void Print(
const char *name =
"a")
const;
110 void PrintFull(std::string name=
"",
int fieldWidth=4)
const;
113 void add(
int i,
int j,
double val);
116 void add(
int i, std::map<int,double> vals,
double factor = 1.0);
119 void add(std::map<
int, std::map<int,double> > vals,
double factor = 1.0);
121 void set(
int i,
int j,
double val);
123 const double&
get(
int i,
int j)
const;
125 double&
get(
int i,
int j);
128 void setEntries(
double* entries) {
154 void changeRows(std::map<
int,std::map<int,double> > entries,
155 bool deleteOldArrays=
false);
183 { *
this += &A;
return *
this; }
202 void multiply(
const double *
const x,
double *y,
double a = 1.0)
const;
236 void scale(
const double *
const factor,
bool from_left =
true);
256 double &
operator()(
const int i,
const int j);
261 const double &
operator()(
const int i,
const int j)
const;
int GetN_Columns() const
Definition: Matrix.h:55
int * GetHangingRowPtr() const
Definition: Structure.h:91
void Print(const char *name="a") const
Print matrix into the shell.
Definition: Matrix.C:61
int * GetHangingRowPtr() const
Definition: Matrix.h:75
int GetN_Rows() const
Definition: Structure.h:63
int GetN_Rows() const
Definition: Matrix.h:51
void SetStructure(TStructure *structure)
reset the structure, this may mean that the entries need to be reallocated
Definition: Matrix.C:41
virtual TMatrix & operator+=(const TMatrix &A)
add another matrix to this one
Definition: Matrix.h:182
void PrintFull(std::string name="", int fieldWidth=4) const
print the full matrix, including all zeros
Definition: Matrix.C:82
int GetHangingN_Entries() const
Definition: Structure.h:75
double * GetEntries() const
Definition: Matrix.h:87
void scale(const double *const factor, bool from_left=true)
scale a matrix using a vector
Definition: Matrix.C:438
void remove_zeros(double tol=0.0)
remove all entries from sparsity structure where a zero is stored
Definition: Matrix.C:406
int GetN_Entries() const
Definition: Matrix.h:59
int * GetRowPtr() const
Definition: Matrix.h:79
void changeRows(std::map< int, std::map< int, double > > entries, bool deleteOldArrays=false)
replace several rows in the matrix with new entries.
Definition: Matrix.C:476
double GetNorm(int p=-1) const
Definition: Matrix.C:197
int Write(const char *filename) const
int * GetRowPtr() const
Definition: Structure.h:87
int * GetHangingKCol() const
Definition: Matrix.h:71
int * GetKCol() const
Definition: Structure.h:79
TStructure * structure
Definition: Matrix.h:25
double * Entries
Definition: Matrix.h:28
~TMatrix()
Definition: Matrix.C:55
virtual TMatrix & operator+=(const TMatrix *A)
add another matrix to this one
Definition: Matrix.C:274
void multiply(const double *const x, double *y, double a=1.0) const
compute y += a * A*x
Definition: Matrix.C:334
int * GetHangingKCol() const
Definition: Structure.h:83
friend double * operator*(const TMatrix &A, const double *x)
compute y = A*x (Matrix-Vector-Multiplication)
Definition: Matrix.C:247
TStructure * GetStructure() const
Definition: Matrix.h:83
virtual TMatrix & operator*=(const double a)
scale matrix by a factor
Definition: Matrix.C:469
int * GetKCol() const
Definition: Matrix.h:67
int GetN_Entries() const
Definition: Structure.h:71
TMatrix * GetTransposed() const
return a new TMatrix which is the transposed of this matrix
Definition: Structure.h:19
void Reset()
Definition: Matrix.C:50
TMatrix & operator=(const TMatrix &A)
copy entries from A to this
Definition: Matrix.C:313
virtual TMatrix & operator-=(const TMatrix *A)
substract another matrix to this one
Definition: Matrix.C:294
int GetHangingN_Entries() const
Definition: Matrix.h:63
int GetN_Columns() const
Definition: Structure.h:67
double & operator()(const int i, const int j)
get/set a specific matrix entry
Definition: Matrix.C:187
TMatrix(TStructure *structure)
Definition: Matrix.C:22