35 #ifndef _BLAZE_MATH_EXPRESSIONS_TSVECSVECMULTEXPR_H_
36 #define _BLAZE_MATH_EXPRESSIONS_TSVECSVECMULTEXPR_H_
91 inline const typename MultTrait<typename T1::ElementType,typename T2::ElementType>::Type
111 if( (~lhs).size() != (~rhs).size() )
112 throw std::invalid_argument(
"Vector sizes do not match" );
114 if( (~lhs).
nonZeros() == 0UL || (~rhs).
nonZeros() == 0UL )
return MultType();
118 const LeftIterator lend( left.end() );
119 const RightIterator rend( right.end() );
120 LeftIterator l( left.begin() );
121 RightIterator r( right.begin() );
122 MultType sp = MultType();
124 for( ; l!=lend && r!=rend; ++l ) {
125 while( r->index() < l->index() && ++r != rend ) {}
126 if( r!=rend && l->index() == r->index() ) {
127 sp = l->value() * r->value();
133 for( ; l!=lend && r!=rend; ++l ) {
134 while( r->index() < l->index() && ++r != rend ) {}
135 if( r!=rend && l->index() == r->index() ) {
136 sp += l->value() * r->value();
const DMatDMatMultExpr< T1, T2 > operator*(const DenseMatrix< T1, false > &lhs, const DenseMatrix< T2, false > &rhs)
Multiplication operator for the multiplication of two row-major dense matrices ( ).
Definition: DMatDMatMultExpr.h:4329
Header file for the SparseVector base class.
#define BLAZE_CONSTRAINT_MUST_BE_COLUMN_VECTOR_TYPE(T)
Constraint on the data type.In case the given data type T is not a column dense or sparse vector type...
Definition: TransposeFlag.h:159
const This & CompositeType
Data type for composite expression templates.
Definition: CompressedMatrix.h:2408
Header file for the multiplication trait.
const Element * ConstIterator
Iterator over constant elements.
Definition: CompressedMatrix.h:2412
size_t nonZeros(const Matrix< MT, SO > &m)
Returns the total number of non-zero elements in the matrix.
Definition: Matrix.h:224
#define BLAZE_CONSTRAINT_MUST_BE_SPARSE_VECTOR_TYPE(T)
Constraint on the data type.In case the given data type T is not a sparse, N-dimensional vector type...
Definition: SparseVector.h:79
Constraint on the data type.
Type ElementType
Type of the sparse matrix elements.
Definition: CompressedMatrix.h:2406
Constraint on the data type.
Removal of reference modifiers.The RemoveCV type trait removes any reference modifiers from the given...
Definition: RemoveReference.h:69
Base template for the MultTrait class.
Definition: MultTrait.h:141
Header file for the RemoveReference type trait.
Base class for sparse vectors.The SparseVector class is a base class for all arbitrarily sized (N-dim...
Definition: Forward.h:108
#define BLAZE_FUNCTION_TRACE
Function trace macro.This macro can be used to reliably trace function calls. In case function tracin...
Definition: FunctionTrace.h:157
Header file for basic type definitions.
#define BLAZE_CONSTRAINT_MUST_BE_ROW_VECTOR_TYPE(T)
Constraint on the data type.In case the given data type T is not a row dense or sparse vector type (i...
Definition: TransposeFlag.h:81
Header file for the FunctionTrace class.