31 #if defined(SimpleMatrix_RECURSES)
32 #error Recursive header files inclusion detected in SimpleMatrix.h
33 #else // defined(SimpleMatrix_RECURSES)
35 #define SimpleMatrix_RECURSES
37 #if !defined SimpleMatrix_h
39 #define SimpleMatrix_h
44 #include "DGtal/base/Common.h"
45 #include "DGtal/kernel/CEuclideanRing.h"
46 #include "DGtal/kernel/PointVector.h"
47 #include "DGtal/kernel/NumberTraits.h"
74 template <
typename TComponent, DGtal::Dimension TM, DGtal::Dimension TN>
114 SimpleMatrix( std::initializer_list<TComponent> values );
233 template<
typename TComponentOther>
439 template <
typename T, DGtal::Dimension M, DGtal::Dimension N>
447 template <
typename TComponent, DGtal::Dimension TM, DGtal::Dimension TN>
456 #include "DGtal/math/linalg/SimpleMatrixSpecializations.h"
457 #include "DGtal/math/linalg/SimpleMatrix.ih"
462 #endif // !defined SimpleMatrix_h
464 #undef SimpleMatrix_RECURSES
465 #endif // else defined(SimpleMatrix_RECURSES)
PointVector< N, Component > RowVector
Component operator()(const DGtal::Dimension i, const DGtal::Dimension j) const
Self & operator+=(const Self &aMatrix)
SimpleMatrix< Component, TN, TM > transpose() const
Component minorDeterminant(const DGtal::Dimension i, const DGtal::Dimension j) const
BOOST_STATIC_ASSERT(TM > 0)
DGtal::uint32_t Dimension
void setComponent(const DGtal::Dimension i, const DGtal::Dimension j, const Component &aValue)
Self operator-(const Self &aMatrix) const
Self & operator*=(const Component &aScalar)
std::ostream & operator<<(std::ostream &out, const ATu0v1< TKSpace, TLinearAlgebra > &object)
BOOST_CONCEPT_ASSERT((concepts::CEuclideanRing< TComponent >))
SimpleMatrix< Component, TM, TN > inverse() const
Self operator/(const Component &aScalar) const
ColumnVector column(const DGtal::Dimension j) const
Aim: implements basic MxN Matrix services (M,N>=1).
DGtal is the top-level namespace which contains all DGtal functions and types.
static const DGtal::Dimension N
Self operator+(const Self &aMatrix) const
std::array< Component, M *N > myCofactorCoefs
Self operator*(const Component &aScalar) const
Aim: Defines the mathematical concept equivalent to a unitary commutative ring with a division operat...
RowVector row(const DGtal::Dimension i) const
void selfDisplay(std::ostream &out) const
std::array< Component, M *N > myValues
Matrix values containers.
SimpleMatrix & operator=(const Self &other)=default
Aim: Implements basic operations that will be used in Point and Vector classes.
SimpleMatrix< Component, TM, TN > Self
Component determinant() const
KForm< Calculus, order, duality > operator*(const typename Calculus::Scalar &scalar, const KForm< Calculus, order, duality > &form)
Self & operator/=(const Component &aScalar)
static const DGtal::Dimension M
PointVector< M, Component > ColumnVector
bool operator==(const Self &aMatrix) const
Dimension Index
Types needed by CLinearAlgebraContainer.
Self & operator-=(const Self &aMatrix)
void constant(const Component &aScalar)