tdm::mat Mat.h dim_t R R dim_t C C typename T T using tdm::mat< R, C, T >::value_type = T value_type tdm::mat::value_type vec< C, value_type > using tdm::mat< R, C, T >::row_type = vec<C, value_type> row_type tdm::mat::row_type vec< R, value_type > using tdm::mat< R, C, T >::column_type = vec<R, value_type> column_type tdm::mat::column_type row_type row_type tdm::mat< R, C, T >::values[R] [R] values tdm::mat::values tdm::mat< R, C, T >::apply tdm::mat< R, C, T >::operator[] tdm::mat< R, C, T >::submat constexpr dim_t static constexpr dim_t tdm::mat< R, C, T >::rows () rows tdm::mat::rows tdm::vec< L, T >::dimensions tdm::mat< R, C, T >::apply tdm::mat< R, C, T >::operator[] tdm::mat< R, C, T >::submat constexpr dim_t static constexpr dim_t tdm::mat< R, C, T >::columns () columns tdm::mat::columns tdm::vec< C, value_type >::dimensions tdm::mat< R, C, T >::mat tdm::mat< R, C, T >::submat typename ... Us Us typename std::enable_if< sizeof...(Us)==R >::type * nullptr mat static mat tdm::mat< R, C, T >::fromRows (const vec< C, Us > &... vs) fromRows tdm::mat::fromRows const vec< C, Us > &... vs typename ... Us Us typename std::enable_if< sizeof...(Us)==C >::type * nullptr mat static mat tdm::mat< R, C, T >::fromColumns (const vec< R, Us > &... vs) fromColumns tdm::mat::fromColumns const vec< R, Us > &... vs tdm::transpose typename U typename ... dim_t H H R dim_t W W C std::enable_if< H==W, mat >::type static std::enable_if< H==W, mat >::type tdm::mat< R, C, T >::diagonal (U scalar) diagonal tdm::mat::diagonal U scalar tdm::mat< R, C, T >::apply tdm::mat< R, C, T >::row tdm::mat< R, C, T >::diagonal tdm::mat< R, C, T >::identity tdm::affine::scale typename U typename ... dim_t H H R dim_t W W C std::enable_if< H==W, mat >::type static std::enable_if< H==W, mat >::type tdm::mat< R, C, T >::diagonal (const vec< W, U > &scalars) diagonal tdm::mat::diagonal const vec< W, U > & scalars tdm::mat< R, C, T >::apply tdm::mat< R, C, T >::row typename ... Us Us dim_t H H R dim_t W W C std::enable_if<(H==W)&&(sizeof...(Us)==H), mat >::type static std::enable_if<(H==W)&&(sizeof...(Us)==H), mat >::type tdm::mat< R, C, T >::diagonal (Us... scalars) diagonal tdm::mat::diagonal Us... scalars tdm::mat< R, C, T >::diagonal typename ... dim_t H H R dim_t W W C std::enable_if< H==W, mat >::type static std::enable_if< H==W, mat >::type tdm::mat< R, C, T >::identity () identity tdm::mat::identity tdm::mat< R, C, T >::diagonal dnac::extractTranslationMatrix tdm::mat< R, C, T >::mat () mat tdm::mat::mat tdm::mat< R, C, T >::~mat ()=default ~mat tdm::mat::~mat tdm::mat< R, C, T >::mat (const mat &)=default mat tdm::mat::mat const mat & mat & mat & tdm::mat< R, C, T >::operator= (const mat &)=default operator= tdm::mat::operator= const mat & tdm::mat< R, C, T >::operator= tdm::mat< R, C, T >::mat (mat &&)=default mat tdm::mat::mat mat && mat & mat & tdm::mat< R, C, T >::operator= (mat &&)=default operator= tdm::mat::operator= mat && typename U tdm::mat< R, C, T >::mat (U scalar) mat tdm::mat::mat U scalar tdm::mat< R, C, T >::apply tdm::mat< R, C, T >::row typename ... Us Us typename std::enable_if< sizeof...(Us)==R *C >::type * nullptr tdm::mat< R, C, T >::mat (Us... scalars) mat tdm::mat::mat Us... scalars tdm::mat< R, C, T >::apply tdm::vec< L, T >::apply tdm::mat< R, C, T >::columns tdm::mat< R, C, T >::row typename U tdm::mat< R, C, T >::mat (const mat< R, C, U > &rhs) mat tdm::mat::mat const mat< R, C, U > & rhs tdm::mat< R, C, T >::apply tdm::mat< R, C, T >::row typename U mat & mat & tdm::mat< R, C, T >::operator= (const mat< R, C, U > &rhs) operator= tdm::mat::operator= const mat< R, C, U > & rhs tdm::mat< R, C, T >::operator= typename ... Us Us typename std::enable_if< sizeof...(Us)==R >::type * nullptr tdm::mat< R, C, T >::mat (const vec< C, Us > &... vs) mat tdm::mat::mat const vec< C, Us > &... vs row_type & row_type & tdm::mat< R, C, T >::operator[] (dim_t index) operator[] tdm::mat::operator[] dim_t index tdm::mat< R, C, T >::rows tdm::mat< R, C, T >::values tdm::mat< R, C, T >::operator() tdm::mat< R, C, T >::row const row_type & const row_type & tdm::mat< R, C, T >::operator[] (dim_t index) const operator[] tdm::mat::operator[] dim_t index tdm::mat< R, C, T >::rows tdm::mat< R, C, T >::values T & T & tdm::mat< R, C, T >::operator() (dim_t rowIndex, dim_t colIndex) operator() tdm::mat::operator() dim_t rowIndex dim_t colIndex tdm::mat< R, C, T >::operator[] const T & const T & tdm::mat< R, C, T >::operator() (dim_t rowIndex, dim_t colIndex) const operator() tdm::mat::operator() dim_t rowIndex dim_t colIndex tdm::mat< R, C, T >::operator[] typename F mat & mat & tdm::mat< R, C, T >::apply (F func) apply tdm::mat::apply F func tdm::mat< R, C, T >::rows tdm::mat< R, C, T >::values tdm::mat< R, C, T >::column tdm::mat< R, C, T >::diagonal tdm::mat< R, C, T >::mat tdm::mat< R, C, T >::negate tdm::operator* tdm::mat< R, C, T >::operator*= tdm::mat< R, C, T >::operator++ tdm::mat< R, C, T >::operator+= tdm::mat< R, C, T >::operator-- tdm::mat< R, C, T >::operator-= tdm::operator/ tdm::mat< R, C, T >::operator/= tdm::operator== tdm::mat< R, C, T >::submat tdm::transpose typename F const mat & const mat & tdm::mat< R, C, T >::apply (F func) const apply tdm::mat::apply F func tdm::mat< R, C, T >::rows tdm::mat< R, C, T >::values mat & mat & tdm::mat< R, C, T >::operator++ () operator++ tdm::mat::operator++ tdm::mat< R, C, T >::apply tdm::mat< R, C, T >::row mat & mat & tdm::mat< R, C, T >::operator-- () operator-- tdm::mat::operator-- tdm::mat< R, C, T >::apply tdm::mat< R, C, T >::row typename U mat & mat & tdm::mat< R, C, T >::operator+= (U rhs) operator+= tdm::mat::operator+= U rhs tdm::mat< R, C, T >::apply tdm::mat< R, C, T >::row typename U mat & mat & tdm::mat< R, C, T >::operator+= (const mat< R, C, U > &rhs) operator+= tdm::mat::operator+= const mat< R, C, U > & rhs tdm::mat< R, C, T >::apply tdm::mat< R, C, T >::row mat & mat & tdm::mat< R, C, T >::operator+= (const mat &rhs) operator+= tdm::mat::operator+= const mat & rhs typename U mat & mat & tdm::mat< R, C, T >::operator-= (U rhs) operator-= tdm::mat::operator-= U rhs tdm::mat< R, C, T >::apply tdm::mat< R, C, T >::row typename U mat & mat & tdm::mat< R, C, T >::operator-= (const mat< R, C, U > &rhs) operator-= tdm::mat::operator-= const mat< R, C, U > & rhs tdm::mat< R, C, T >::apply tdm::mat< R, C, T >::row mat & mat & tdm::mat< R, C, T >::operator-= (const mat &rhs) operator-= tdm::mat::operator-= const mat & rhs typename U mat & mat & tdm::mat< R, C, T >::operator*= (U rhs) operator*= tdm::mat::operator*= U rhs tdm::mat< R, C, T >::apply tdm::mat< R, C, T >::row tdm::mat< R, C, T >::operator/= typename U mat & mat & tdm::mat< R, C, T >::operator*= (const mat< R, C, U > &rhs) operator*= tdm::mat::operator*= const mat< R, C, U > & rhs mat & mat & tdm::mat< R, C, T >::operator*= (const mat &rhs) operator*= tdm::mat::operator*= const mat & rhs typename U mat & mat & tdm::mat< R, C, T >::operator/= (U rhs) operator/= tdm::mat::operator/= U rhs tdm::mat< R, C, T >::apply tdm::mat< R, C, T >::row typename U mat & mat & tdm::mat< R, C, T >::operator/= (const mat< R, C, U > &rhs) operator/= tdm::mat::operator/= const mat< R, C, U > & rhs tdm::inverse tdm::mat< R, C, T >::operator*= mat & mat & tdm::mat< R, C, T >::operator/= (const mat &rhs) operator/= tdm::mat::operator/= const mat & rhs typename ... dim_t H H R dim_t W W C std::enable_if< H==W, mat & >::type std::enable_if< H==W, mat & >::type tdm::mat< R, C, T >::transpose () transpose tdm::mat::transpose tdm::transpose mat & mat & tdm::mat< R, C, T >::negate () negate tdm::mat::negate tdm::mat< R, C, T >::apply tdm::vec< L, T >::negate tdm::mat< R, C, T >::row row_type row_type tdm::mat< R, C, T >::row (dim_t index) const row tdm::mat::row dim_t index tdm::mat< R, C, T >::operator[] tdm::mat< R, C, T >::column tdm::mat< R, C, T >::diagonal tdm::mat< R, C, T >::mat tdm::mat< R, C, T >::negate tdm::mat< R, C, T >::operator*= tdm::mat< R, C, T >::operator++ tdm::mat< R, C, T >::operator+= tdm::mat< R, C, T >::operator-- tdm::mat< R, C, T >::operator-= tdm::mat< R, C, T >::operator/= tdm::mat< R, C, T >::submat column_type column_type tdm::mat< R, C, T >::column (dim_t index) const column tdm::mat::column dim_t index tdm::mat< R, C, T >::apply tdm::mat< R, C, T >::row tdm::operator* dim_t H H dim_t W W std::enable_if<(H >1 &&W >1 &&H<=R &&W<=C), mat< H, W, T > >::type std::enable_if<(H >1 &&W >1 &&H<=R &&W<=C), mat< H, W, T > >::type tdm::mat< R, C, T >::submat (dim_t y, dim_t x) const submat tdm::mat::submat dim_t y dim_t x tdm::mat< R, C, T >::apply tdm::vec< L, T >::apply tdm::mat< R, C, T >::columns tdm::mat< R, C, T >::row tdm::mat< R, C, T >::rows tdm::mat< R, C, T >::values -values +values < C, value_type > tdm::matapply tdm::matapply tdm::matcolumn tdm::matcolumn_type tdm::matcolumns tdm::matdiagonal tdm::matdiagonal tdm::matdiagonal tdm::matfromColumns tdm::matfromRows tdm::matidentity tdm::matmat tdm::matmat tdm::matmat tdm::matmat tdm::matmat tdm::matmat tdm::matmat tdm::matnegate tdm::matoperator() tdm::matoperator() tdm::matoperator*= tdm::matoperator*= tdm::matoperator*= tdm::matoperator++ tdm::matoperator+= tdm::matoperator+= tdm::matoperator+= tdm::matoperator-- tdm::matoperator-= tdm::matoperator-= tdm::matoperator-= tdm::matoperator/= tdm::matoperator/= tdm::matoperator/= tdm::matoperator= tdm::matoperator= tdm::matoperator= tdm::matoperator[] tdm::matoperator[] tdm::matrow tdm::matrow_type tdm::matrows tdm::matsubmat tdm::mattranspose tdm::matvalue_type tdm::matvalues tdm::mat~mat