50 Matrix(
const int& rows,
const int& cols);
59 Matrix(
const size_t& rows,
const size_t& cols,
const double& init) :
vecData(rows*cols, init),
ncols(cols),
nrows(rows) {}
66 Matrix(
const size_t& n,
const double& init);
79 void identity(
const size_t& n,
const double& init);
81 void resize(
const size_t& rows,
const size_t& cols);
82 void resize(
const size_t& rows,
const size_t& cols,
const double& init);
89 void size(
size_t& rows,
size_t& cols)
const;
100 void random(
const double& range);
102 double&
operator ()(
const size_t& x,
const size_t& y);
103 double operator ()(
const size_t& x,
const size_t& y)
const;
255 void swapRows(
const size_t &i1,
const size_t &i2);
void partialPivoting()
Definition: Matrix.cc:683
double det() const
matrix determinant
Definition: Matrix.cc:341
double scalar() const
Converts a 1x1 matrix to a scalar.
Definition: Matrix.cc:284
Matrix & operator+=(const Matrix &rhs)
Definition: Matrix.cc:143
bool LU(Matrix &L, Matrix &U) const
matrix LU decomposition. Perform LU decomposition by the Dolittle algorithm, (cf http://math.fullerton.edu/mathews/numerical/linear/dol/dol.html)
Definition: Matrix.cc:357
Matrix()
Definition: Matrix.h:43
const Matrix operator/(const double &rhs) const
Definition: Matrix.cc:273
Matrix & operator*=(const Matrix &rhs)
Definition: Matrix.cc:219
const std::string toString() const
matrix bidiagonalization This uses Householder's reduction, see Golub, 1970. (see https://secure...
Definition: Matrix.cc:105
Matrix(const size_t &rows, const size_t &cols, const double &init)
A constructor that creates a matrix filled with constant values.
Definition: Matrix.h:59
bool operator==(const Matrix &) const
Operator that tests for equality.
Definition: Matrix.cc:126
static const double epsilon_mtr
Definition: Matrix.h:246
static double dot(const Matrix &A, const Matrix &B)
Dot product.
Definition: Matrix.cc:294
void size(size_t &rows, size_t &cols) const
get the dimensions of the current object
Definition: Matrix.cc:66
void swapRows(const size_t &i1, const size_t &i2)
Definition: Matrix.cc:746
size_t findMaxInCol(const size_t &col)
Definition: Matrix.cc:716
const Matrix operator+(const Matrix &rhs) const
Definition: Matrix.cc:160
size_t findMaxInRow(const size_t &row)
Definition: Matrix.cc:731
bool inv()
Definition: Matrix.cc:450
const Matrix operator-(const Matrix &rhs) const
Definition: Matrix.cc:199
bool isIdentity() const
check if a matrix is the identity matrix
Definition: Matrix.cc:633
Matrix(const size_t &rows, const size_t &cols)
Definition: Matrix.h:51
Matrix(const Matrix &init)
Copy constructor.
Definition: Matrix.h:72
size_t ncols
Definition: Matrix.h:250
void maximalPivoting()
Definition: Matrix.cc:688
static const double epsilon
Definition: Matrix.h:246
Matrix getT() const
matrix transpose.
Definition: Matrix.cc:326
void resize(const size_t &rows, const size_t &cols)
Definition: Matrix.cc:52
void identity(const size_t &n, const double &init)
Convert the current matrix to a identity matrix of size n.
Definition: Matrix.cc:47
double & operator()(const size_t &x, const size_t &y)
Definition: Matrix.cc:83
void T()
Definition: Matrix.cc:336
Matrix getInv() const
matrix invert. It first performs LU decomposition and then computes the inverse by backward and forwa...
Definition: Matrix.cc:395
void clear()
free the memory and set the matrix dimensions to (0,0)
Definition: Matrix.cc:71
bool operator!=(const Matrix &) const
Operator that tests for inequality.
Definition: Matrix.cc:139
static Matrix TDMA_solve(const Matrix &A, const Matrix &B)
Solving system of equations using Thomas Algorithm The following function solves a A·X=B with X and B...
Definition: Matrix.cc:624
size_t nrows
Definition: Matrix.h:251
std::vector< double > vecData
Definition: Matrix.h:249
Matrix & operator-=(const Matrix &rhs)
Definition: Matrix.cc:182
const Matrix operator*(const Matrix &rhs) const
Definition: Matrix.cc:247
This class implements the basic operations on matrices. Elements are access in matrix notation: that ...
Definition: Matrix.h:41
static Matrix solve(const Matrix &A, const Matrix &B)
matrix solving for A·X=B. It first performs LU decomposition and then solves A·X=B by backward and fo...
Definition: Matrix.cc:566
void random(const double &range)
fill the matrix with random numbers.
Definition: Matrix.cc:76
Matrix & operator/=(const double &rhs)
Definition: Matrix.cc:268