All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Modules | Classes | Functions | Friends
Dense Vectors

Modules

 DynamicVector
 
 StaticVector
 
 Expressions
 

Classes

struct  blaze::DenseVector< VT, TF >
 Base class for N-dimensional dense vectors.The DenseVector class is a base class for all arbitrarily sized (N-dimensional) dense vectors. It provides an abstraction from the actual type of the dense vector, but enables a conversion back to this type via the Vector base class. More...
 

Functions

template<typename T1 , typename T2 >
const DisableIf
< IsMatMatMultExpr< T1 >
, DMatDVecMultExpr< T1, T2 >
>::Type 
blaze::operator* (const DenseMatrix< T1, false > &mat, const DenseVector< T2, false > &vec)
 Multiplication operator for the multiplication of a row-major dense matrix and a dense vector ( $ \vec{y}=A*\vec{x} $). More...
 
template<typename T1 , bool SO, typename T2 >
const EnableIf
< IsMatMatMultExpr< T1 >
, MultExprTrait< T1, T2 >
>::Type::Type 
blaze::operator* (const DenseMatrix< T1, SO > &mat, const DenseVector< T2, false > &vec)
 Multiplication operator for the multiplication of a dense matrix-matrix multiplication expression and a dense vector ( $ \vec{y}=(A*B)*\vec{x} $). More...
 
template<typename T1 , typename T2 >
const DisableIf
< IsMatMatMultExpr< T1 >
, DMatSVecMultExpr< T1, T2 >
>::Type 
blaze::operator* (const DenseMatrix< T1, false > &mat, const SparseVector< T2, false > &vec)
 Multiplication operator for the multiplication of a row-major dense matrix and a sparse vector ( $ \vec{y}=A*\vec{x} $). More...
 
template<typename T1 , bool SO, typename T2 >
const EnableIf
< IsMatMatMultExpr< T1 >
, MultExprTrait< T1, T2 >
>::Type::Type 
blaze::operator* (const DenseMatrix< T1, SO > &mat, const SparseVector< T2, false > &vec)
 Multiplication operator for the multiplication of a dense matrix-matrix multiplication expression and a sparse vector ( $ \vec{y}=(A*B)*\vec{x} $). More...
 
template<typename VT , bool TF>
const DVecAbsExpr< VT, TF > blaze::abs (const DenseVector< VT, TF > &dv)
 Returns a vector containing the absolute values of each single element of dv. More...
 
template<typename T1 , typename T2 , bool TF>
const DVecDVecAddExpr< T1, T2, TF > blaze::operator+ (const DenseVector< T1, TF > &lhs, const DenseVector< T2, TF > &rhs)
 Addition operator for the addition of two dense vectors ( $ \vec{a}=\vec{b}+\vec{c} $). More...
 
template<typename T1 , typename T2 >
const DVecDVecCrossExpr< T1, T2 > blaze::operator% (const DenseVector< T1, false > &lhs, const DenseVector< T2, false > &rhs)
 Operator for the cross product of two dense vectors ( $ \vec{a}=\vec{b} \times \vec{c} $). More...
 
template<typename T1 , typename T2 , bool TF>
const DVecDVecMultExpr< T1, T2,
TF > 
blaze::operator* (const DenseVector< T1, TF > &lhs, const DenseVector< T2, TF > &rhs)
 Multiplication operator for the componentwise product of two dense vectors ( $ \vec{a}=\vec{b}*\vec{c} $). More...
 
template<typename T1 , typename T2 , bool TF>
const DVecDVecSubExpr< T1, T2, TF > blaze::operator- (const DenseVector< T1, TF > &lhs, const DenseVector< T2, TF > &rhs)
 Subtraction operator for the subtraction of two dense vectors ( $ \vec{a}=\vec{b}-\vec{c} $). More...
 
template<typename VT , bool TF>
const DVecEvalExpr< VT, TF > blaze::eval (const DenseVector< VT, TF > &dv)
 Forces the evaluation of the given dense vector expression dv. More...
 
template<typename T1 , typename T2 , bool TF>
const EnableIf< IsNumeric< T2 >
, typename DivExprTrait< T1,
T2 >::Type >::Type 
blaze::operator/ (const DenseVector< T1, TF > &vec, T2 scalar)
 Division operator for the divison of a dense vector by a scalar value ( $ \vec{a}=\vec{b}/s $). More...
 
template<typename VT , bool TF>
const DVecScalarMultExpr< VT,
typename BaseElementType< VT >
::Type, TF > 
blaze::operator- (const DenseVector< VT, TF > &dv)
 Unary minus operator for the negation of a dense vector ( $ \vec{a} = -\vec{b} $). More...
 
template<typename T1 , typename T2 , bool TF>
const EnableIf< IsNumeric< T2 >
, typename MultExprTrait< T1,
T2 >::Type >::Type 
blaze::operator* (const DenseVector< T1, TF > &vec, T2 scalar)
 Multiplication operator for the multiplication of a dense vector and a scalar value ( $ \vec{a}=\vec{b}*s $). More...
 
template<typename T1 , typename T2 , bool TF>
const EnableIf< IsNumeric< T1 >
, typename MultExprTrait< T1,
T2 >::Type >::Type 
blaze::operator* (T1 scalar, const DenseVector< T2, TF > &vec)
 Multiplication operator for the multiplication of a scalar value and a dense vector ( $ \vec{a}=s*\vec{b} $). More...
 
template<typename T1 , typename T2 , bool TF>
const DVecSVecAddExpr< T1, T2, TF > blaze::operator+ (const DenseVector< T1, TF > &lhs, const SparseVector< T2, TF > &rhs)
 Addition operator for the addition of a dense vector and a sparse vector ( $ \vec{a}=\vec{b}+\vec{c} $). More...
 
template<typename T1 , typename T2 , bool TF>
const DVecSVecAddExpr< T2, T1, TF > blaze::operator+ (const SparseVector< T1, TF > &lhs, const DenseVector< T2, TF > &rhs)
 Addition operator for the addition of a sparse vector and a dense vector ( $ \vec{a}=\vec{b}+\vec{c} $). More...
 
template<typename T1 , typename T2 >
const DVecSVecCrossExpr< T1, T2 > blaze::operator% (const DenseVector< T1, false > &lhs, const SparseVector< T2, false > &rhs)
 Operator for the cross product of a dense vector and a sparse vector ( $ \vec{a}=\vec{b} \times \vec{c} $). More...
 
template<typename T1 , typename T2 , bool TF>
const DVecSVecSubExpr< T1, T2, TF > blaze::operator- (const DenseVector< T1, TF > &lhs, const SparseVector< T2, TF > &rhs)
 Subtraction operator for the subtraction of a dense vector and a sparse vector ( $ \vec{a}=\vec{b}-\vec{c} $). More...
 
template<typename VT , bool TF>
const DVecTransExpr< VT,!TF > blaze::trans (const DenseVector< VT, TF > &dv)
 Calculation of the transpose of the given dense vector. More...
 
