36 PCU_ALWAYS_ASSERT((d==2) || (d==3));
59 for (
unsigned i=0; i <
dim(); ++i)
60 for (
unsigned j=0; j <
dim(); ++j)
61 r(i,j) = (*this)(i,j) + b(i,j);
68 for (
unsigned i=0; i <
dim(); ++i)
69 for (
unsigned j=0; j <
dim(); ++j)
70 r(i,j) = (*this)(i,j) - b(i,j);
77 for (
unsigned i=0; i <
dim(); ++i)
78 for (
unsigned j=0; j <
dim(); ++j)
80 r(i,j) = (*this)(i,0) * b(0,j);
81 for (
unsigned k=1; k <
dim(); ++k)
82 r(i,j) += (*this)(i,k) * b(k,j);
90 for (
unsigned i=0; i <
dim(); ++i)
91 for (
unsigned j=0; j <
dim(); ++j)
92 r(i,j) = (*this)(i,j) * s;
99 for (
unsigned i=0; i <
dim(); ++i)
100 for (
unsigned j=0; j <
dim(); ++j)
101 r(i,j) = (*this)(i,j) / s;
108 PCU_ALWAYS_ASSERT((d==2) || (d==3));
110 this->elems.resize(d*d);
117 PCU_ALWAYS_ASSERT(m==n);
118 PCU_ALWAYS_ASSERT((m==2) || (m==3));
120 this->elems.resize(m*m);
123 unsigned dim()
const {
return this->columns;}
127 unsigned d = b.
dim();
129 for (
unsigned i=0; i < d; ++i)
130 for (
unsigned j=0; j < d; ++j)
131 (*
this)(i,j) = b(i,j);
133 void copy(Matrix<T>
const& b)
135 unsigned m = b.rows();
136 unsigned n = b.cols();
138 for (
unsigned i=0; i < m; ++i)
139 for (
unsigned j=0; j < m; ++j)
140 (*
this)(i,j) = b(i,j);
compile-time (static) matrix
run-time (dynamic) tensor
Tensor< T > & operator=(Tensor< T > const &b)
assignment operator
Tensor()
default constructor
Tensor< T > operator*(Tensor< T > const &b)
multiply a tensor by a tensor
Tensor< T > operator/(T const &s)
divide a tensor by a scalar
Tensor< T > operator=(Matrix< T > const &b)
assignent to a matrix
void resize(unsigned m, unsigned n)
resize this tensor
Tensor< T > operator*(T const &s)
multiply a tensor by a scalar
Tensor(unsigned d)
construct with dimension d
Tensor< T > operator+(Tensor< T > const &b)
add a tensor to a tensor
Tensor(Tensor< T > const &b)
copy constructor
Tensor(Matrix< T > const &b)
copy from a matrix
void resize(unsigned d)
resize this tensor to dimension d
Tensor< T > operator-(Tensor< T > const &b)
subtract a tensor from a tensor
unsigned dim() const
get the dimension of this tensor
Small compile-time and run-time linear algebra matrices.
All MTH functions are contained in this namespace.