1 #ifndef SELDON_FILE_TINY_VECTOR_EXPRESSION_HXX
7 template<
class T,
int m,
class E>
13 inline operator E&() {
return static_cast<E&
>(*this); }
14 inline operator E
const&()
const {
return static_cast<const E&
>(*this); }
20 template<
class T,
int m,
class E1,
class E2>
27 template<
class T1,
class T2>
36 template<
class T,
int m,
class E1,
class E2>
43 template<
class T1,
class T2>
52 template<
class T,
int m,
class E1,
class E2>
59 template<
class T1,
class T2>
68 template<
class T,
int m,
class E1,
class E2>
75 template<
class T1,
class T2>
84 template<
class T,
int m,
class T0,
class E>
100 template<
class T,
int m,
class T0,
class E>
116 template<
class T,
int m,
class T0,
class E>
132 template<
class T,
int m,
class T0,
class E>
148 template<
class T,
int m,
class E>
166 template<
class T,
int m,
class E1,
class E2>
171 template<
class T,
int m,
class E1,
class E2>
176 template<
class T,
int m,
class E1,
class E2>
181 template<
class T,
int m,
class E1,
class E2>
186 template<
class T,
int m,
class E1,
class E2>
191 template<
class T,
int m,
class E1,
class E2>
196 template<
class T,
int m,
class E1,
class E2>
201 template<
class T,
int m,
class E1,
class E2>
206 template<
class T,
int m,
class E1,
class E2>
211 template<
class T,
int m,
class E1,
class E2>
216 template<
class T,
int m,
class E1,
class E2>
221 template<
class T,
int m,
class E1,
class E2>
226 template<
class T,
int m,
class E>
230 template<
class T,
int m,
class E>
235 template<
class T,
int m,
class E>
240 template<
class T,
int m,
class E>
244 template<
class T,
int m,
class E>
247 const complex<T>& alpha);
249 template<
class T,
int m,
class E>
254 template<
class T,
int m,
class E>
258 template<
class T,
int m,
class E>
263 template<
class T,
int m,
class E>
268 template<
class T,
int m,
class E>
272 template<
class T,
int m,
class E>
275 const complex<T>& alpha);
277 template<
class T,
int m,
class E>
282 template<
class T,
int m,
class E>
286 template<
class T,
int m,
class E>
291 template<
class T,
int m,
class E>
296 template<
class T,
int m,
class E>
300 template<
class T,
int m,
class E>
303 const complex<T>& alpha);
305 template<
class T,
int m,
class E>
310 template<
class T,
int m,
class E>
314 template<
class T,
int m,
class E>
317 const complex<T>& alpha);
319 template<
class T,
int m,
class E>
324 template<
class T,
int m,
class E>
328 template<
class T,
int m,
class E>
333 template<
class T,
int m,
class E>
338 template<
class T,
int m,
class E>
343 #define SELDON_FILE_TINY_VECTOR_EXPRESSION_HXX
TinyVectorSum(const TinyVectorExpression< T1, m, E1 > &, const TinyVectorExpression< T2, m, E2 > &)
Constructor u+v with two expressions u and v.
const TinyMatrixProduct< T, m, n, E1, E2 > operator*(const TinyMatrixExpression< T, m, n, E1 > &u, const TinyMatrixExpression< T, m, n, E2 > &v)
returns u*v element-wise
const T operator()(int) const
returns the i-th element of the element-wise product
const TinyMatrixSum< T, m, n, E1, E2 > operator+(const TinyMatrixExpression< T, m, n, E1 > &u, const TinyMatrixExpression< T, m, n, E2 > &v)
returns u+v
Product between two expressions (elementwise)
const T operator()(int) const
returns the i-th element of the sum
Expression between vectors.
Subtraction between a scalar and a vector.
const T operator()(int) const
returns the i-th element of the difference
Division between a scalar and a vector.
Addition between a scalar and a vector.
TinyVectorScalSum(const T0 &, const TinyVectorExpression< T1, m, E > &)
Constructor alpha + u with a scalar alpha and an expression u.
TinyVectorScaled(const T0 &, const TinyVectorExpression< T1, m, E > &)
Constructor alpha * u with a scalar alpha and an expression u.
TinyVectorDivision(const TinyVectorExpression< T1, m, E1 > &, const TinyVectorExpression< T2, m, E2 > &)
Constructor u / v with two expressions u and v.
TinyVectorScalDiff(const T0 &, const TinyVectorExpression< T1, m, E > &)
Constructor alpha - u with a scalar alpha and an expression u.
const T operator()(int) const
returns the i-th element of alpha / u
TinyVectorDifference(const TinyVectorExpression< T1, m, E1 > &, const TinyVectorExpression< T2, m, E2 > &)
Constructor u-v with two expressions u and v.
Sum between two expressions.
const TinyMatrixDivision< T, m, n, E1, E2 > operator/(const TinyMatrixExpression< T, m, n, E1 > &u, const TinyMatrixExpression< T, m, n, E2 > &v)
returns u/v element-wise
const T operator()(int) const
returns the i-th element of alpha*u
Division between two expressions (elementwise)
Multiplication between a scalar and a vector.
TinyVectorOpposite(const TinyVectorExpression< T, m, E > &)
Constructor -u with an expression u.
const TinyMatrixDifference< T, m, n, E1, E2 > operator-(const TinyMatrixExpression< T, m, n, E1 > &u, const TinyMatrixExpression< T, m, n, E2 > &v)
returns u-v
const T operator()(int) const
returns the i-th element of alpha - u
const T operator()(int) const
returns the i-th element of -u
TinyVectorScalDiv(const T0 &, const TinyVectorExpression< T1, m, E > &)
Constructor alpha / u with a scalar alpha and an expression u.
Difference between two expressions.
TinyVectorProduct(const TinyVectorExpression< T1, m, E1 > &, const TinyVectorExpression< T2, m, E2 > &)
Constructor u*v with two expressions u and v.
const T operator()(int) const
returns the element i of expression
const T operator()(int) const
returns the i-th element of the element-wise division
const T operator()(int) const
returns the i-th element of alpha + u