template<typename T1 , typename T2 >
const DisableIf
< IsMatMatMultExpr< T1 >
, SMatDVecMultExpr< T1, T2 >
>::Type 
blaze::operator* (const SparseMatrix< T1, false > &mat, const DenseVector< T2, false > &vec)
 Multiplication operator for the multiplication of a row-major sparse matrix and a dense vector ( $ \vec{y}=A*\vec{x} $). More...
 
template<typename T1 , bool SO, typename T2 >
const EnableIf
< IsMatMatMultExpr< T1 >
, MultExprTrait< T1, T2 >
>::Type::Type 
blaze::operator* (const SparseMatrix< T1, SO > &mat, const DenseVector< T2, false > &vec)
 Multiplication operator for the multiplication of a sparse matrix-matrix multiplication expression and a dense vector ( $ \vec{y}=(A*B)*\vec{x} $). More...
 
template<typename T1 , typename T2 >
const SVecDVecCrossExpr< T1, T2 > blaze::operator% (const SparseVector< T1, false > &lhs, const DenseVector< T2, false > &rhs)
 Operator for the cross product of a sparse vector and a dense vector ( $ \vec{a}=\vec{b} \times \vec{c} $). More...
 
template<typename T1 , typename T2 , bool TF>
const SVecDVecSubExpr< T1, T2, TF > blaze::operator- (const SparseVector< T1, TF > &lhs, const DenseVector< T2, TF > &rhs)
 Subtraction operator for the subtraction of a sparse vector and a dense vector ( $ \vec{a}=\vec{b}-\vec{c} $). More...
 
template<typename T1 , typename T2 >
const SVecSVecCrossExpr< T1, T2 > blaze::operator% (const SparseVector< T1, false > &lhs, const SparseVector< T2, false > &rhs)
 Operator for the cross product of two sparse vectors ( $ \vec{a}=\vec{b} \times \vec{c} $). More...
 
template<typename T1 , typename T2 >
const DisableIf
< IsMatMatMultExpr< T1 >
, TDMatDVecMultExpr< T1, T2 >
>::Type 
blaze::operator* (const DenseMatrix< T1, true > &mat, const DenseVector< T2, false > &vec)
 Multiplication operator for the multiplication of a column-major dense matrix and a dense vector ( $ \vec{y}=A*\vec{x} $). More...
 
template<typename T1 , typename T2 >
const DisableIf
< IsMatMatMultExpr< T1 >
, TDMatSVecMultExpr< T1, T2 >
>::Type 
blaze::operator* (const DenseMatrix< T1, true > &mat, const SparseVector< T2, false > &vec)
 Multiplication operator for the multiplication of a column-major dense matrix and a sparse vector ( $ \vec{y}=A*\vec{x} $). More...
 
template<typename T1 , typename T2 >
const DisableIf
< IsMatMatMultExpr< T2 >
, TDVecDMatMultExpr< T1, T2 >
>::Type 
blaze::operator* (const DenseVector< T1, true > &vec, const DenseMatrix< T2, false > &mat)
 Multiplication operator for the multiplication of a transpose dense vector and a row-major dense matrix ( $ \vec{y}^T=\vec{x}^T*A $). More...
 
template<typename T1 , typename T2 , bool SO>
const EnableIf
< IsMatMatMultExpr< T2 >
, MultExprTrait< T1, T2 >
>::Type::Type 
blaze::operator* (const DenseVector< T1, true > &vec, const DenseMatrix< T2, SO > &mat)
 Multiplication operator for the multiplication of a transpose dense vector and a dense matrix-matrix multiplication expression ( $ \vec{y}^T=\vec{x}^T*(A*B) $). More...
 
template<typename T1 , typename T2 >
DisableIf
< TDVecDVecMultExprHelper< T1,
T2 >, const typename MultTrait
< typename T1::ElementType,
typename T2::ElementType >
::Type >::Type 
blaze::operator* (const DenseVector< T1, true > &lhs, const DenseVector< T2, false > &rhs)
 Default multiplication operator for the scalar product (inner product) of two dense vectors ( $ s=\vec{a}*\vec{b} $). More...
 
template<typename T1 , typename T2 , bool SO>
const EnableIf
< IsMatMatMultExpr< T2 >
, MultExprTrait< T1, T2 >
>::Type::Type 
blaze::operator* (const DenseVector< T1, true > &vec, const SparseMatrix< T2, SO > &mat)
 Multiplication operator for the multiplication of a transpose dense vector and a sparse matrix-matrix multiplication expression ( $ \vec{y}^T=\vec{x}^T*(A*B) $). More...
 
template<typename T1 , typename T2 >
const DisableIf
< IsMatMatMultExpr< T1 >
, TSMatDVecMultExpr< T1, T2 >
>::Type 
blaze::operator* (const SparseMatrix< T1, true > &mat, const DenseVector< T2, false > &vec)
 Multiplication operator for the multiplication of a column-major sparse matrix and a dense vector ( $ \vec{y}=A*\vec{x} $). More...
 
template<typename T1 , typename T2 , bool SO>
const EnableIf
< IsMatMatMultExpr< T2 >
, MultExprTrait< T1, T2 >
>::Type::Type 
blaze::operator* (const SparseVector< T1, true > &vec, const DenseMatrix< T2, SO > &mat)
 Multiplication operator for the multiplication of a transpose sparse vector and a dense matrix-matrix multiplication expression ( $ \vec{y}^T=\vec{x}^T*(A*B) $). More...
 

Friends

template<typename VT2 >
EnableIf< UseAssign< VT2 > >::Type blaze::TDVecTSMatMultExpr< typename, typename >::assign (DenseVector< VT2, true > &lhs, const TDVecTSMatMultExpr &rhs)
 Assignment of a transpose dense vector-transpose sparse matrix multiplication to a dense vector. More...
 
template<typename VT2 >
EnableIf< UseAssign< VT2 > >::Type blaze::TDVecTSMatMultExpr< typename, typename >::assign (SparseVector< VT2, true > &lhs, const TDVecTSMatMultExpr &rhs)
 Assignment of a transpose dense vector-transpose sparse matrix multiplication to a sparse vector. More...
 
template<typename VT2 >
EnableIf< UseAssign< VT2 > >::Type blaze::TDVecTSMatMultExpr< typename, typename >::addAssign (DenseVector< VT2, true > &lhs, const TDVecTSMatMultExpr &rhs)
 Addition assignment of a transpose dense vector-transpose sparse matrix multiplication to a dense vector. More...
 
template<typename VT2 >
EnableIf< UseAssign< VT2 > >::Type blaze::TDVecTSMatMultExpr< typename, typename >::subAssign (DenseVector< VT2, true > &lhs, const TDVecTSMatMultExpr &rhs)
 Subtraction assignment of a transpose dense vector-transpose sparse matrix multiplication to a dense vector. More...
 
