35 #ifndef _BLAZE_MATH_VIEWS_ROW_H_ 36 #define _BLAZE_MATH_VIEWS_ROW_H_ 122 template<
typename MT
128 return Row<MT>( ~matrix, index );
165 template<
typename MT
190 template<
typename MT
196 return Row<MT>( ~matrix, index );
221 template<
typename MT >
226 return row( (~matrix).leftOperand(), index ) +
row( (~matrix).rightOperand(), index );
244 template<
typename MT >
249 return row( (~matrix).leftOperand(), index ) -
row( (~matrix).rightOperand(), index );
266 template<
typename MT >
271 return row( (~matrix).leftOperand(), index ) *
row( (~matrix).rightOperand(), index );
289 template<
typename MT >
294 return row( (~matrix).leftOperand(), index ) * (~matrix).rightOperand();
311 template<
typename MT >
316 return (~matrix).leftOperand()[index] * (~matrix).rightOperand();
334 template<
typename MT >
339 return row( (~matrix).leftOperand(), index ) * (~matrix).rightOperand();
357 template<
typename MT >
362 return row( (~matrix).leftOperand(), index ) / (~matrix).rightOperand();
380 template<
typename MT >
385 return map(
row( (~matrix).operand(), index ), (~matrix).operation() );
403 template<
typename MT >
408 return map(
row( (~matrix).leftOperand() , index ),
409 row( (~matrix).rightOperand(), index ),
410 (~matrix).operation() );
428 template<
typename MT >
433 return eval(
row( (~matrix).operand(), index ) );
451 template<
typename MT >
456 return serial(
row( (~matrix).operand(), index ) );
474 template<
typename MT >
479 return row( (~matrix).operand(), index );
497 template<
typename MT >
502 return trans(
column( (~matrix).operand(), index ) );
519 template<
typename MT,
bool SO,
bool DF,
bool SF >
522 template<
typename MT,
bool SO,
bool DF,
bool SF >
525 template<
typename MT,
bool SO,
bool DF,
bool SF >
528 template<
typename MT,
bool SO,
bool DF,
bool SF >
531 template<
bool RF,
typename MT,
bool SO,
bool DF,
bool SF >
534 template<
typename MT,
bool SO,
bool DF,
bool SF >
537 template<
typename MT,
bool SO,
bool DF,
bool SF >
550 template<
typename MT
568 template<
typename MT
588 template<
typename MT
608 template<
typename MT
653 for(
size_t i=0UL; i<row.size(); ++i )
654 if( !isDefault<RF>( row[i] ) )
return false;
691 if( !isDefault<RF>( element->value() ) )
return false;
715 template<
typename MT
721 return ( row.row() < row.operand().rows() &&
739 template<
typename MT
745 return (
isSame( a.operand(), b.operand() ) && ( a.row() == b.row() ) );
765 template<
typename MT
775 return tryAssign( lhs.operand(), ~rhs, lhs.row(), index );
796 template<
typename MT
806 return tryAddAssign( lhs.operand(), ~rhs, lhs.row(), index );
827 template<
typename MT
837 return trySubAssign( lhs.operand(), ~rhs, lhs.row(), index );
858 template<
typename MT
868 return tryMultAssign( lhs.operand(), ~rhs, lhs.row(), index );
889 template<
typename MT
899 return tryDivAssign( lhs.operand(), ~rhs, lhs.row(), index );
920 template<
typename MT
926 return row( derestrict( r.operand() ), r.row() );
947 template<
typename MT
953 return row( derestrict( r.operand() ), r.row() );
969 template<
typename MT,
bool SO,
bool DF,
bool SF >
987 template<
typename MT,
bool SO,
bool SF >
1005 template<
typename MT,
bool SO,
bool SF >
1007 :
public BoolConstant< HasMutableDataAccess<MT>::value >
1023 template<
typename MT,
bool SO,
bool SF >
1025 :
public BoolConstant< And< IsAligned<MT>, Or< IsRowMajorMatrix<MT>, IsSymmetric<MT> > >::value >
1041 template<
typename MT,
bool SO,
bool SF >
1042 struct IsPadded< Row<MT,SO,true,SF> >
1043 :
public BoolConstant< And< IsPadded<MT>, Or< IsRowMajorMatrix<MT>, IsSymmetric<MT> > >::value >
1059 template<
typename MT,
bool DF >
1077 template<
typename MT,
bool SO,
bool DF,
bool SF,
typename T >
1078 struct AddTrait< Row<MT,SO,DF,SF>, T >
1083 template<
typename T,
typename MT,
bool SO,
bool DF,
bool SF >
1084 struct AddTrait< T, Row<MT,SO,DF,SF> >
1102 template<
typename MT,
bool SO,
bool DF,
bool SF,
typename T >
1103 struct SubTrait< Row<MT,SO,DF,SF>, T >
1108 template<
typename T,
typename MT,
bool SO,
bool DF,
bool SF >
1109 struct SubTrait< T, Row<MT,SO,DF,SF> >
1127 template<
typename MT,
bool SO,
bool DF,
bool SF,
typename T >
1133 template<
typename T,
typename MT,
bool SO,
bool DF,
bool SF >
1152 template<
typename MT,
bool SO,
bool DF,
bool SF,
typename T >
1153 struct DivTrait< Row<MT,SO,DF,SF>, T >
1158 template<
typename T,
typename MT,
bool SO,
bool DF,
bool SF >
1159 struct DivTrait< T, Row<MT,SO,DF,SF> >
1177 template<
typename MT,
bool SO,
bool DF,
bool SF,
typename T >
1183 template<
typename T,
typename MT,
bool SO,
bool DF,
bool SF >
1202 template<
typename MT,
bool SO,
bool DF,
bool SF >
Base class for all binary matrix map expression templates.The MatMatMapExpr class serves as a tag for...
Definition: MatMatMapExpr.h:66
Compile time check for low-level access to constant data.This type trait tests whether the given data...
Definition: HasConstDataAccess.h:75
Header file for the subtraction trait.
BLAZE_ALWAYS_INLINE bool isSame(const Matrix< MT1, SO1 > &a, const Matrix< MT2, SO2 > &b) noexcept
Returns whether the two given matrices represent the same observable state.
Definition: Matrix.h:786
Header file for basic type definitions.
Base class for all matrix serial evaluation expression templates.The MatSerialExpr class serves as a ...
Definition: MatSerialExpr.h:67
Header file for the row trait.
Base class for all matrix/scalar division expression templates.The MatScalarDivExpr class serves as a...
Definition: MatScalarDivExpr.h:66
BLAZE_ALWAYS_INLINE size_t size(const Vector< VT, TF > &vector) noexcept
Returns the current size/dimension of the vector.
Definition: Vector.h:265
Generic wrapper for a compile time constant integral value.The IntegralConstant class template repres...
Definition: IntegralConstant.h:71
Header file for the MatTransExpr base class.
Compile time check for resizable data types.This type trait tests whether the given data type is an o...
Definition: IsOpposedView.h:81
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:560
Row specialization for dense matrices.
Base class for all matrix/scalar multiplication expression templates.The MatScalarMultExpr class serv...
Definition: MatScalarMultExpr.h:67
Header file for the And class template.
Header file for the MatEvalExpr base class.
typename MultTrait< T1, T2 >::Type MultTrait_
Auxiliary alias declaration for the MultTrait class template.The MultTrait_ alias declaration provide...
Definition: MultTrait.h:250
Column< MT > column(Matrix< MT, SO > &matrix, size_t index)
Creating a view on a specific column of the given matrix.
Definition: Column.h:124
Header file for the MatMatMultExpr base class.
Row specialization for sparse matrices.
Base template for the CrossTrait class.
Definition: CrossTrait.h:116
Compile time check for data types with restricted data access.This type trait tests whether the given...
Definition: IsRestricted.h:82
Base template for the SubvectorTrait class.
Definition: SubvectorTrait.h:120
Compile time check for low-level access to mutable data.This type trait tests whether the given data ...
Definition: HasMutableDataAccess.h:75
Row< MT > row(Matrix< MT, SO > &matrix, size_t index)
Creating a view on a specific row of the given matrix.
Definition: Row.h:124
Compile time check for the alignment of data types.This type trait tests whether the given data type ...
Definition: IsAligned.h:87
Header file for the MatMapExpr base class.
Header file for the implementation of the Row base template.
Header file for the multiplication trait.
Header file for the IsSymmetric type trait.
Base class for all matrix/matrix subtraction expression templates.The MatMatSubExpr class serves as a...
Definition: MatMatSubExpr.h:67
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Compile time check for data types with padding.This type trait tests whether the given data type empl...
Definition: IsPadded.h:76
Header file for the Or class template.
typename SubvectorTrait< VT >::Type SubvectorTrait_
Auxiliary alias declaration for the SubvectorTrait type trait.The SubvectorTrait_ alias declaration p...
Definition: SubvectorTrait.h:155
const Element * ConstIterator
Iterator over constant elements.
Definition: CompressedMatrix.h:3087
Header file for the subvector trait.
Base class for all matrix/matrix addition expression templates.The MatMatAddExpr class serves as a ta...
Definition: MatMatAddExpr.h:66
Header file for the MatMatSubExpr base class.
Header file for the IsAligned type trait.
Base class for all unary matrix map expression templates.The MatMapExpr class serves as a tag for all...
Definition: MatMapExpr.h:66
Header file for the IsOpposedView type trait.
decltype(auto) eval(const DenseMatrix< MT, SO > &dm)
Forces the evaluation of the given dense matrix expression dm.
Definition: DMatEvalExpr.h:797
typename CrossTrait< T1, T2 >::Type CrossTrait_
Auxiliary alias declaration for the CrossTrait class template.The CrossTrait_ alias declaration provi...
Definition: CrossTrait.h:159
BLAZE_ALWAYS_INLINE MT::Iterator end(Matrix< MT, SO > &matrix, size_t i)
Returns an iterator just past the last element of row/column i.
Definition: Matrix.h:264
Header file for the MatSerialExpr base class.
Header file for the VecTVecMultExpr base class.
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:580
typename DivTrait< T1, T2 >::Type DivTrait_
Auxiliary alias declaration for the DivTrait class template.The DivTrait_ alias declaration provides ...
Definition: DivTrait.h:250
Reference to a specific row of a dense or sparse matrix.The Row template represents a reference to a ...
Definition: BaseTemplate.h:355
Header file for the HasConstDataAccess type trait.
Header file for the DeclExpr base class.
Base class for all matrix/matrix multiplication expression templates.The MatMatMultExpr class serves ...
Definition: MatMatMultExpr.h:67
Header file for the Matrix base class.
Header file for the MatScalarMultExpr base class.
Base class for all Schur product expression templates.The SchurExpr class serves as a tag for all exp...
Definition: SchurExpr.h:66
Base template for the AddTrait class.
Definition: AddTrait.h:139
Base template for the MultTrait class.
Definition: MultTrait.h:139
Header file for the addition trait.
Header file for the cross product trait.
Header file for the division trait.
Header file for the SchurExpr base class.
Base class for all matrix evaluation expression templates.The MatEvalExpr class serves as a tag for a...
Definition: MatEvalExpr.h:66
#define BLAZE_FUNCTION_TRACE
Function trace macro.This macro can be used to reliably trace function calls. In case function tracin...
Definition: FunctionTrace.h:94
Header file for the isDefault shim.
Base class for matrices.The Matrix class is a base class for all dense and sparse matrix classes with...
Definition: Forward.h:101
decltype(auto) serial(const DenseMatrix< MT, SO > &dm)
Forces the serial evaluation of the given dense matrix expression dm.
Definition: DMatSerialExpr.h:819
Base class for all matrix transposition expression templates.The MatTransExpr class serves as a tag f...
Definition: MatTransExpr.h:66
Header file for the HasMutableDataAccess type trait.
Header file for the MatMatAddExpr base class.
Base class for all outer product expression templates.The VecTVecMultExpr class serves as a tag for a...
Definition: VecTVecMultExpr.h:67
Base template for the DivTrait class.
Definition: DivTrait.h:139
typename T::ConstIterator ConstIterator_
Alias declaration for nested ConstIterator type definitions.The ConstIterator_ alias declaration prov...
Definition: Aliases.h:103
decltype(auto) trans(const DenseMatrix< MT, SO > &dm)
Calculation of the transpose of the given dense matrix.
Definition: DMatTransExpr.h:790
Header file for the IsRowMajorMatrix type trait.
Base class for N-dimensional vectors.The Vector class is a base class for all arbitrarily sized (N-di...
Definition: Forward.h:177
Header file for the MatMatMapExpr base class.
typename SubTrait< T1, T2 >::Type SubTrait_
Auxiliary alias declaration for the SubTrait class template.The SubTrait_ alias declaration provides ...
Definition: SubTrait.h:250
Header file for the IntegralConstant class template.
bool isIntact(const DiagonalMatrix< MT, SO, DF > &m)
Returns whether the invariants of the given diagonal matrix are intact.
Definition: DiagonalMatrix.h:252
bool isDefault(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is in default state.
Definition: DiagonalProxy.h:600
Base template for the SubTrait class.
Definition: SubTrait.h:139
Header file for the MatScalarDivExpr base class.
typename AddTrait< T1, T2 >::Type AddTrait_
Auxiliary alias declaration for the AddTrait class template.The AddTrait_ alias declaration provides ...
Definition: AddTrait.h:250
#define BLAZE_INTERNAL_ASSERT(expr, msg)
Run time assertion macro for internal checks.In case of an invalid run time expression, the program execution is terminated. The BLAZE_INTERNAL_ASSERT macro can be disabled by setting the BLAZE_USER_ASSERTION flag to zero or by defining NDEBUG during the compilation.
Definition: Assert.h:101
Header file for the TrueType type/value trait base class.
Header file for the function trace functionality.
decltype(auto) map(const DenseMatrix< MT1, SO > &lhs, const DenseMatrix< MT2, SO > &rhs, OP op)
Evaluates the given binary operation on each single element of the dense matrices lhs and rhs...
Definition: DMatDMatMapExpr.h:1133