35#ifndef _BLAZE_MATH_EXPRESSIONS_DMATSMATEQUALEXPR_H_
36#define _BLAZE_MATH_EXPRESSIONS_DMATSMATEQUALEXPR_H_
78inline bool equal(
const DenseMatrix<MT1,SO>& lhs,
const SparseMatrix<MT2,false>& rhs )
80 using CT1 = CompositeType_t<MT1>;
81 using CT2 = CompositeType_t<MT2>;
84 if( (*lhs).rows() != (*rhs).rows() || (*lhs).columns() != (*rhs).columns() )
95 for(
size_t i=0UL; i<B.rows(); ++i ) {
97 for(
auto element=B.begin(i); element!=B.end(i); ++element, ++j ) {
98 for( ; j<element->index(); ++j ) {
99 if( !isDefault<RF>( A(i,j) ) )
return false;
101 if( !equal<RF>( element->value(), A(i,j) ) )
return false;
103 for( ; j<A.columns(); ++j ) {
104 if( !isDefault<RF>( A(i,j) ) )
return false;
132inline bool equal(
const DenseMatrix<MT1,SO>& lhs,
const SparseMatrix<MT2,true>& rhs )
134 using CT1 = CompositeType_t<MT1>;
135 using CT2 = CompositeType_t<MT2>;
138 if( (*lhs).rows() != (*rhs).rows() || (*lhs).columns() != (*rhs).columns() )
149 for(
size_t j=0UL; j<B.columns(); ++j ) {
151 for(
auto element=B.begin(j); element!=B.end(j); ++element, ++i ) {
152 for( ; i<element->index(); ++i ) {
153 if( !isDefault<RF>( A(i,j) ) )
return false;
155 if( !equal<RF>( element->value(), A(i,j) ) )
return false;
157 for( ; i<A.rows(); ++i ) {
158 if( !isDefault<RF>( A(i,j) ) )
return false;
187inline bool equal(
const SparseMatrix<MT1,SO1>& lhs,
const DenseMatrix<MT2,SO2>& rhs )
189 return equal<RF>( rhs, lhs );
203template<
typename MT1
209 return equal<relaxed>( lhs, rhs );
222template<
typename MT1
228 return equal<relaxed>( rhs, lhs );
241template<
typename MT1
247 return !
equal( lhs, rhs );
260template<
typename MT1
266 return !
equal( rhs, lhs );
Header file for auxiliary alias declarations.
Header file for the isDefault shim.
Header file for the relaxation flag enumeration.
Base class for dense matrices.
Definition: DenseMatrix.h:82
Base class for sparse matrices.
Definition: SparseMatrix.h:77
Header file for the DenseMatrix base class.
Header file for the SparseMatrix base class.
bool operator!=(const SparseMatrix< MT1, SO1 > &lhs, const DenseMatrix< MT2, SO2 > &rhs)
Inequality operator for the comparison of a sparse matrix and a dense matrix.
Definition: DMatSMatEqualExpr.h:264
bool operator==(const SparseMatrix< MT1, SO1 > &lhs, const DenseMatrix< MT2, SO2 > &rhs)
Equality operator for the comparison of a sparse matrix and a dense matrix.
Definition: DMatSMatEqualExpr.h:226
RelaxationFlag
Relaxation flag for strict or relaxed semantics.
Definition: RelaxationFlag.h:66
bool equal(const SharedValue< T1 > &lhs, const SharedValue< T2 > &rhs)
Equality check for a two shared values.
Definition: SharedValue.h:343
Header file for the equal shim.
Header file for basic type definitions.