template<typename VT2 >
EnableIf< UseAssign< VT2 > >::Type blaze::TDVecTSMatMultExpr< typename, typename >::multAssign (DenseVector< VT2, true > &lhs, const TDVecTSMatMultExpr &rhs)
 Multiplication assignment of a transpose dense vector-transpose sparse matrix multiplication to a dense vector. More...
 

DenseVector operators

template<typename T1 , bool TF1, typename T2 , bool TF2>
bool blaze::operator== (const DenseVector< T1, TF1 > &lhs, const DenseVector< T2, TF2 > &rhs)
 Equality operator for the comparison of two dense vectors. More...
 
template<typename T1 , bool TF1, typename T2 , bool TF2>
bool blaze::operator== (const DenseVector< T1, TF1 > &lhs, const SparseVector< T2, TF2 > &rhs)
 Equality operator for the comparison of a dense vector and a sparse vector. More...
 
template<typename T1 , bool TF1, typename T2 , bool TF2>
bool blaze::operator== (const SparseVector< T1, TF1 > &lhs, const DenseVector< T2, TF2 > &rhs)
 Equality operator for the comparison of a sparse vector and a dense vector. More...
 
template<typename T1 , typename T2 , bool TF>
EnableIf< IsNumeric< T2 >
, bool >::Type 
blaze::operator== (const DenseVector< T1, TF > &vec, T2 scalar)
 Equality operator for the comparison of a dense vector and a scalar value. More...
 
template<typename T1 , typename T2 , bool TF>
EnableIf< IsNumeric< T1 >
, bool >::Type 
blaze::operator== (T1 scalar, const DenseVector< T2, TF > &vec)
 Equality operator for the comparison of a scalar value and a dense vector. More...
 
template<typename T1 , bool TF1, typename T2 , bool TF2>
bool blaze::operator!= (const DenseVector< T1, TF1 > &lhs, const DenseVector< T2, TF2 > &rhs)
 Inequality operator for the comparison of two dense vectors. More...
 
template<typename T1 , bool TF1, typename T2 , bool TF2>
bool blaze::operator!= (const DenseVector< T1, TF1 > &lhs, const SparseVector< T2, TF2 > &rhs)
 Inequality operator for the comparison of a dense vector and a sparse vector. More...
 
template<typename T1 , bool TF1, typename T2 , bool TF2>
bool blaze::operator!= (const SparseVector< T1, TF1 > &lhs, const DenseVector< T2, TF2 > &rhs)
 Inequality operator for the comparison of a sparse vector and a dense vector. More...
 
template<typename T1 , typename T2 , bool TF>
EnableIf< IsNumeric< T2 >
, bool >::Type 
blaze::operator!= (const DenseVector< T1, TF > &vec, T2 scalar)
 Inequality operator for the comparison of a dense vector and a scalar value. More...
 
template<typename T1 , typename T2 , bool TF>
EnableIf< IsNumeric< T1 >
, bool >::Type 
blaze::operator!= (T1 scalar, const DenseVector< T2, TF > &vec)
 Inequality operator for the comparison of a scalar value and a dense vector. More...
 

DenseVector functions

template<typename VT , bool TF>
const VT::ElementType blaze::min (const DenseVector< VT, TF > &dv)
 Returns the smallest element of the dense vector. More...
 
template<typename VT , bool TF>
const VT::ElementType blaze::max (const DenseVector< VT, TF > &dv)
 Returns the largest element of the dense vector. More...
 

Detailed Description

Function Documentation

template<typename VT , bool TF>
const DVecAbsExpr<VT,TF> blaze::abs ( const DenseVector< VT, TF > &  dv)
inline

Returns a vector containing the absolute values of each single element of dv.

Parameters
dvThe input vector.
Returns
The absolute value of each single element of dv.

The abs function calculates the absolute value of each element of the input vector dv. The operator returns an expression representing this operation.
The following example demonstrates the use of the abs function:

// ... Resizing and initialization
b = abs( a );
template<typename VT , bool TF>
const DVecEvalExpr<VT,TF> blaze::eval ( const DenseVector< VT, TF > &  dv)
inline

Forces the evaluation of the given dense vector expression dv.

Parameters
dvThe input vector.
Returns
The evaluated dense vector.

The eval function forces the evaluation of the given dense vector expression dv. The operator returns an expression representing this operation.
The following example demonstrates the use of the eval function:

// ... Resizing and initialization
b = eval( a );
template<typename VT , bool TF>
const VT::ElementType blaze::max ( const DenseVector< VT, TF > &  dv)
inline

Returns the largest element of the dense vector.

Returns
The largest dense vector element.

This function returns the largest element of the given dense vector. This function can only be used for element types that support the smaller-than relationship. In case the vector currently has a size of 0, the returned value is the default value (e.g. 0 in case of fundamental data types).

template<typename VT , bool TF>
const VT::ElementType blaze::min ( const DenseVector< VT, TF > &  dv)
inline

Returns the smallest element of the dense vector.

Returns
The smallest dense vector element.

This function returns the smallest element of the given dense vector. This function can only be used for element types that support the smaller-than relationship. In case the vector currently has a size of 0, the returned value is the default value (e.g. 0 in case of fundamental data types).

template<typename T1 , bool TF1, typename T2 , bool TF2>
bool blaze::operator!= ( const DenseVector< T1, TF1 > &  lhs,
const DenseVector< T2, TF2 > &  rhs 
)
inline

Inequality operator for the comparison of two dense vectors.

Parameters
lhsThe left-hand side dense vector for the comparison.
rhsThe right-hand side dense vector for the comparison.
Returns
true if the two vectors are not equal, false if they are equal.
template<typename T1 , bool TF1, typename T2 , bool TF2>
bool blaze::operator!= ( const DenseVector< T1, TF1 > &  lhs,
const SparseVector< T2, TF2 > &  rhs 
)
inline

Inequality operator for the comparison of a dense vector and a sparse vector.

Parameters
lhsThe left-hand side dense vector for the comparison.
rhsThe right-hand side sparse vector for the comparison.
Returns
true if the two vectors are not equal, false if they are equal.
template<typename T1 , bool TF1, typename T2 , bool TF2>
bool blaze::operator!= ( const SparseVector< T1, TF1 > &  lhs,
const DenseVector< T2, TF2 > &  rhs 
)
inline

Inequality operator for the comparison of a sparse vector and a dense vector.

Parameters
lhsThe left-hand side sparse vector for the comparison.
rhsThe right-hand side dense vector for the comparison.
Returns
true if the two vectors are not equal, false if they are equal.
template<typename T1 , typename T2 , bool TF>
EnableIf< IsNumeric< T2 >, bool >::Type blaze::operator!= ( const DenseVector< T1, TF > &  vec,
T2  scalar 
)
inline

Inequality operator for the comparison of a dense vector and a scalar value.

