35 #ifndef _BLAZE_MATH_VIEWS_SUBMATRIX_H_ 36 #define _BLAZE_MATH_VIEWS_SUBMATRIX_H_ 162 template<
typename MT
164 inline decltype(
auto)
169 return submatrix<unaligned>( ~matrix,
row,
column, m, n );
232 template<
typename MT
234 inline decltype(
auto)
239 return submatrix<unaligned>( ~matrix,
row,
column, m, n );
262 template<
typename MT
264 inline decltype(
auto)
269 return submatrix<unaligned>( ~matrix,
row,
column, m, n );
507 decltype(
auto) left ( (~vector).leftOperand() );
508 decltype(
auto) right( (~vector).rightOperand() );
516 ?( index + size - 1UL )
517 :( index + size ) ) )
519 :( left.columns() ) ) );
521 return submatrix<AF>( left, index,
column,
size, n ) * subvector<AF>( right, column, n );
548 decltype(
auto) left ( (~vector).leftOperand() );
549 decltype(
auto) right( (~vector).rightOperand() );
557 ?( index + size - 1UL )
558 :( index + size ) ) )
560 :( right.rows() ) ) );
562 return subvector<AF>( left,
row, m ) * submatrix<AF>( right, row, index, m, size );
585 inline decltype(
auto)
590 return submatrix<AF>( (~matrix).leftOperand() ,
row,
column, m, n ) +
591 submatrix<AF>( (~matrix).rightOperand(),
row,
column, m, n );
614 inline decltype(
auto)
619 return submatrix<AF>( (~matrix).leftOperand() ,
row,
column, m, n ) -
620 submatrix<AF>( (~matrix).rightOperand(),
row,
column, m, n );
643 inline decltype(
auto)
648 return submatrix<AF>( (~matrix).leftOperand() ,
row,
column, m, n ) %
649 submatrix<AF>( (~matrix).rightOperand(),
row,
column, m, n );
672 inline decltype(
auto)
680 decltype(
auto) left ( (~matrix).leftOperand() );
681 decltype(
auto) right( (~matrix).rightOperand() );
694 :( left.columns() ) ) );
696 const size_t diff( ( begin <
end )?(
end - begin ):( 0UL ) );
698 return submatrix<AF>( left,
row,
begin, m, diff ) *
699 submatrix<AF>( right, begin, column, diff, n );
722 inline decltype(
auto)
727 return subvector<AF>( (~matrix).leftOperand(),
row, m ) *
728 subvector<AF>( (~matrix).rightOperand(),
column, n );
751 inline decltype(
auto)
756 return submatrix<AF>( (~matrix).leftOperand(),
row,
column, m, n ) * (~matrix).rightOperand();
779 inline decltype(
auto)
784 return submatrix<AF>( (~matrix).leftOperand(),
row,
column, m, n ) / (~matrix).rightOperand();
807 inline decltype(
auto)
812 return map( submatrix<AF>( (~matrix).operand(), row, column, m, n ), (~matrix).operation() );
835 inline decltype(
auto)
840 return map( submatrix<AF>( (~matrix).leftOperand() , row, column, m, n ),
841 submatrix<AF>( (~matrix).rightOperand(), row, column, m, n ),
842 (~matrix).operation() );
865 inline decltype(
auto)
870 return eval( submatrix<AF>( (~matrix).operand(), row, column, m, n ) );
893 inline decltype(
auto)
898 return serial( submatrix<AF>( (~matrix).operand(), row, column, m, n ) );
921 inline decltype(
auto)
926 return submatrix<AF>( (~matrix).operand(),
row,
column, m, n );
949 inline decltype(
auto)
954 return trans( submatrix<AF>( (~matrix).operand(), column, row, n, m ) );
984 if( ( row + m > sm.rows() ) || ( column + n > sm.columns() ) ) {
1005 template<
typename MT,
bool AF,
bool SO,
bool DF >
1008 template<
typename MT,
bool AF,
bool SO,
bool DF >
1011 template<
typename MT,
bool AF,
bool SO,
bool DF >
1014 template<
typename MT,
bool AF,
bool SO,
bool DF >
1017 template<
typename MT,
bool AF,
bool SO,
bool DF >
1020 template<
bool RF,
typename MT,
bool AF,
bool SO,
bool DF >
1023 template<
typename MT,
bool AF,
bool SO,
bool DF >
1026 template<
typename MT,
bool AF,
bool SO,
bool DF >
1029 template<
typename MT,
bool AF,
bool SO,
bool DF >
1032 template<
typename MT,
bool AF,
bool SO,
bool DF >
1035 template<
typename MT,
bool AF,
bool SO,
bool DF >
1038 template<
typename MT,
bool AF,
bool SO,
bool DF >
1041 template<
typename MT,
bool AF,
bool SO,
bool DF >
1044 template<
typename MT,
bool AF,
bool SO,
bool DF >
1047 template<
typename MT,
bool AF,
bool SO,
bool DF >
1050 template<
typename MT,
bool AF,
bool SO,
bool DF >
1053 template<
typename MT,
bool AF,
bool SO,
bool DF >
1056 template<
typename MT,
bool AF,
bool SO,
bool DF >
1069 template<
typename MT
1087 template<
typename MT
1111 template<
typename MT
1131 template<
typename MT
1151 template<
typename MT
1197 for(
size_t i=0UL; i<(~sm).
rows(); ++i )
1198 for(
size_t j=0UL; j<(~sm).
columns(); ++j )
1199 if( !isDefault<RF>( (~sm)(i,j) ) )
1203 for(
size_t j=0UL; j<(~sm).
columns(); ++j )
1204 for(
size_t i=0UL; i<(~sm).
rows(); ++i )
1205 if( !isDefault<RF>( (~sm)(i,j) ) )
1243 const size_t iend( ( SO ==
rowMajor)?( sm.rows() ):( sm.columns() ) );
1245 for(
size_t i=0UL; i<iend; ++i ) {
1246 for(
ConstIterator element=sm.begin(i); element!=sm.end(i); ++element )
1247 if( !isDefault<RF>( element->value() ) )
return false;
1274 template<
typename MT
1280 return ( sm.row() + sm.rows() <= sm.operand().rows() &&
1281 sm.column() + sm.columns() <= sm.operand().columns() &&
1309 template<
typename MT
1319 else return isSymmetric( static_cast<const BaseType&>( sm ) );
1346 template<
typename MT
1356 else return isHermitian( static_cast<const BaseType&>( sm ) );
1393 template<
typename MT
1403 else return isLower( static_cast<const BaseType&>( sm ) );
1439 template<
typename MT
1449 else return isUniLower( static_cast<const BaseType&>( sm ) );
1485 template<
typename MT
1532 template<
typename MT
1542 else return isUpper( static_cast<const BaseType&>( sm ) );
1578 template<
typename MT
1588 else return isUniUpper( static_cast<const BaseType&>( sm ) );
1624 template<
typename MT
1651 template<
typename MT
1657 return (
isSame( a.operand(), ~b ) &&
1658 ( a.rows() == (~b).
rows() ) &&
1659 ( a.columns() == (~b).
columns() ) );
1676 template<
typename MT
1682 return (
isSame( ~a, b.operand() ) &&
1683 ( (~a).rows() == b.rows() ) &&
1684 ( (~a).columns() == b.columns() ) );
1701 template<
typename MT
1707 return (
isSame( a.operand(), b.operand() ) &&
1708 ( a.row() == b.row() ) && ( a.column() == b.column() ) &&
1709 ( a.rows() == b.rows() ) && ( a.columns() == b.columns() ) );
1782 template<
typename MT
1789 size_t row,
size_t column )
1796 return tryAssign( lhs.operand(), ~rhs, lhs.row() +
row, lhs.column() +
column );
1818 template<
typename MT1
1825 size_t row,
size_t column )
1832 return tryAssign( lhs.operand(), ~rhs, lhs.row() +
row, lhs.column() +
column );
1854 template<
typename MT
1861 size_t row,
size_t column )
1868 return tryAddAssign( lhs.operand(), ~rhs, lhs.row() +
row, lhs.column() +
column );
1890 template<
typename MT1
1897 size_t row,
size_t column )
1904 return tryAddAssign( lhs.operand(), ~rhs, lhs.row() +
row, lhs.column() +
column );
1926 template<
typename MT
1933 size_t row,
size_t column )
1940 return trySubAssign( lhs.operand(), ~rhs, lhs.row() +
row, lhs.column() +
column );
1962 template<
typename MT1
1969 size_t row,
size_t column )
1976 return trySubAssign( lhs.operand(), ~rhs, lhs.row() +
row, lhs.column() +
column );
1998 template<
typename MT
2005 size_t row,
size_t column )
2012 return tryMultAssign( lhs.operand(), ~rhs, lhs.row() +
row, lhs.column() +
column );
2034 template<
typename MT1
2041 size_t row,
size_t column )
2048 return trySchurAssign( lhs.operand(), ~rhs, lhs.row() +
row, lhs.column() +
column );
2069 template<
typename MT
2075 return submatrix( derestrict( dm.operand() ), dm.row(), dm.column(), dm.rows(), dm.columns() );
2096 template<
typename MT
2102 return submatrix( derestrict( dm.operand() ), dm.row(), dm.column(), dm.rows(), dm.columns() );
2118 template<
typename MT,
bool AF,
bool SO,
bool DF >
2136 template<
typename MT,
bool AF,
bool SO >
2154 template<
typename MT,
bool AF,
bool SO >
2156 :
public BoolConstant< HasMutableDataAccess<MT>::value >
2172 template<
typename MT,
bool SO >
2173 struct IsAligned< Submatrix<MT,aligned,SO,true> >
2190 template<
typename MT,
bool AF,
bool SO,
bool DF,
typename T >
2191 struct AddTrait< Submatrix<MT,AF,SO,DF>, T >
2196 template<
typename T,
typename MT,
bool AF,
bool SO,
bool DF >
2197 struct AddTrait< T, Submatrix<MT,AF,SO,DF> >
2215 template<
typename MT,
bool AF,
bool SO,
bool DF,
typename T >
2216 struct SubTrait< Submatrix<MT,AF,SO,DF>, T >
2221 template<
typename T,
typename MT,
bool AF,
bool SO,
bool DF >
2222 struct SubTrait< T, Submatrix<MT,AF,SO,DF> >
2240 template<
typename MT,
bool AF,
bool SO,
bool DF,
typename T >
2241 struct MultTrait< Submatrix<MT,AF,SO,DF>, T >
2246 template<
typename T,
typename MT,
bool AF,
bool SO,
bool DF >
2247 struct MultTrait< T, Submatrix<MT,AF,SO,DF> >
2265 template<
typename MT,
bool AF,
bool SO,
bool DF,
typename T >
2266 struct DivTrait< Submatrix<MT,AF,SO,DF>, T >
2271 template<
typename T,
typename MT,
bool AF,
bool DF,
bool SO >
2272 struct DivTrait< T, Submatrix<MT,AF,SO,DF> >
2290 template<
typename MT,
bool AF,
bool SO,
bool DF >
2309 template<
typename MT,
bool AF,
bool SO,
bool DF >
2310 struct RowTrait< Submatrix<MT,AF,SO,DF> >
2328 template<
typename MT,
bool AF,
bool SO,
bool DF >
#define BLAZE_THROW_INVALID_ARGUMENT(MESSAGE)
Macro for the emission of a std::invalid_argument exception.This macro encapsulates the default way o...
Definition: Exception.h:235
Header file for auxiliary alias declarations.
Headerfile for the generic min algorithm.
Base class for all vector/matrix multiplication expression templates.The TVecMatMultExpr class serves...
Definition: TVecMatMultExpr.h:67
bool isLower(const DenseMatrix< MT, SO > &dm)
Checks if the given dense matrix is a lower triangular matrix.
Definition: DenseMatrix.h:1073
bool isUpper(const DenseMatrix< MT, SO > &dm)
Checks if the given dense matrix is an upper triangular matrix.
Definition: DenseMatrix.h:1328
bool isStrictlyLower(const DenseMatrix< MT, SO > &dm)
Checks if the given dense matrix is a strictly lower triangular matrix.
Definition: DenseMatrix.h:1245
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 alignment flag values.
Header file for the subtraction trait.
#define BLAZE_CONSTRAINT_MUST_HAVE_MUTABLE_DATA_ACCESS(T)
Constraint on the data type.In case the given data type T does not provide low-level data access to m...
Definition: MutableDataAccess.h:61
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
Subvector< VT, AF > subvector(Vector< VT, TF > &vector, size_t index, size_t size)
Creating a view on a specific subvector of the given vector.
Definition: Subvector.h:322
Header file for the row trait.
Base template for the SubmatrixTrait class.
Definition: SubmatrixTrait.h:128
Base class for all matrix/scalar division expression templates.The MatScalarDivExpr class serves as a...
Definition: MatScalarDivExpr.h:66
Base template for the ColumnTrait class.
Definition: ColumnTrait.h:127
Header file for the serial shim.
typename RowTrait< MT >::Type RowTrait_
Auxiliary alias declaration for the RowTrait type trait.The RowTrait_ alias declaration provides a co...
Definition: RowTrait.h:162
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.
Header file for the dense matrix inversion flags.
BLAZE_ALWAYS_INLINE MT::Iterator begin(Matrix< MT, SO > &matrix, size_t i)
Returns an iterator to the first element of row/column i.
Definition: Matrix.h:198
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:560
bool isUniLower(const DenseMatrix< MT, SO > &dm)
Checks if the given dense matrix is a lower unitriangular matrix.
Definition: DenseMatrix.h:1158
typename DisableIf< Condition, T >::Type DisableIf_
Auxiliary type for the DisableIf class template.The DisableIf_ alias declaration provides a convenien...
Definition: DisableIf.h:224
Submatrix< MT, AF > submatrix(Matrix< MT, SO > &matrix, size_t row, size_t column, size_t m, size_t n)
Creating a view on a specific submatrix of the given matrix.
Definition: Submatrix.h:352
Base class for all matrix/scalar multiplication expression templates.The MatScalarMultExpr class serv...
Definition: MatScalarMultExpr.h:67
const ElementType_< MT > min(const DenseMatrix< MT, SO > &dm)
Returns the smallest element of the dense matrix.
Definition: DenseMatrix.h:1762
Compile time check for lower triangular matrices.This type trait tests whether or not the given templ...
Definition: IsLower.h:88
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.
Compile time check for upper triangular matrices.This type trait tests whether or not the given templ...
Definition: IsUpper.h:88
typename T::ResultType ResultType_
Alias declaration for nested ResultType type definitions.The ResultType_ alias declaration provides a...
Definition: Aliases.h:343
const ElementType_< MT > max(const DenseMatrix< MT, SO > &dm)
Returns the largest element of the dense matrix.
Definition: DenseMatrix.h:1809
Base class for sparse matrices.The SparseMatrix class is a base class for all sparse matrix classes...
Definition: Forward.h:129
Compile time check for data types with restricted data access.This type trait tests whether the given...
Definition: IsRestricted.h:82
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
void invert(const HermitianProxy< MT > &proxy)
In-place inversion of the represented element.
Definition: HermitianProxy.h:772
Submatrix specialization for dense matrices.
Header file for the MatMapExpr base class.
Base template for the RowTrait class.
Definition: RowTrait.h:127
Header file for the implementation of the Subvector view.
Compile time check for upper unitriangular matrices.This type trait tests whether or not the given te...
Definition: IsUniUpper.h:86
Headerfile for the generic max algorithm.
Header file for the DisableIf class template.
Header file for the multiplication trait.
Header file for the IsStrictlyUpper 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
Header file for the implementation of the Submatrix base template.
const Element * ConstIterator
Iterator over constant elements.
Definition: CompressedMatrix.h:3087
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 IsLower type trait.
Header file for the IsAligned type trait.
BLAZE_ALWAYS_INLINE size_t columns(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of columns of the matrix.
Definition: Matrix.h:340
Base class for all unary matrix map expression templates.The MatMapExpr class serves as a tag for all...
Definition: MatMapExpr.h:66
Base class for all matrix/vector multiplication expression templates.The MatVecMultExpr class serves ...
Definition: MatVecMultExpr.h:67
decltype(auto) eval(const DenseMatrix< MT, SO > &dm)
Forces the evaluation of the given dense matrix expression dm.
Definition: DMatEvalExpr.h:797
Compile time check for symmetric matrices.This type trait tests whether or not the given template par...
Definition: IsSymmetric.h:85
typename RemoveReference< T >::Type RemoveReference_
Auxiliary alias declaration for the RemoveReference type trait.The RemoveReference_ alias declaration...
Definition: RemoveReference.h:95
Submatrix specialization for sparse matrices.
Compile time check for strictly upper triangular matrices.This type trait tests whether or not the gi...
Definition: IsStrictlyUpper.h:86
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
Constraint on the data type.
Constraint on the data type.
Header file for the MatSerialExpr base class.
Header file for the VecTVecMultExpr base class.
Header file for the IsStrictlyLower type trait.
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:580
View on a specific submatrix of a dense or sparse matrix.The Submatrix class template represents a vi...
Definition: BaseTemplate.h:503
typename DivTrait< T1, T2 >::Type DivTrait_
Auxiliary alias declaration for the DivTrait class template.The DivTrait_ alias declaration provides ...
Definition: DivTrait.h:250
Compile time check for lower unitriangular matrices.This type trait tests whether or not the given te...
Definition: IsUniLower.h:86
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.
bool isStrictlyUpper(const DenseMatrix< MT, SO > &dm)
Checks if the given dense matrix is a strictly upper triangular matrix.
Definition: DenseMatrix.h:1500
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 division trait.
Header file for the submatrix 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
bool isHermitian(const DenseMatrix< MT, SO > &dm)
Checks if the given dense matrix is Hermitian.
Definition: DenseMatrix.h:778
Header file for the column trait.
Header file for the isDefault shim.
Compile time check for Hermitian matrices.This type trait tests whether or not the given template par...
Definition: IsHermitian.h:85
Base class for matrices.The Matrix class is a base class for all dense and sparse matrix classes with...
Definition: Forward.h:101
Header file for the TVecMatMultExpr base class.
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.
bool isSymmetric(const DenseMatrix< MT, SO > &dm)
Checks if the given dense matrix is symmetric.
Definition: DenseMatrix.h:700
#define BLAZE_CONSTRAINT_MUST_NOT_REQUIRE_EVALUATION(T)
Constraint on the data type.In case the given data type T requires an intermediate evaluation within ...
Definition: RequiresEvaluation.h:81
typename SubmatrixTrait< MT >::Type SubmatrixTrait_
Auxiliary alias declaration for the SubmatrixTrait type trait.The SubmatrixTrait_ alias declaration p...
Definition: SubmatrixTrait.h:163
Header file for the MatMatAddExpr base class.
Header file for the RemoveReference type trait.
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 ColumnTrait< MT >::Type ColumnTrait_
Auxiliary alias declaration for the ColumnTrait type trait.The ColumnTrait_ alias declaration provide...
Definition: ColumnTrait.h:162
Compile time check for strictly lower triangular matrices.This type trait tests whether or not the gi...
Definition: IsStrictlyLower.h:86
BLAZE_ALWAYS_INLINE size_t rows(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of rows of the matrix.
Definition: Matrix.h:324
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
Base class for N-dimensional vectors.The Vector class is a base class for all arbitrarily sized (N-di...
Definition: Forward.h:177
const bool rowMajor
Storage order flag for row-major matrices.
Definition: StorageOrder.h:71
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 isUniUpper(const DenseMatrix< MT, SO > &dm)
Checks if the given dense matrix is an upper unitriangular matrix.
Definition: DenseMatrix.h:1413
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 IsUpper type trait.
Header file for the MatScalarDivExpr base class.
Header file for the MatVecMultExpr base class.
Header file for the IsRestricted type trait.
typename AddTrait< T1, T2 >::Type AddTrait_
Auxiliary alias declaration for the AddTrait class template.The AddTrait_ alias declaration provides ...
Definition: AddTrait.h:250
InversionFlag
Inversion flag.The InversionFlag type enumeration represents the different types of matrix inversion ...
Definition: InversionFlag.h:101
#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.
typename T::BaseType BaseType_
Alias declaration for nested BaseType type definitions.The BaseType_ alias declaration provides a con...
Definition: Aliases.h:63
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