1 #ifndef SELDON_FILE_VECTOR_EXPRESSION_HXX
7 template<
class T,
class E>
14 inline operator E&() {
return static_cast<E&
>(*this); }
15 inline operator E
const&()
const {
return static_cast<const E&
>(*this); }
21 template<
class T,
class E1,
class E2>
28 template<
class T1,
class T2>
38 template<
class T,
class E1,
class E2>
45 template<
class T1,
class T2>
55 template<
class T,
class E1,
class E2>
62 template<
class T1,
class T2>
72 template<
class T,
class E1,
class E2>
79 template<
class T1,
class T2>
89 template<
class T,
class T0,
class E>
106 template<
class T,
class T0,
class E>
123 template<
class T,
class T0,
class E>
140 template<
class T,
class T0,
class E>
157 template<
class T,
class E>
176 template<
class T,
class E1,
class E2>
179 template<
class T,
class E1,
class E2>
183 template<
class T,
class E1,
class E2>
188 template<
class T,
class E1,
class E2>
191 template<
class T,
class E1,
class E2>
195 template<
class T,
class E1,
class E2>
200 template<
class T,
class E1,
class E2>
203 template<
class T,
class E1,
class E2>
207 template<
class T,
class E1,
class E2>
212 template<
class T,
class E1,
class E2>
215 template<
class T,
class E1,
class E2>
219 template<
class T,
class E1,
class E2>
224 template<
class T,
class E>
227 template<
class T,
class E>
231 template<
class T,
class E>
235 template<
class T,
class E>
238 template<
class T,
class E>
242 template<
class T,
class E>
246 template<
class T,
class E>
249 template<
class T,
class E>
253 template<
class T,
class E>
257 template<
class T,
class E>
260 template<
class T,
class E>
264 template<
class T,
class E>
268 template<
class T,
class E>
271 template<
class T,
class E>
275 template<
class T,
class E>
279 template<
class T,
class E>
282 template<
class T,
class E>
286 template<
class T,
class E>
290 template<
class T,
class E>
293 template<
class T,
class E>
297 template<
class T,
class E>
301 template<
class T,
class E>
304 template<
class T,
class E>
308 template<
class T,
class E>
312 template<
class T,
class E>
317 #define SELDON_FILE_VECTOR_EXPRESSION_HXX
VectorScalSum(const T0 &, const VectorExpression< T1, E > &)
Constructor alpha + u with a scalar alpha and an expression u.
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 TinyMatrixSum< T, m, n, E1, E2 > operator+(const TinyMatrixExpression< T, m, n, E1 > &u, const TinyMatrixExpression< T, m, n, E2 > &v)
returns u+v
long GetSize() const
returns the size of the associated vector
Addition between a scalar and a vector.
long GetSize() const
returns the size of the associated vector
Expression between vectors.
VectorScaled(const T0 &, const VectorExpression< T1, E > &)
Constructor alpha * u with a scalar alpha and an expression u.
VectorScalDiff(const T0 &, const VectorExpression< T1, E > &)
Constructor alpha - u with a scalar alpha and an expression u.
VectorDivision(const VectorExpression< T1, E1 > &, const VectorExpression< T2, E2 > &)
Constructor u / v with two expressions u and v.
Division between a scalar and a vector.
const T operator()(long) const
returns the i-th element of the sum
const T operator()(long) const
returns the i-th element of the element-wise division
const T operator()(long) const
returns the element i of expression
long GetSize() const
returns the size of the associated vector
long GetSize() const
returns the size of the associated vectors
const T operator()(long) const
returns the i-th element of the difference
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
Sum between two expressions.
const T operator()(long) const
returns the i-th element of alpha*u
Subtraction between a scalar and a vector.
Division between two expressions (elementwise)
const T operator()(long) const
returns the i-th element of alpha - u
long GetSize() const
returns the size of the associated vectors
VectorSum(const VectorExpression< T1, E1 > &, const VectorExpression< T2, E2 > &)
Constructor u+v with two expressions u and v.
long GetSize() const
returns the size of the associated vector
const T operator()(long) const
returns the i-th element of the element-wise product
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
long GetSize() const
returns the size of the associated vector
VectorDifference(const VectorExpression< T1, E1 > &, const VectorExpression< T2, E2 > &)
Constructor u-v with two expressions u and v.
long GetSize() const
returns the size of the associated vectors
long GetSize() const
returns the size of the associated vectors
VectorOpposite(const VectorExpression< T, E > &)
Constructor -u with an expression u.
Product between two expressions (elementwise)
VectorScalDiv(const T0 &, const VectorExpression< T1, E > &)
Constructor alpha / u with a scalar alpha and an expression u.
VectorProduct(const VectorExpression< T1, E1 > &, const VectorExpression< T2, E2 > &)
Constructor u*v with two expressions u and v.
const T operator()(long) const
returns the i-th element of -u
const T operator()(long) const
returns the i-th element of alpha + u
const T operator()(long) const
returns the i-th element of alpha / u
Multiplication between a scalar and a vector.
long GetSize() const
returns the size of the associated vector
Difference between two expressions.