Parameters
vecThe left-hand side dense vector for the comparison.
scalarThe right-hand side scalar value for the comparison.
Returns
true if at least one element of the vector is different from the scalar, false if not.

If one value of the vector is inequal to the scalar value, the inequality test returns true, otherwise false. Note that this function can only be used with built-in, numerical data types!

template<typename T1 , typename T2 , bool TF>
EnableIf< IsNumeric< T1 >, bool >::Type blaze::operator!= ( T1  scalar,
const DenseVector< T2, TF > &  vec 
)
inline

Inequality operator for the comparison of a scalar value and a dense vector.

Parameters
scalarThe left-hand side scalar value for the comparison.
vecThe right-hand side dense vector for the comparison.
Returns
true if at least one element of the vector is different from the scalar, false if not.

If one value of the vector is inequal to the scalar value, the inequality test returns true, otherwise false. Note that this function can only be used with built-in, numerical data types!

template<typename T1 , typename T2 >
const DVecDVecCrossExpr<T1,T2> blaze::operator% ( const DenseVector< T1, false > &  lhs,
const DenseVector< T2, false > &  rhs 
)
inline

Operator for the cross product of two dense vectors ( $ \vec{a}=\vec{b} \times \vec{c} $).

Parameters
lhsThe left-hand side dense vector for the cross product.
rhsThe right-hand side dense vector for the cross product.
Returns
The cross product of the two vectors.
Exceptions
std::invalid_argumentInvalid vector size for cross product.

This operator represents the cross product of two dense vectors:

blaze::DynamicVector<double> a( 3UL ), b( 3UL );
// ... Resizing and initialization
c = a % b;

The operator returns an expression representing a dense vector of the higher-order element type of the two involved vector element types T1::ElementType and T2::ElementType. Both vector types T1 and T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the CrossTrait class template.
In case the current sizes of the two given vectors don't match, a std::invalid_argument is thrown.

template<typename T1 , typename T2 >
const SVecSVecCrossExpr<T1,T2> blaze::operator% ( const SparseVector< T1, false > &  lhs,
const SparseVector< T2, false > &  rhs 
)
inline

Operator for the cross product of two sparse vectors ( $ \vec{a}=\vec{b} \times \vec{c} $).

Parameters
lhsThe left-hand side sparse vector for the cross product.
rhsThe right-hand side sparse vector for the cross product.
Returns
The cross product of the two sparse vectors.
Exceptions
std::invalid_argumentInvalid vector size for cross product.

This operator represents the cross product of two sparse vectors:

// ... Resizing and initialization
c = a % b;

The operator returns a dense vector of the higher-order element type of the two involved vector element types T1::ElementType and T2::ElementType. Both vector types T1 and T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the CrossTrait class template.
In case the current sizes of the two given vectors don't match, a std::invalid_argument is thrown.

template<typename T1 , typename T2 >
const SVecDVecCrossExpr<T1,T2> blaze::operator% ( const SparseVector< T1, false > &  lhs,
const DenseVector< T2, false > &  rhs 
)
inline

Operator for the cross product of a sparse vector and a dense vector ( $ \vec{a}=\vec{b} \times \vec{c} $).

Parameters
lhsThe left-hand side sparse vector for the cross product.
rhsThe right-hand side dense vector for the cross product.
Returns
The cross product of the two vectors.
Exceptions
std::invalid_argumentInvalid vector size for cross product.

This operator represents the cross product of a sparse vector and a dense vector:

// ... Resizing and initialization
c = a % b;

The operator returns an expression representing a dense vector of the higher-order element type of the two involved vector element types T1::ElementType and T2::ElementType. Both vector types T1 and T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the CrossTrait class template.
In case the current sizes of the two given vectors don't match, a std::invalid_argument is thrown.

template<typename T1 , typename T2 >
const DVecSVecCrossExpr<T1,T2> blaze::operator% ( const DenseVector< T1, false > &  lhs,
const SparseVector< T2, false > &  rhs 
)
inline

Operator for the cross product of a dense vector and a sparse vector ( $ \vec{a}=\vec{b} \times \vec{c} $).

Parameters
lhsThe left-hand side dense vector for the cross product.
rhsThe right-hand side sparse vector for the cross product.
Returns
The cross product of the two vectors.
Exceptions
std::invalid_argumentInvalid vector size for cross product.

This operator represents the cross product of a dense vector and a sparse vector:

// ... Resizing and initialization
c = a % b;

The operator returns an expression representing a dense vector of the higher-order element type of the two involved vector element types T1::ElementType and T2::ElementType. Both vector types T1 and T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the CrossTrait class template.
In case the current sizes of the two given vectors don't match, a std::invalid_argument is thrown.

template<typename T1 , typename T2 >
DisableIf< TDVecDVecMultExprHelper<T1,T2>, const typename MultTrait<typename T1::ElementType,typename T2::ElementType>::Type >::Type blaze::operator* ( const DenseVector< T1, true > &  lhs,
const DenseVector< T2, false > &  rhs 
)
inline

Default multiplication operator for the scalar product (inner product) of two dense vectors ( $ s=\vec{a}*\vec{b} $).

Parameters
lhsThe left-hand side dense vector for the inner product.
rhsThe right-hand side dense vector for the inner product.
Returns
The scalar product.
Exceptions
std::invalid_argumentVector sizes do not match.

This operator represents the scalar product (inner product) of two dense vectors:

blaze::double res;
// ... Resizing and initialization
res = trans(a) * b;

The operator returns a scalar value of the higher-order element type of the two involved vector element types T1::ElementType and T2::ElementType. Both vector types T1 and T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the MultTrait class template.
In case the current sizes of the two given vectors don't match, a std::invalid_argument is thrown.

template<typename T1 , typename T2 , bool TF>
const DVecDVecMultExpr<T1,T2,TF> blaze::operator* ( const DenseVector< T1, TF > &  lhs,
const DenseVector< T2, TF > &  rhs 
)
inline

Multiplication operator for the componentwise product of two dense vectors ( $ \vec{a}=\vec{b}*\vec{c} $).

Parameters
lhsThe left-hand side dense vector for the component product.
rhsThe right-hand side dense vector for the component product.
Returns
The product of the two vectors.
Exceptions
std::invalid_argumentVector sizes do not match.

This operator represents the component product of two dense vectors:

// ... Resizing and initialization
c = a * b;

The operator returns an expression representing a dense vector of the higher-order element type of the two involved vector element types T1::ElementType and T2::ElementType. Both vector types T1 and T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the MultTrait class template.
In case the current sizes of the two given vectors don't match, a std::invalid_argument is thrown.

template<typename T1 , typename T2 , bool TF>
const EnableIf< IsNumeric<T2>, typename MultExprTrait<T1,T2>::Type >::Type blaze::operator* ( const DenseVector< T1, TF > &  vec,
T2  scalar 
)
inline

Multiplication operator for the multiplication of a dense vector and a scalar value ( $ \vec{a}=\vec{b}*s $).

