36#ifndef STK_CONST_ARRAYS_H
37#define STK_CONST_ARRAYS_H
47template<
typename Type_,
int Size_ = UnknownSize>
class Identity;
48template<
typename Type_,
int Size_ = UnknownSize>
class Square;
49template<
typename Type_,
int Size_ = UnknownSize>
class Vector;
50template<
typename Type_,
int Size_ = UnknownSize>
class Point;
51template<
typename Type_,
int SizeRows_ = UnknownSize,
int SizeCols_ = UnknownSize>
class Array;
52template<
typename Type_,
int SizeRows_ = UnknownSize,
int SizeCols_ = UnknownSize>
class UpperTriangular;
53template<
typename Type_,
int SizeRows_ = UnknownSize,
int SizeCols_ = UnknownSize>
class LowerTriangular;
101template<
typename Type_,
int Size_>
102struct Traits< Const::Identity <Type_, Size_> >
120template<
typename Type_,
int Size_>
138template<
typename Type_,
int Size_>
139struct Traits< Const::Point <Type_, Size_> >
156template<
typename Type_,
int Size_>
157struct Traits< Const::Square <Type_, Size_> >
174template<
typename Type_,
int SizeRows_,
int SizeCols_>
175struct Traits< Const::Array<Type_, SizeRows_, SizeCols_> >
191template<
typename Type_,
int SizeRows_,
int SizeCols_>
192struct Traits< Const::UpperTriangular<Type_, SizeRows_, SizeCols_> >
208template<
typename Type_,
int SizeRows_,
int SizeCols_>
209struct Traits< Const::LowerTriangular<Type_, SizeRows_, SizeCols_> >
227template<
class Derived>
262 inline int beginRows()
const {
return Base2D::beginRows();}
264 inline int endRows()
const {
return Base2D::endRows();}
266 inline int sizeRows()
const {
return Base2D::sizeRows();}
273 inline int beginCols()
const {
return Base2D::beginCols();}
275 inline int endCols()
const {
return Base2D::endCols();}
277 inline int sizeCols()
const {
return Base2D::sizeCols();}
285 bool empty()
const {
return Base2D::empty();}
310template<
typename Type_,
int Size_ >
361template<
typename Type_,
int Size_ >
409template<
typename Type_,
int SizeRows_,
int SizeCols_ >
458template<
typename Type_,
int SizeRows_,
int SizeCols_ >
507template<
typename Type_,
int SizeRows_,
int SizeCols_ >
551template<
typename Type_,
int Size_ >
599template<
typename Type_,
int Size_ >
In this file we define the base class for Arrays and Expressions.
Define the constant general matrix.
IConstArray< Array< Type_, SizeRows_, SizeCols_ > > Base
TypeConst elt2Impl(int i, int j) const
hidden::Traits< Array< Type_, SizeRows_, SizeCols_ > >::TypeConst TypeConst
Array()
default constructor
Array(Range rangeRows, Range rangeCols)
constructor with specified dimension
hidden::Traits< Array< Type_, SizeRows_, SizeCols_ > >::Type Type
hidden::Traits< Derived >::TypeConst TypeConst
ColRange const & cols() const
IConstArray(Range const &rows, Range const &cols)
constructor with specified dimension
ColRange const & colsImpl() const
TRange< sizeCols_ > ColRange
Type of the Range for the columns.
RowRange const & rows() const
IContainer2D< sizeRows_, sizeCols_ > Base2D
Type for the IContainer2D base Class.
TRange< sizeRows_ > RowRange
Type of the Range for the rows.
RowRange const & rowsImpl() const
IConstArray()
default constructor
Define the constant identity matrix.
hidden::Traits< Identity< Type_, Size_ > >::TypeConst TypeConst
Identity(Range I)
constructor with specified dimension
Identity()
default constructor
hidden::Traits< Identity< Type_, Size_ > >::Type Type
TypeConst elt2Impl(int i, int j) const
IConstArray< Identity< Type_, Size_ > > Base
TypeConst elt1Impl(int i) const
Define the constant lower triangular matrix.
hidden::Traits< LowerTriangular< Type_, SizeRows_, SizeCols_ > >::TypeConst TypeConst
TypeConst elt2Impl(int i, int j) const
LowerTriangular()
default constructor
IConstArray< LowerTriangular< Type_, SizeRows_, SizeCols_ > > Base
hidden::Traits< LowerTriangular< Type_, SizeRows_, SizeCols_ > >::Type Type
LowerTriangular(Range rangeRows, Range rangeCols)
constructor with specified dimension
Define the constant point.
Point(Range I)
constructor with specified dimension
IConstArray< Point< Type_, Size_ > > Base
Point()
default constructor
TypeConst elt1Impl(int j) const
hidden::Traits< Point< Type_, Size_ > >::Type Type
hidden::Traits< Point< Type_, Size_ > >::TypeConst TypeConst
TypeConst elt2Impl(int i, int j) const
Define the constant square matrix.
hidden::Traits< Square< Type_, Size_ > >::Type Type
hidden::Traits< Square< Type_, Size_ > >::TypeConst TypeConst
Square()
default constructor
IConstArray< Square< Type_, Size_ > > Base
TypeConst elt2Impl(int i, int j) const
Square(Range I)
constructor with specified dimension
Define the constant upper triangular matrix.
UpperTriangular()
default constructor
TypeConst elt2Impl(int i, int j) const
IConstArray< UpperTriangular< Type_, SizeRows_, SizeCols_ > > Base
UpperTriangular(Range rangeRows, Range rangeCols)
constructor with specified dimension
hidden::Traits< UpperTriangular< Type_, SizeRows_, SizeCols_ > >::Type Type
hidden::Traits< UpperTriangular< Type_, SizeRows_, SizeCols_ > >::TypeConst TypeConst
Define the constant point.
TypeConst elt2Impl(int i, int j) const
hidden::Traits< Vector< Type_, Size_ > >::Type Type
TypeConst elt1Impl(int i) const
Vector()
default constructor
IConstArray< Vector< Type_, Size_ > > Base
Vector(Range I)
constructor with specified dimension
hidden::Traits< Vector< Type_, Size_ > >::TypeConst TypeConst
base class for template evaluation expressions and visitors.
Interface base class for 2D containers.
The MultidimRegression class allows to regress a multidimensional output variable among a multivariat...
Index sub-vector region: Specialization when the size is unknown.
Array2DVector< Real > Vector
final class for a Real vertical container.
@ sparse_
sparse matrix/vector/array/expression
@ array2D_
general matrix/array/expression
@ point_
row oriented vector/array/expression
@ lower_triangular_
lower triangular matrix/array/expression
@ upper_triangular_
upper triangular matrix/array/expression
@ diagonal_
diagonal matrix/array/expression
@ vector_
column oriented vector/array/expression
@ square_
square matrix/array/expression
@ by_col_
storage by column
Vector< int, 3 > Vector3i
Vector< Real, UnknownSize > ConstVectorX
Vector< int, 3 > ConstVector3i
Vector< int, 2 > ConstVector2i
Point< double, UnknownSize > ConstPointXd
Point< int, 2 > ConstPoint2i
Point< Real, UnknownSize > PointX
Point< double, UnknownSize > PointXd
Point< Real, UnknownSize > ConstPointX
Point< double, 2 > Point2d
Point< Real, 3 > ConstPoint3
Point< double, 3 > Point3d
Vector< Real, 2 > ConstVector2
Point< int, UnknownSize > ConstPointXi
Vector< Real, UnknownSize > VectorX
Vector< double, UnknownSize > ConstVectorXd
Vector< double, 3 > ConstVector3d
Point< double, 2 > ConstPoint2d
Vector< int, 2 > Vector2i
Vector< Real, 3 > Vector3
Point< int, 3 > ConstPoint3i
Point< double, 3 > ConstPoint3d
Vector< int, UnknownSize > VectorXi
Vector< double, 2 > ConstVector2d
Vector< int, UnknownSize > ConstVectorXi
Vector< Real, 2 > Vector2
Point< Real, 2 > ConstPoint2
Vector< double, 2 > Vector2d
Point< int, UnknownSize > PointXi
Vector< double, 3 > Vector3d
Vector< Real, 3 > ConstVector3
Vector< double, UnknownSize > VectorXd
The namespace STK is the main domain space of the Statistical ToolKit project.
RemoveConst< Type >::Type TypeConst
RemoveConst< Type >::Type TypeConst
RemoveConst< Type >::Type TypeConst
RemoveConst< Type >::Type TypeConst
RemoveConst< Type >::Type TypeConst
RemoveConst< Type >::Type TypeConst
RemoveConst< Type >::Type TypeConst