41template<
class Derived>
class ExprBase;
42template<
class Derived>
class ArrayBase;
65template<
class Derived>
class ArrayInitializer;
69 template<
typename Lhs,
typename Rhs,
int LStructure_,
int RStructure_>
struct ProductSelector;
70 template<
typename Lhs,
typename Rhs,
int operatorType_>
struct OperatorSelector;
77#define DEFINE_BINARY_OPERATOR(OPERATORNAME, BINARYOPERATORNAME) \
78template<typename Rhs> \
79typename hidden::OperatorSelector<Derived, Rhs, Arrays::BINARYOPERATORNAME>::Result const \
80OPERATORNAME( ExprBase<Rhs> const& other) const;
83#define MAKE_UNARY_OPERATOR_NOARG(FUNCTION, FUNCTOR) \
84 inline UnaryOperator<FUNCTOR<Type>, Derived> FUNCTION() const \
85 { return UnaryOperator<FUNCTOR<Type>, Derived>(this->asDerived()); }
88#define MAKE_UNARY_OPERATOR_1ARG(FUNCTION, FUNCTOR) \
89 inline UnaryOperator<FUNCTOR<Type>, Derived> FUNCTION(Type const& value) const \
90 { return UnaryOperator<FUNCTOR<Type>, Derived>(this->asDerived(), FUNCTOR<Type>(value)); }
93#define MAKE_RESHAPE_OPERATOR(OPERATOR, SHAPE) \
94 inline OPERATOR##Operator< Derived> const SHAPE() const \
95 { return OPERATOR##Operator< Derived>(this->asDerived()); }
112template<
class Derived>
140 template<
typename Visitor>
157 bool const any()
const;
165 bool const all()
const;
262 template<
typename Rhs>
267 template<
typename Rhs>
272 template<
typename Rhs>
277 template<
typename Rhs>
282 template<
typename Rhs>
287 template<
typename Rhs>
292 template<
typename Rhs>
297 template<
typename Rhs>
302 template<
typename Rhs>
307 template<
typename Rhs>
312 template<
typename Rhs>
317 template<
typename Rhs>
455 {
return other.asDerived() + value;}
463 {
return other.asDerived()*value; }
466 template<
typename OtherType>
546 template<
int SizeRows_,
int SizeCols_>
568 template<
typename Rhs>
575#undef DEFINE_BINARY_OPERATOR
576#undef MAKE_UNARY_OPERATOR_NOARG
577#undef MAKE_UNARY_OPERATOR_1ARG
578#undef MAKE_RESHAPE_OPERATOR
#define MAKE_RESHAPE_OPERATOR(OPERATOR, SHAPE)
utility macro allowing to construct unary operators
In this file we define the main traits class we use for the STK++ Containers.
In this file we define utilities functions and enum for the Array classes.
In this file we implement the Binary Implementation helper classes.
In this file we implement the BinaryOperator class.
In this file we implement the DotProduct class.
In this file we define the dot product and its particular cases.
In this file we define the matrix-matrix product and its particular cases.
In this file we define the Visitors for ExprBase.
#define MAKE_UNARY_OPERATOR_NOARG(FUNCTION, FUNCTOR)
utility macro allowing to construct unary operators
#define MAKE_UNARY_OPERATOR_1ARG(FUNCTION, FUNCTOR)
utility macro allowing to construct unary operators with one argument
#define DEFINE_BINARY_OPERATOR(OPERATORNAME, BINARYOPERATORNAME)
utility macro allowing to define binary operators
This is an internal header file, included by other Containers library headers.
This is an internal header file, included by other Containers library headers.
In this file we implement the distribution functors (pdf, lpdf, cdf, icdf) used by arrays.
In this file we define the interface base class IUnivLaw for all probabilities laws.
In this file we select the product method to use.
In this file we implement the ProductOperator class.
In this file we implement the DiagonalizeOperator, DiagonalGetterOperator, UpperTriangularizeOperator...
In this file we implement the RowOperator, ColOperator, SubVectorOperator and SubOperator classes.
#define STK_STATIC_ASSERT_ONE_DIMENSION_ONLY(EXPR)
#define STK_STATIC_ASSERT_TWO_DIMENSIONS_ONLY(EXPR)
In this file we implement the TransposeOperator class.
In this file we implement the UnaryOperator class.
base class for template evaluation expressions and visitors.
UnaryOperator< CosOp< Type >, Derived > cos() const
SubOperator< Derived, Size_, sizeCols_ > const row(TRange< Size_ > const &I) const
UnaryOperator< NegOp< Type >, Derived > neg() const
friend UnaryOperator< ProductWithOp< Type >, Derived > const operator*(Type const value, ExprBase< Derived > const &other)
UnaryOperator< TanOp< Type >, Derived > tan() const
UnaryOperator< LogOp< Type >, Derived > log() const
TransposeOperator< Derived > const transpose() const
Type const varianceSafe() const
UnaryOperator< Law::PdfOp< Type >, Derived > pdf(Law::IUnivLaw< Type > const &law) const
compute pdf values to this using distribution law given by user
ITContainer< Derived, structure_ > Base
friend UnaryOperator< SubstractToOp< Type >, Derived > const operator-(Type const value, ExprBase< Derived > const &other)
hidden::Traits< Derived >::TypeConst TypeConst
bool const any() const
check if there is any non-zero element in an expression.
UnaryOperator< AbsOp< Type >, Derived > abs() const
Type const wmean(ExprBase< Rhs > const &weights) const
UnaryOperator< Law::IcdfOp< Type >, Derived > icdf(Law::IUnivLaw< Type > const &law) const
compute inverse cumulative distribution function using distribution law given by user
hidden::OperatorSelector< Derived, Rhs, Arrays::maxOp_ >::Result const max(ExprBase< Rhs > const &other) const
RowOperator< Derived > const row(int i) const
bool const all() const
check if all the elements in an expression are not zero.
friend UnaryOperator< SumWithOp< Type >, Derived > const operator+(Type const &value, ExprBase< Derived > const &other)
Type const wnorm2(ExprBase< Rhs > const &weights) const
DiagonalizeOperator< Derived > const diagonalize() const
LowerTriangularizeOperator< Derived > const lowerTriangularize() const
DiagonalGetterOperator< Derived > const getDiagonal() const
Type const meanSafe() const
Type const minElt() const
Type const wnorm2Safe(ExprBase< Rhs > const &weights) const
Type const wvarianceSafe(Type const &mean, ExprBase< Rhs > const &weights) const
Type const variance() const
UnaryOperator< SafeOp< Type >, Derived > const safe(Type const value=Type()) const
Type const wvariance(Type const &mean, ExprBase< Rhs > const &weights) const
UnaryOperator< SqrtOp< Type >, Derived > sqrt() const
int count() const
compute the value of non-zero element in an expression.
Type const sumSafe() const
UnaryOperator< SafeInverseOp< Type >, Derived > safeInverse(Type const &value) const
UnaryOperator< CastOp< Type, OtherType >, Derived > const cast() const
UnaryOperator< CubeOp< Type >, Derived > cube() const
hidden::Traits< Derived >::Type Type
UnaryOperator< PowOp< Type >, Derived > pow(Type const &value) const
int nbAvailableValues() const
UnaryOperator< IsFiniteOp< Type >, Derived > isFinite() const
UpperTriangularizeOperator< Derived > const upperTriangularize() const
Visitor::TypeConst visit(Visitor &visitor) const
Visit the container using a constant visitor.
UnaryOperator< IsInfiniteOp< Type >, Derived > isInfinite() const
Type const maxElt() const
Type const minEltSafe() const
Type const wmeanSafe(ExprBase< Rhs > const &weights) const
hidden::OperatorSelector< Derived, Rhs, Arrays::productOp_ >::Result const prod(ExprBase< Rhs > const &other) const
hidden::Promote< Type, typenameRhs::Type >::result_type const dotSafe(ExprBase< Rhs > const &other) const
UnaryOperator< AsinOp< Type >, Derived > asin() const
hidden::Promote< Type, typenameRhs::Type >::result_type const dot(ExprBase< Rhs > const &other) const
UnaryOperator< SquareOp< Type >, Derived > square() const
UnaryOperator< OtherOperator< Type >, Derived > const funct1(Type const value) const
Type const normInf() const
ColOperator< Derived > const col(int j) const
UnaryOperator< Law::LogPdfOp< Type >, Derived > lpdf(Law::IUnivLaw< Type > const &law) const
compute log-pdf values to this using distribution law given by user
SubOperator< Derived, sizeRows_, Size_ > const col(TRange< Size_ > const &J) const
SubVectorOperator< Derived, Size_ > const sub(TRange< Size_ > const &I) const
SubOperator< Derived, SizeRows_, SizeCols_ > const sub(TRange< SizeRows_ > const &I, TRange< SizeCols_ > const &J) const
Type const wnormSafe(ExprBase< Rhs > const &weights) const
UnaryOperator< OtherOperator< Type >, Derived > const funct0() const
Type const wvarianceSafe(ExprBase< Rhs > const &weights) const
UnaryOperator< AcosOp< Type >, Derived > acos() const
UnaryOperator< IsNaOp< Type >, Derived > isNA() const
UnaryOperator< Law::LogCdfOp< Type >, Derived > lcdf(Law::IUnivLaw< Type > const &law) const
compute log-cumulative distribution function of this using distribution law given by user
Type const wnorm(ExprBase< Rhs > const &weights) const
SymmetrizeOperator< Derived > const symmetrize() const
ExprBase()
Default constructor.
UnaryOperator< InverseOp< Type >, Derived > inverse() const
UnaryOperator< Law::LogCdfcOp< Type >, Derived > lcdfc(Law::IUnivLaw< Type > const &law) const
compute complementary cumulative distribution function of this using distribution law given by user
hidden::OperatorSelector< Derived, Rhs, Arrays::minOp_ >::Result const min(ExprBase< Rhs > const &other) const
UpperSymmetrizeOperator< Derived > const upperSymmetrize() const
UnaryOperator< Law::CdfcOp< Type >, Derived > cdfc(Law::IUnivLaw< Type > const &law) const
compute complementary cumulative distribution function of this using distribution law given by user
UnaryOperator< Law::CdfOp< Type >, Derived > cdf(Law::IUnivLaw< Type > const &law) const
compute cumulative distribution function of this using distribution law given by user
UnaryOperator< SinOp< Type >, Derived > sin() const
LowerSymmetrizeOperator< Derived > const lowerSymmetrize() const
Type const normSafe() const
Type const wvariance(ExprBase< Rhs > const &weights) const
UnaryOperator< ExpOp< Type >, Derived > exp() const
Type const wsum(ExprBase< Rhs > const &weights) const
Type const norm2Safe() const
Type const wsumSafe(ExprBase< Rhs > const &weights) const
Type const maxEltSafe() const
Specialized interface class for all arrays (can be either 2D arrays or 1D arrays).
Interface base class for all the univariate distributions.
The MultidimRegression class allows to regress a multidimensional output variable among a multivariat...
Generic expression when the sub-part of an expression is accessed (specialization for vectors)
Index sub-vector region with fixed size.
Generic expression when unary operator is applied to an expression.
The namespace STK is the main domain space of the Statistical ToolKit project.
Template functor which compute the absolute value of a number.
Template functor which compute the arc cosine of a number.
Template functor which compute the arc sine of a number.
Template functor to compute the bitwise and with a fixed value.
Template functor to compute the bitwise or with a fixed value.
Template functor to compute the bitwise xor with a fixed value.
Template functor which compute the cosine of a number.
Template functor which compute the cube of a number.
Template functor to add a number to a fixed value.
Template functor to divide a number by a fixed value.
Template functor to test if a number is equal to a fixed value.
Template functor which compute the exponential of a number.
Template functor to test if a number is greater or equal than a fixed value.
Template functor to test if a number is greater than a fixed value.
Template functor which compute the inverse of a number.
Template functor testing if a number is a finite value.
Template functor testing if a number is an infinite value.
Template functor testing if a number is a NA value.
Template functor to test if a number is less or equal than a fixed value.
Template functor to test if a number is less than a fixed value.
Template functor which compute the logarithm of a number.
Template functor computing logical and with a fixed value.
Template functor computing logical and with a fixed value.
Template functor to compute the minimum with a fixed value.
Template functor to compute the minimum between a fixed value.
Template functor to compute the minimum with a fixed value.
Template functor giving the not value.
Template functor to test if a number is different than a fixed value.
Template functor which compute the opposite of a number.
Template functor to raise a number to a power.
Template functor computing the product of a number by a fixed value.
Template functor which compute safely the inverse of a number.
Template functor which return a default value if the value is NA.
Template functor which compute the sine of a number.
Template functor which compute the square root of a number.
Template functor which compute the square of a number.
Template functor to add a number to a fixed value.
Template functor which compute the tan of a number.
Helper class to select the correct ProductReturnType.