Parameters
vecThe left-hand side dense vector for the multiplication.
scalarThe right-hand side scalar value for the multiplication.
Returns
The scaled result vector.

This operator represents the multiplication between a dense vector and a scalar value:

// ... Resizing and initialization
b = a * 1.25;

The operator returns an expression representing a dense vector of the higher-order element type of the involved data types T1::ElementType and T2. Both data types T1::ElementType and T2 have to be supported by the MultTrait class template. Note that this operator only works for scalar values of built-in data type.

template<typename T1 , typename T2 >
const DisableIf< IsMatMatMultExpr<T1>, TSMatDVecMultExpr<T1,T2> >::Type blaze::operator* ( const SparseMatrix< T1, true > &  mat,
const DenseVector< T2, false > &  vec 
)
inline

Multiplication operator for the multiplication of a column-major sparse matrix and a dense vector ( $ \vec{y}=A*\vec{x} $).

Parameters
matThe left-hand side column-major sparse matrix for the multiplication.
vecThe right-hand side dense vector for the multiplication.
Returns
The resulting vector.
Exceptions
std::invalid_argumentMatrix and vector sizes do not match.

This operator represents the multiplication between a column-major sparse matrix and a dense vector:

The operator returns an expression representing a dense vector of the higher-order element type of the two involved element types T1::ElementType and T2::ElementType. Both the sparse matrix type T1 and the dense vector type T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the MultTrait class template.
In case the current size of the vector vec doesn't match the current number of columns of the matrix mat, a std::invalid_argument is thrown.

template<typename T1 , typename T2 , bool SO>
const EnableIf< IsMatMatMultExpr<T2>, MultExprTrait<T1,T2> >::Type::Type blaze::operator* ( const DenseVector< T1, true > &  vec,
const SparseMatrix< T2, SO > &  mat 
)
inline

Multiplication operator for the multiplication of a transpose dense vector and a sparse matrix-matrix multiplication expression ( $ \vec{y}^T=\vec{x}^T*(A*B) $).

Parameters
vecThe left-hand side dense vector for the multiplication.
matThe right-hand side sparse matrix-matrix multiplication.
Returns
The resulting vector.

This operator implements a performance optimized treatment of the multiplication of a dense vector and a sparse matrix-matrix multiplication expression. It restructures the expression $ \vec{y}^T=\vec{x}^T*(A*B) $ to the expression $ \vec{y}^T=(\vec{x}^T*A)*B $.

template<typename T1 , typename T2 >
const DisableIf< IsMatMatMultExpr<T1>, DMatSVecMultExpr<T1,T2> >::Type blaze::operator* ( const DenseMatrix< T1, false > &  mat,
const SparseVector< T2, false > &  vec 
)
inline

Multiplication operator for the multiplication of a row-major dense matrix and a sparse vector ( $ \vec{y}=A*\vec{x} $).

Parameters
matThe left-hand side row-major dense matrix for the multiplication.
vecThe right-hand side sparse vector for the multiplication.
Returns
The resulting vector.
Exceptions
std::invalid_argumentMatrix and vector sizes do not match.

This operator represents the multiplication between a row-major dense matrix and a sparse vector:

The operator returns an expression representing a dense vector of the higher-order element type of the two involved element types T1::ElementType and T2::ElementType. Both the dense matrix type T1 and the sparse vector type T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the MultTrait class template.
In case the current size of the vector vec doesn't match the current number of columns of the matrix mat, a std::invalid_argument is thrown.

template<typename T1 , typename T2 >
const DisableIf< IsMatMatMultExpr<T1>, SMatDVecMultExpr<T1,T2> >::Type blaze::operator* ( const SparseMatrix< T1, false > &  mat,
const DenseVector< T2, false > &  vec 
)
inline

Multiplication operator for the multiplication of a row-major sparse matrix and a dense vector ( $ \vec{y}=A*\vec{x} $).

Parameters
matThe left-hand side row-major sparse matrix for the multiplication.
vecThe right-hand side dense vector for the multiplication.
Returns
The resulting vector.
Exceptions
std::invalid_argumentMatrix and vector sizes do not match.

This operator represents the multiplication between a row-major sparse matrix and a dense vector:

The operator returns an expression representing a dense vector of the higher-order element type of the two involved element types T1::ElementType and T2::ElementType. Both the sparse matrix type T1 and the dense vector type T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the MultTrait class template.
In case the current size of the vector vec doesn't match the current number of columns of the matrix mat, a std::invalid_argument is thrown.

template<typename T1 , typename T2 , bool TF>
const EnableIf< IsNumeric<T1>, typename MultExprTrait<T1,T2>::Type >::Type blaze::operator* ( T1  scalar,
const DenseVector< T2, TF > &  vec 
)
inline

Multiplication operator for the multiplication of a scalar value and a dense vector ( $ \vec{a}=s*\vec{b} $).

Parameters
scalarThe left-hand side scalar value for the multiplication.
vecThe right-hand side vector for the multiplication.
Returns
The scaled result vector.

This operator represents the multiplication between a a scalar value and dense vector:

// ... Resizing and initialization
b = 1.25 * a;

The operator returns an expression representing a dense vector of the higher-order element type of the involved data types T1::ElementType and T2. Both data types T1 and T2::ElementType have to be supported by the MultTrait class template. Note that this operator only works for scalar values of built-in data type.

template<typename T1 , bool SO, typename T2 >
const EnableIf< IsMatMatMultExpr<T1>, MultExprTrait<T1,T2> >::Type::Type blaze::operator* ( const DenseMatrix< T1, SO > &  mat,
const SparseVector< T2, false > &  vec 
)
inline

Multiplication operator for the multiplication of a dense matrix-matrix multiplication expression and a sparse vector ( $ \vec{y}=(A*B)*\vec{x} $).

Parameters
matThe left-hand side dense matrix-matrix multiplication.
vecThe right-hand side sparse vector for the multiplication.
Returns
The resulting vector.

This operator implements a performance optimized treatment of the multiplication of a dense matrix-matrix multiplication expression and a sparse vector. It restructures the expression $ \vec{y}=(A*B)*\vec{x} $ to the expression $ \vec{y}=A*(B*\vec{x}) $.

template<typename T1 , bool SO, typename T2 >
const EnableIf< IsMatMatMultExpr<T1>, MultExprTrait<T1,T2> >::Type::Type blaze::operator* ( const SparseMatrix< T1, SO > &  mat,
const DenseVector< T2, false > &  vec 
)
inline

Multiplication operator for the multiplication of a sparse matrix-matrix multiplication expression and a dense vector ( $ \vec{y}=(A*B)*\vec{x} $).

Parameters
matThe left-hand side sparse matrix-matrix multiplication.
vecThe right-hand side dense vector for the multiplication.
Returns
The resulting vector.

This operator implements a performance optimized treatment of the multiplication of a sparse matrix-matrix multiplication expression and a dense vector. It restructures the expression $ \vec{y}=(A*B)*\vec{x} $ to the expression $ \vec{y}=A*(B*\vec{x}) $.

