36#ifndef STK_EXPRBASEPRODUCT_H
37#define STK_EXPRBASEPRODUCT_H
45template<
typename Lhs,
typename Rhs>
class DotProduct;
47template<
typename Lhs,
typename Rhs>
class ArrayByArrayProduct;
48template<
typename Lhs,
typename Rhs>
class ArrayByVectorProduct;
49template<
typename Lhs,
typename Rhs>
class ArrayByDiagonalProduct;
51template<
typename Lhs,
typename Rhs>
class PointByArrayProduct;
52template<
typename Lhs,
typename Rhs>
class VectorByPointProduct;
54template<
typename Lhs,
typename Rhs>
class DiagonalByArrayProduct;
55template<
typename Lhs,
typename Rhs>
class DiagonalByArrayProduct;
66template<
typename Lhs,
typename Rhs,
int LStructure_,
int RStructure_>
72template<
typename Lhs,
typename Rhs,
int LStructure_>
78template<
typename Lhs,
typename Rhs,
int LStructure_>
86template<
typename Lhs,
typename Rhs,
int RStructure_>
92template<
typename Lhs,
typename Rhs>
98template<
typename Lhs,
typename Rhs>
106template<
typename Lhs,
typename Rhs>
113template<
typename Lhs,
typename Rhs>
117template<
typename Lhs,
typename Rhs>
125template<
typename Lhs,
typename Rhs,
int RStructure_>
130template<
typename Lhs,
typename Rhs>
134template<
typename Lhs,
typename Rhs>
143template<
typename Lhs,
typename Rhs,
int RStructure_>
146 typedef typename Rhs::Type
Type;
151template<
typename Lhs,
typename Rhs,
int LStructure_>
153{
typedef typename Lhs::Type
Type;
160template<
typename Derived>
161template<
typename Rhs>
190 return ProductType(this->asDerived(),
other.asDerived());
#define STK_STATIC_ASSERT(COND, MSG)
friend UnaryOperator< ProductWithOp< Type >, Derived > const operator*(Type const value, ExprBase< Derived > const &other)
The MultidimRegression class allows to regress a multidimensional output variable among a multivariat...
@ point_
row oriented vector/array/expression
@ diagonal_
diagonal matrix/array/expression
@ vector_
column oriented 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.
BinaryOperator< ProductOp< LType, RType >, Lhs, Rhs > ProductType
Traits< Lhs >::Type LType
Traits< Rhs >::Type RType
DiagonalByArrayProduct< Lhs, Rhs > ProductType
DiagonalByArrayProduct< Lhs, Rhs > ProductType
UnaryOperator< ProductWithOp< Type >, Rhs > ProductType
ArrayByDiagonalProduct< Lhs, Rhs > ProductType
BinaryOperator< ProductOp< LType, RType >, Lhs, Rhs > ProductType
Traits< Lhs >::Type LType
Traits< Rhs >::Type RType
DotProduct< Lhs, Rhs > ProductType
PointByArrayProduct< Lhs, Rhs > ProductType
VectorByPointProduct< Lhs, Rhs > ProductType
BinaryOperator< ProductOp< LType, RType >, Lhs, Rhs > ProductType
Traits< Lhs >::Type LType
Traits< Rhs >::Type RType
ArrayByDiagonalProduct< Lhs, Rhs > ProductType
UnaryOperator< ProductWithOp< Type >, Lhs > ProductType
ArrayByVectorProduct< Lhs, Rhs > ProductType
Helper class to select the correct ProductReturnType.
ArrayByArrayProduct< Lhs, Rhs > ProductType