45#ifndef LASS_GUARDIAN_OF_INCLUSION_NUM_MATRIX_VECTOR_INL
46#define LASS_GUARDIAN_OF_INCLUSION_NUM_MATRIX_VECTOR_INL
56#define LASS_NUM_MATRIX_VECTOR_ENFORCE_ADJACENT_DIMENSION(a, b)\
57 *LASS_UTIL_IMPL_MAKE_ENFORCER(\
58 ::lass::util::impl::EqualPredicate,\
59 ::lass::util::impl::DefaultRaiser,\
62 "Matrix '" LASS_STRINGIFY(a) "' and Vector '" LASS_STRINGIFY(b) "' have no adjacent dimensions for multiplication in '" LASS_HERE "'.")
72template <
typename T,
typename S1,
typename S2>
76 LASS_NUM_MATRIX_VECTOR_ENFORCE_ADJACENT_DIMENSION(iA, iB);
77 typedef impl::MVRightProd<T, S1, S2> TExpression;
78 return Vector<T, TExpression>(TExpression(iA.storage(), iB.storage()));
88template <
typename T,
typename S>
91 typedef impl::MVDiag<T, S> TExpression;
102template <
typename T,
typename S>
105 typedef impl::MVColumn<T, typename Vector<T>::TStorage > TAdaptor;
a dynamic sized n-dimensional matrix with expression templates
a dynamic sized n-dimensional vector with vector expression templates
Vector< T, impl::MVRightProd< T, S1, S2 > > operator*(const Matrix< T, S1 > &iA, const Vector< T, S2 > &iB)
multiply matrix with column vector
Matrix< T, impl::MVDiag< T, S > > diagonal(const Vector< T, S > &iB)
Create diagonal matrix from vector.
void solve(const Matrix< T, S > &iA, Vector< T > &iB)
Solves set of equation A * X == B.
numeric types and traits.
Library for Assembled Shared Sources.