template<typename T1 , typename T2 >
const DisableIf< IsMatMatMultExpr<T1>, TDMatSVecMultExpr<T1,T2> >::Type blaze::operator* ( const DenseMatrix< T1, true > &  mat,
const SparseVector< T2, false > &  vec 
)
inline

Multiplication operator for the multiplication of a column-major dense matrix and a sparse vector ( $ \vec{y}=A*\vec{x} $).

Parameters
matThe left-hand side column-major dense matrix for the multiplication.
vecThe right-hand side sparse vector for the multiplication.
Returns
The resulting vector.
Exceptions
std::invalid_argumentMatrix and vector sizes do not match.

This operator represents the multiplication between a column-major dense matrix and a sparse vector:

The operator returns an expression representing a dense vector of the higher-order element type of the two involved element types T1::ElementType and T2::ElementType. Both the dense matrix type T1 and the sparse vector type T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the MultTrait class template.
In case the current size of the vector vec doesn't match the current number of columns of the matrix mat, a std::invalid_argument is thrown.

template<typename T1 , typename T2 , bool SO>
const EnableIf< IsMatMatMultExpr<T2>, MultExprTrait<T1,T2> >::Type::Type blaze::operator* ( const SparseVector< T1, true > &  vec,
const DenseMatrix< T2, SO > &  mat 
)
inline

Multiplication operator for the multiplication of a transpose sparse vector and a dense matrix-matrix multiplication expression ( $ \vec{y}^T=\vec{x}^T*(A*B) $).

Parameters
vecThe left-hand side sparse vector for the multiplication.
matThe right-hand side dense matrix-matrix multiplication.
Returns
The resulting vector.

This operator implements a performance optimized treatment of the multiplication of a sparse vector and a dense matrix-matrix multiplication expression. It restructures the expression $ \vec{y}^T=\vec{x}^T*(A*B) $ to the expression $ \vec{y}^T=(\vec{x}^T*A)*B $.

template<typename T1 , typename T2 >
const DisableIf< IsMatMatMultExpr<T1>, DMatDVecMultExpr<T1,T2> >::Type blaze::operator* ( const DenseMatrix< T1, false > &  mat,
const DenseVector< T2, false > &  vec 
)
inline

Multiplication operator for the multiplication of a row-major dense matrix and a dense vector ( $ \vec{y}=A*\vec{x} $).

Parameters
matThe left-hand side row-major dense matrix for the multiplication.
vecThe right-hand side dense vector for the multiplication.
Returns
The resulting vector.
Exceptions
std::invalid_argumentMatrix and vector sizes do not match.

This operator represents the multiplication between a row-major dense matrix and a dense vector:

The operator returns an expression representing a dense vector of the higher-order element type of the two involved element types T1::ElementType and T2::ElementType. Both the dense matrix type T1 and the dense vector type T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the MultTrait class template.
In case the current size of the vector vec doesn't match the current number of columns of the matrix mat, a std::invalid_argument is thrown.

template<typename T1 , bool SO, typename T2 >
const EnableIf< IsMatMatMultExpr<T1>, MultExprTrait<T1,T2> >::Type::Type blaze::operator* ( const DenseMatrix< T1, SO > &  mat,
const DenseVector< T2, false > &  vec 
)
inline

Multiplication operator for the multiplication of a dense matrix-matrix multiplication expression and a dense vector ( $ \vec{y}=(A*B)*\vec{x} $).

Parameters
matThe left-hand side dense matrix-matrix multiplication.
vecThe right-hand side dense vector for the multiplication.
Returns
The resulting vector.

This operator implements a performance optimized treatment of the multiplication of a dense matrix-matrix multiplication expression and a dense vector. It restructures the expression $ \vec{x}=(A*B)*\vec{x} $ to the expression $ \vec{y}=A*(B*\vec{x}) $.

template<typename T1 , typename T2 >
const DisableIf< IsMatMatMultExpr<T1>, TDMatDVecMultExpr<T1,T2> >::Type blaze::operator* ( const DenseMatrix< T1, true > &  mat,
const DenseVector< T2, false > &  vec 
)
inline

Multiplication operator for the multiplication of a column-major dense matrix and a dense vector ( $ \vec{y}=A*\vec{x} $).

Parameters
matThe left-hand side column-major dense matrix for the multiplication.
vecThe right-hand side dense vector for the multiplication.
Returns
The resulting vector.
Exceptions
std::invalid_argumentMatrix and vector sizes do not match.

This operator represents the multiplication between a column-major dense matrix and a dense vector:

The operator returns an expression representing a dense vector of the higher-order element type of the two involved element types T1::ElementType and T2::ElementType. Both the dense matrix type T1 and the dense vector type T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the MultTrait class template.
In case the current size of the vector vec doesn't match the current number of columns of the matrix mat, a std::invalid_argument is thrown.

template<typename T1 , typename T2 >
const DisableIf< IsMatMatMultExpr<T2>, TDVecDMatMultExpr<T1,T2> >::Type blaze::operator* ( const DenseVector< T1, true > &  vec,
const DenseMatrix< T2, false > &  mat 
)
inline

Multiplication operator for the multiplication of a transpose dense vector and a row-major dense matrix ( $ \vec{y}^T=\vec{x}^T*A $).

Parameters
vecThe left-hand side transpose dense vector for the multiplication.
matThe right-hand side row-major dense matrix for the multiplication.
Returns
The resulting transpose vector.
Exceptions
std::invalid_argumentVector and matrix sizes do not match.

This operator represents the multiplication between a transpose dense vector and a row-major dense matrix:

// ... Resizing and initialization
y = x * A;

The operator returns an expression representing a transpose dense vector of the higher-order element type of the two involved element types T1::ElementType and T2::ElementType. Both the dense matrix type T1 and the dense vector type T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the MultTrait class template.
In case the current size of the vector vec doesn't match the current number of rows of the matrix mat, a std::invalid_argument is thrown.

template<typename T1 , typename T2 , bool SO>
const EnableIf< IsMatMatMultExpr<T2>, MultExprTrait<T1,T2> >::Type::Type blaze::operator* ( const DenseVector< T1, true > &  vec,
const DenseMatrix< T2, SO > &  mat 
)
inline

Multiplication operator for the multiplication of a transpose dense vector and a dense matrix-matrix multiplication expression ( $ \vec{y}^T=\vec{x}^T*(A*B) $).

Parameters
vecThe left-hand side dense vector for the multiplication.
matThe right-hand side dense matrix-matrix multiplication.
Returns
The resulting vector.

This operator implements a performance optimized treatment of the multiplication of a dense vector and a dense matrix-matrix multiplication expression. It restructures the expression $ \vec{y}^T=\vec{x}^T*(A*B) $ to the expression $ \vec{y}^T=(\vec{x}^T*A)*B $.

