22 #ifndef var_square_matrix_h
23 #define var_square_matrix_h
25 #include "fixed_general_matrix.h"
44 typedef AT AtomicType;
56 SquareMatrix(
int m, Init ini=INIT,
const AT &a=0) : Matrix<General,Var,Var,AT>(m,m,ini,a) { }
57 SquareMatrix(
int m, Eye ini,
const AT &a=1) : Matrix<General,Var,Var,AT>(m,m,ini,a) { }
59 SquareMatrix(
const char *str) : Matrix<General,Var,Var,AT>(str) { }
65 template<
class Type,
class Row,
class Col>
73 SquareMatrix<Var,AT>& resize() {
74 Matrix<General,Var,Var,AT>::resize();
78 SquareMatrix<Var,AT>& resize(
int m, Noinit) {
79 Matrix<General,Var,Var,AT>::resize(m,m,Noinit());
83 SquareMatrix<Var,AT>& resize(
int m, Init ini=INIT,
const AT &a=0) {
84 Matrix<General,Var,Var,AT>::resize(m,m,ini,a);
88 SquareMatrix<Var,AT>& resize(
int m, Eye ini,
const AT &a=1) {
89 Matrix<General,Var,Var,AT>::resize(m,m,ini,a);
102 throw std::runtime_error(
"Cannot resize a square matrix with different dimensions for rows and columns.");
130 inline operator std::vector<std::vector<AT> >();
137 inline const SquareMatrix<Var,AT> SquareMatrix<Var,AT>::T()
const {
138 SquareMatrix<Var,AT> A(size(),NONINIT);
139 for(
int i=0; i<M; i++)
140 for(
int j=0; j<M; j++)
147 std::vector<std::vector<AT> > ret(size());
148 for(
int r=0; r<size(); r++) {
149 ret[r].resize(size());
150 for(
int c=0; c<size(); c++)
This is the basic matrix class for arbitrary matrices.
Definition: fmatvec.h:41
SquareMatrix(const Matrix< Type, Row, Col, AT > &A)
Copy Constructor.
Definition: var_square_matrix.h:66
SquareMatrix()
Standard constructor.
Definition: var_square_matrix.h:50
SquareMatrix< Var, AT > & operator=(const Matrix< Type, Row, Col, AT > &A)
Copy operator.
Definition: var_square_matrix.h:112
This is a matrix class of general quadratic matrices.
Definition: var_square_matrix.h:38
Basic shape class for matrices.
Definition: types.h:100
bool transposed()
The storage format of a var square matrix is c-storage order -> return always true.
Definition: var_square_matrix.h:94
int size() const
Size.
Definition: var_square_matrix.h:121
void resize(int m, int n)
Definition: var_square_matrix.h:100