36#ifndef STK_BINARYOPERATORS_H
37#define STK_BINARYOPERATORS_H
39#define EGAL(arg1, arg2) ((arg1::structure_ == int(Arrays::arg2)))
44template<
typename FunctorOp,
typename Lhs,
typename Rhs>
52template<
typename FunctorOp,
typename Lhs,
typename Rhs>
73 isRes2D_ = isLhs2D_ && isRhs2D_,
75 is1D1D_ = isLhs1D_ && isRhs1D_,
79 orient_ = Lhs::orient_,
90 typedef typename FunctorOp::result_type
Type;
115template<
typename FunctorOp,
typename Lhs,
typename Rhs>
157 && (
int(Lhs::sizeCols_) !=
int(Rhs::sizeCols_))
162 && (
int(Lhs::sizeRows_) !=
int(Rhs::sizeRows_))
165#ifdef STK_BOUNDS_CHECK
#define STKRUNTIME_ERROR_2ARG(Where, Arg1, Arg2, Error)
#define STK_STATIC_ASSERT_ROWS_DIMENSIONS_MISMATCH(COND)
#define STK_STATIC_ASSERT_COLS_DIMENSIONS_MISMATCH(COND)
#define STK_STATIC_ASSERT_BINARY_OPERATOR_MISMATCH(COND)
Generic expression where a binary operator is applied to two expressions.
BinaryOperator(Lhs const &lhs, Rhs const &rhs, FunctorOp const &func=FunctorOp())
default constructor
ColRange const & colsImpl() const
TypeConst elt1Impl(int i) const
TypeConst elt0Impl() const
hidden::BinaryEltImpl< FunctorOp, Lhs, Rhs, Lhs::structure_, Rhs::structure_ > EltImpl
hidden::BinaryRowsImpl< Lhs, Rhs, EltImpl::sizeRows_, EltImpl::useForRows_ > RowsImpl
TypeConst elt2Impl(int i, int j) const
FunctorOp const & functor() const
RowRange const & rowsImpl() const
hidden::BinaryColsImpl< Lhs, Rhs, EltImpl::sizeCols_, EltImpl::useForCols_ > ColsImpl
hidden::Traits< BinaryOperator >::Type Type
hidden::Traits< BinaryOperator >::TypeConst TypeConst
TRange< sizeCols_ > ColRange
Type of the Range for the columns.
TRange< sizeRows_ > RowRange
Type of the Range for the rows.
base class for template evaluation expressions and visitors.
The MultidimRegression class allows to regress a multidimensional output variable among a multivariat...
@ sparse_
sparse matrix/vector/array/expression
@ dense_
dense matrix/vector/array/expression
const int UnknownSize
This value means that an integer is not known at compile-time, and that instead the value is stored i...
The namespace STK is the main domain space of the Statistical ToolKit project.
Base class for all referencing containers.
implement the access to the columns of the BinaryOperator Possible cases are:
Helper class giving the Structure of a binary operator.
implement the access to the rows of the BinaryOperator Possible cases are:
FunctorOp::result_type TypeConst
FunctorOp::result_type Type
ColOperator< BinaryOperator< FunctorOp, Lhs, Rhs > > Col
RowOperator< BinaryOperator< FunctorOp, Lhs, Rhs > > Row