template<typename T1 , typename T2 , bool TF>
const DVecSVecAddExpr<T1,T2,TF> blaze::operator+ ( const DenseVector< T1, TF > &  lhs,
const SparseVector< T2, TF > &  rhs 
)
inline

Addition operator for the addition of a dense vector and a sparse vector ( $ \vec{a}=\vec{b}+\vec{c} $).

Parameters
lhsThe left-hand side dense vector for the vector addition.
rhsThe right-hand side sparse vector for the vector addition.
Returns
The sum of the two vectors.
Exceptions
std::invalid_argumentVector sizes do not match.

This operator represents the addition of a dense vector and a sparse vector:

// ... Resizing and initialization
c = a + b;

The operator returns an expression representing a dense vector of the higher-order element type of the two involved vector element types T1::ElementType and T2::ElementType. Both vector types T1 and T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the AddTrait class template.
In case the current sizes of the two given vectors don't match, a std::invalid_argument is thrown.

template<typename T1 , typename T2 , bool TF>
const DVecSVecAddExpr<T2,T1,TF> blaze::operator+ ( const SparseVector< T1, TF > &  lhs,
const DenseVector< T2, TF > &  rhs 
)
inline

Addition operator for the addition of a sparse vector and a dense vector ( $ \vec{a}=\vec{b}+\vec{c} $).

Parameters
lhsThe left-hand side sparse vector for the vector addition.
rhsThe right-hand side dense vector for the vector addition.
Returns
The sum of the two vectors.
Exceptions
std::invalid_argumentVector sizes do not match.

This operator represents the addition of a sparse vector and a dense vector:

// ... Resizing and initialization
c = a + b;

The operator returns an expression representing a dense vector of the higher-order element type of the two involved vector element types T1::ElementType and T2::ElementType. Both vector types T1 and T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the AddTrait class template.
In case the current sizes of the two given vectors don't match, a std::invalid_argument is thrown.

template<typename T1 , typename T2 , bool TF>
const DVecDVecAddExpr<T1,T2,TF> blaze::operator+ ( const DenseVector< T1, TF > &  lhs,
const DenseVector< T2, TF > &  rhs 
)
inline

Addition operator for the addition of two dense vectors ( $ \vec{a}=\vec{b}+\vec{c} $).

Parameters
lhsThe left-hand side dense vector for the vector addition.
rhsThe right-hand side dense vector for the vector addition.
Returns
The sum of the two vectors.
Exceptions
std::invalid_argumentVector sizes do not match.

This operator represents the addition of two dense vectors:

// ... Resizing and initialization
c = a + b;

The operator returns an expression representing a dense vector of the higher-order element type of the two involved vector element types T1::ElementType and T2::ElementType. Both vector types T1 and T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the AddTrait class template.
In case the current sizes of the two given vectors don't match, a std::invalid_argument is thrown.

template<typename T1 , typename T2 , bool TF>
const SVecDVecSubExpr<T1,T2,TF> blaze::operator- ( const SparseVector< T1, TF > &  lhs,
const DenseVector< T2, TF > &  rhs 
)
inline

Subtraction operator for the subtraction of a sparse vector and a dense vector ( $ \vec{a}=\vec{b}-\vec{c} $).

Parameters
lhsThe left-hand side sparse vector for the vector subtraction.
rhsThe right-hand side dense vector to be subtracted from the sparse vector.
Returns
The difference of the two vectors.
Exceptions
std::invalid_argumentVector sizes do not match.

This operator represents the subtraction of a sparse vector and a dense vector:

// ... Resizing and initialization
c = a - b;

The operator returns an expression representing a dense vector of the higher-order element type of the two involved vector element types T1::ElementType and T2::ElementType. Both vector types T1 and T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the SubTrait class template.
In case the current sizes of the two given vectors don't match, a std::invalid_argument is thrown.

template<typename T1 , typename T2 , bool TF>
const DVecSVecSubExpr<T1,T2,TF> blaze::operator- ( const DenseVector< T1, TF > &  lhs,
const SparseVector< T2, TF > &  rhs 
)
inline

Subtraction operator for the subtraction of a dense vector and a sparse vector ( $ \vec{a}=\vec{b}-\vec{c} $).

Parameters
lhsThe left-hand side dense vector for the vector subtraction.
rhsThe right-hand side sparse vector to be subtracted from the dense vector.
Returns
The difference of the two vectors.
Exceptions
std::invalid_argumentVector sizes do not match.

This operator represents the subtraction of a dense vector and a sparse vector:

// ... Resizing and initialization
c = a - b;

The operator returns an expression representing a dense vector of the higher-order element type of the two involved vector element types T1::ElementType and T2::ElementType. Both vector types T1 and T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the SubTrait class template.
In case the current sizes of the two given vectors don't match, a std::invalid_argument is thrown.

template<typename T1 , typename T2 , bool TF>
const DVecDVecSubExpr<T1,T2,TF> blaze::operator- ( const DenseVector< T1, TF > &  lhs,
const DenseVector< T2, TF > &  rhs 
)
inline

Subtraction operator for the subtraction of two dense vectors ( $ \vec{a}=\vec{b}-\vec{c} $).

Parameters
lhsThe left-hand side dense vector for the vector subtraction.
rhsThe right-hand side dense vector to be subtracted from the vector.
Returns
The difference of the two vectors.
Exceptions
std::invalid_argumentVector sizes do not match.

This operator represents the subtraction of two dense vectors:

// ... Resizing and initialization
c = a - b;

The operator returns an expression representing a dense vector of the higher-order element type of the two involved vector element types T1::ElementType and T2::ElementType. Both vector types T1 and T2 as well as the two element types T1::ElementType and T2::ElementType have to be supported by the SubTrait class template.
In case the current sizes of the two given vectors don't match, a std::invalid_argument is thrown.

template<typename VT , bool TF>
const DVecScalarMultExpr<VT,typename BaseElementType<VT>::Type,TF> blaze::operator- ( const DenseVector< VT, TF > &  dv)
inline

Unary minus operator for the negation of a dense vector ( $ \vec{a} = -\vec{b} $).

Parameters
dvThe dense vector to be negated.
Returns
The negation of the vector.

This operator represents the negation of a dense vector:

// ... Resizing and initialization
b = -a;

The operator returns an expression representing the negation of the given dense vector.

template<typename T1 , typename T2 , bool TF>
const EnableIf< IsNumeric<T2>, typename DivExprTrait<T1,T2>::Type >::Type blaze::operator/ ( const DenseVector< T1, TF > &  vec,
T2  scalar 
)
inline

Division operator for the divison of a dense vector by a scalar value ( $ \vec{a}=\vec{b}/s $).

Parameters
vecThe left-hand side dense vector for the division.
scalarThe right-hand side scalar value for the division.
Returns
The scaled result vector.

This operator represents the division of a dense vector by a scalar value:

// ... Resizing and initialization
b = a / 0.24;

The operator returns an expression representing a dense vector of the higher-order element type of the involved data types T1::ElementType and T2. Both data types T1::ElementType and T2 have to be supported by the DivTrait class template. Note that this operator only works for scalar values of built-in data type.

Note: A division by zero is only checked by an user assert.

template<typename T1 , bool TF1, typename T2 , bool TF2>
bool blaze::operator== ( const DenseVector< T1, TF1 > &  lhs,
const DenseVector< T2, TF2 > &  rhs 
)
inline

Equality operator for the comparison of two dense vectors.

Parameters
lhsThe left-hand side dense vector for the comparison.
rhsThe right-hand side dense vector for the comparison.
Returns
true if the two vectors are equal, false if not.
template<typename T1 , bool TF1, typename T2 , bool TF2>
bool blaze::operator== ( const DenseVector< T1, TF1 > &  lhs,
const SparseVector< T2, TF2 > &  rhs 
)
inline

Equality operator for the comparison of a dense vector and a sparse vector.

Parameters
lhsThe left-hand side dense vector for the comparison.
rhsThe right-hand side sparse vector for the comparison.
Returns
true if the two vectors are equal, false if not.
template<typename T1 , bool TF1, typename T2 , bool TF2>
bool blaze::operator== ( const SparseVector< T1, TF1 > &  lhs,
const DenseVector< T2, TF2 > &  rhs 
)
inline

Equality operator for the comparison of a sparse vector and a dense vector.

Parameters
lhsThe left-hand side sparse vector for the comparison.
rhsThe right-hand side dense vector for the comparison.
Returns
true if the two vectors are equal, false if not.
template<typename T1 , typename T2 , bool TF>
EnableIf< IsNumeric< T2 >, bool >::Type blaze::operator== ( const DenseVector< T1, TF > &  vec,
T2  scalar 
)
inline

Equality operator for the comparison of a dense vector and a scalar value.

Parameters
vecThe left-hand side dense vector for the comparison.
scalarThe right-hand side scalar value for the comparison.
Returns
true if all elements of the vector are equal to the scalar, false if not.

If all values of the vector are equal to the scalar value, the equality test returns true, otherwise false. Note that this function can only be used with built-in, numerical data types!

template<typename T1 , typename T2 , bool TF>
EnableIf< IsNumeric< T1 >, bool >::Type blaze::operator== ( T1  scalar,
const DenseVector< T2, TF > &  vec 
)
inline

Equality operator for the comparison of a scalar value and a dense vector.

Parameters
scalarThe left-hand side scalar value for the comparison.
vecThe right-hand side dense vector for the comparison.
Returns
true if all elements of the vector are equal to the scalar, false if not.

If all values of the vector are equal to the scalar value, the equality test returns true, otherwise false. Note that this function can only be used with built-in, numerical data types!

template<typename VT , bool TF>
const DVecTransExpr<VT,!TF> blaze::trans ( const DenseVector< VT, TF > &  dv)
inline

Calculation of the transpose of the given dense vector.

Parameters
dvThe dense vector to be transposed.
Returns
The transpose of the dense vector.

This function returns an expression representing the transpose of the given dense vector:

Friends

template<typename , typename >
template<typename VT2 >
EnableIf< UseAssign<VT2> >::Type addAssign ( DenseVector< VT2, true > &  lhs,
const TDVecTSMatMultExpr< typename, typename > &  rhs 
)
friend

Addition assignment of a transpose dense vector-transpose sparse matrix multiplication to a dense vector.

Parameters
lhsThe target left-hand side dense vector.
rhsThe right-hand side multiplication expression to be added.
Returns
void

This function implements the performance optimized addition assignment of a transpose dense vector-transpose sparse matrix multiplication expression to a dense vector. Due to the explicit application of the SFINAE principle, this operator can only be selected by the compiler in case either the left-hand side vector operand is a compound expression or the right-hand side matrix operand requires an intermediate evaluation.

template<typename , typename >
template<typename VT2 >
EnableIf< UseAssign<VT2> >::Type assign ( DenseVector< VT2, true > &  lhs,
const TDVecTSMatMultExpr< typename, typename > &  rhs 
)
friend

Assignment of a transpose dense vector-transpose sparse matrix multiplication to a dense vector.

Parameters
lhsThe target left-hand side dense vector.
rhsThe right-hand side multiplication expression to be assigned.
Returns
void

This function implements the performance optimized assignment of a transpose dense vector- transpose sparse matrix multiplication expression to a dense vector. Due to the explicit application of the SFINAE principle, this operator can only be selected by the compiler in case either the left-hand side vector operand is a compound expression or the right-hand side matrix operand requires an intermediate evaluation.

template<typename , typename >
template<typename VT2 >
EnableIf< UseAssign<VT2> >::Type assign ( SparseVector< VT2, true > &  lhs,
const TDVecTSMatMultExpr< typename, typename > &  rhs 
)
friend

Assignment of a transpose dense vector-transpose sparse matrix multiplication to a sparse vector.

Parameters
lhsThe target left-hand side sparse vector.
rhsThe right-hand side multiplication expression to be assigned.
Returns
void

This function implements the performance optimized assignment of a transpose dense vector- transpose sparse matrix multiplication expression to a sparse vector. Due to the explicit application of the SFINAE principle, this operator can only be selected by the compiler in case either the left-hand side vector operand is a compound expression or the right-hand side matrix operand requires an intermediate evaluation.

template<typename , typename >
template<typename VT2 >
EnableIf< UseAssign<VT2> >::Type multAssign ( DenseVector< VT2, true > &  lhs,
const TDVecTSMatMultExpr< typename, typename > &  rhs 
)
friend

Multiplication assignment of a transpose dense vector-transpose sparse matrix multiplication to a dense vector.

Parameters
lhsThe target left-hand side dense vector.
rhsThe right-hand side multiplication expression to be multiplied.
Returns
void

This function implements the performance optimized multiplication assignment of a transpose dense vector-transpose sparse matrix multiplication expression to a dense vector. Due to the explicit application of the SFINAE principle, this operator can only be selected by the compiler in case either the left-hand side vector operand is a compound expression or the right-hand side matrix operand requires an intermediate evaluation.

template<typename , typename >
template<typename VT2 >
EnableIf< UseAssign<VT2> >::Type subAssign ( DenseVector< VT2, true > &  lhs,
const TDVecTSMatMultExpr< typename, typename > &  rhs 
)
friend

Subtraction assignment of a transpose dense vector-transpose sparse matrix multiplication to a dense vector.

Parameters
lhsThe target left-hand side dense vector.
rhsThe right-hand side multiplication expression to be subtracted.
Returns
void

This function implements the performance optimized subtraction assignment of a transpose dense vector-transpose sparse matrix multiplication expression to a dense vector. Due to the explicit application of the SFINAE principle, this operator can only be selected by the compiler in case either the left-hand side vector operand is a compound expression or the right-hand side matrix operand requires an intermediate evaluation.