35 #ifndef _BLAZE_MATH_ADAPTORS_DIAGONALMATRIX_H_ 36 #define _BLAZE_MATH_ADAPTORS_DIAGONALMATRIX_H_ 122 template<
typename MT,
bool SO,
bool DF >
123 void reset( DiagonalMatrix<MT,SO,DF>& m );
125 template<
typename MT,
bool SO,
bool DF >
126 void reset( DiagonalMatrix<MT,SO,DF>& m,
size_t i );
128 template<
typename MT,
bool SO,
bool DF >
129 void clear( DiagonalMatrix<MT,SO,DF>& m );
131 template<
bool RF,
typename MT,
bool SO,
bool DF >
132 bool isDefault(
const DiagonalMatrix<MT,SO,DF>& m );
134 template<
typename MT,
bool SO,
bool DF >
135 bool isIntact(
const DiagonalMatrix<MT,SO,DF>& m );
137 template<
typename MT,
bool SO,
bool DF >
138 void swap( DiagonalMatrix<MT,SO,DF>& a, DiagonalMatrix<MT,SO,DF>& b ) noexcept;
150 template<
typename MT
173 template<
typename MT
190 template<
typename MT
234 return isDefault<RF>( m.matrix_ );
260 template<
typename MT
278 template<
typename MT
314 inline void invert( DiagonalMatrix<MT,SO,true>& m )
323 invert<asDiagonal>( derestrict( m ) );
350 template<
typename MT1,
bool SO1,
typename MT2,
typename MT3,
typename MT4,
bool SO2 >
351 inline void lu(
const DiagonalMatrix<MT1,SO1,true>& A, DenseMatrix<MT2,SO1>& L,
352 DenseMatrix<MT3,SO1>& U, Matrix<MT4,SO2>& P )
366 using ET3 = ElementType_t<MT3>;
367 using ET4 = ElementType_t<MT4>;
369 const size_t n( (~A).
rows() );
371 decltype(
auto) U2( derestrict( ~U ) );
381 for(
size_t i=0UL; i<n; ++i ) {
406 template<
typename MT
410 inline bool trySet(
const DiagonalMatrix<MT,SO,DF>& mat,
size_t i,
size_t j,
const ET& value )
439 template<
typename MT
443 inline bool tryAdd(
const DiagonalMatrix<MT,SO,DF>& mat,
size_t i,
size_t j,
const ET& value )
445 return trySet( mat, i, j, value );
467 template<
typename MT
471 inline bool trySub(
const DiagonalMatrix<MT,SO,DF>& mat,
size_t i,
size_t j,
const ET& value )
473 return trySet( mat, i, j, value );
495 template<
typename MT
499 inline bool tryAssign(
const DiagonalMatrix<MT,SO,DF>& lhs,
500 const DenseVector<VT,false>& rhs,
size_t row,
size_t column )
512 for(
size_t i=0UL; i<index; ++i ) {
517 for(
size_t i=index+1UL; i<(~rhs).
size(); ++i ) {
544 template<
typename MT
548 inline bool tryAssign(
const DiagonalMatrix<MT,SO,DF>& lhs,
549 const DenseVector<VT,true>& rhs,
size_t row,
size_t column )
561 for(
size_t i=0UL; i<index; ++i ) {
566 for(
size_t i=index+1UL; i<(~rhs).
size(); ++i ) {
595 template<
typename MT
600 inline bool tryAssign(
const DiagonalMatrix<MT,SO,DF>& lhs,
const DenseVector<VT,TF>& rhs,
612 for(
size_t i=0UL; i<(~rhs).
size(); ++i ) {
640 template<
typename MT
644 inline bool tryAssign(
const DiagonalMatrix<MT,SO,DF>& lhs,
645 const SparseVector<VT,false>& rhs,
size_t row,
size_t column )
657 for(
auto element=(~rhs).
begin(); element!=(~rhs).
end(); ++element ) {
658 if( element->index() != index && !
isDefault( element->value() ) )
684 template<
typename MT
688 inline bool tryAssign(
const DiagonalMatrix<MT,SO,DF>& lhs,
689 const SparseVector<VT,true>& rhs,
size_t row,
size_t column )
701 for(
auto element=(~rhs).
begin(); element!=(~rhs).
end(); ++element ) {
702 if( element->index() != index && !
isDefault( element->value() ) )
730 template<
typename MT
735 inline bool tryAssign(
const DiagonalMatrix<MT,SO,DF>& lhs,
const SparseVector<VT,TF>& rhs,
747 for(
const auto& element : ~rhs ) {
775 template<
typename MT1
779 inline bool tryAssign(
const DiagonalMatrix<MT1,SO,DF>& lhs,
780 const DenseMatrix<MT2,false>& rhs,
size_t row,
size_t column )
791 const size_t M( (~rhs).
rows() );
792 const size_t N( (~rhs).
columns() );
794 for(
size_t i=0UL; i<M; ++i ) {
795 for(
size_t j=0UL; j<N; ++j ) {
823 template<
typename MT1
827 inline bool tryAssign(
const DiagonalMatrix<MT1,SO,DF>& lhs,
828 const DenseMatrix<MT2,true>& rhs,
size_t row,
size_t column )
839 const size_t M( (~rhs).
rows() );
840 const size_t N( (~rhs).
columns() );
842 for(
size_t j=0UL; j<N; ++j ) {
843 for(
size_t i=0UL; i<M; ++i ) {
871 template<
typename MT1
875 inline bool tryAssign(
const DiagonalMatrix<MT1,SO,DF>& lhs,
876 const SparseMatrix<MT2,false>& rhs,
size_t row,
size_t column )
887 const size_t M( (~rhs).
rows() );
889 for(
size_t i=0UL; i<M; ++i ) {
890 for(
auto element=(~rhs).
begin(i); element!=(~rhs).
end(i); ++element ) {
918 template<
typename MT1
922 inline bool tryAssign(
const DiagonalMatrix<MT1,SO,DF>& lhs,
923 const SparseMatrix<MT2,true>& rhs,
size_t row,
size_t column )
934 const size_t N( (~rhs).
columns() );
936 for(
size_t j=0UL; j<N; ++j ) {
937 for(
auto element=(~rhs).
begin(j); element!=(~rhs).
end(j); ++element ) {
965 template<
typename MT
970 inline bool tryAddAssign(
const DiagonalMatrix<MT,SO,DF>& lhs,
971 const Vector<VT,TF>& rhs,
size_t row,
size_t column )
973 return tryAssign( lhs, ~rhs,
row,
column );
997 template<
typename MT
1002 inline bool tryAddAssign(
const DiagonalMatrix<MT,SO,DF>& lhs,
const Vector<VT,TF>& rhs,
1027 template<
typename MT1
1032 inline bool tryAddAssign(
const DiagonalMatrix<MT1,SO1,DF>& lhs,
1033 const Matrix<MT2,SO2>& rhs,
size_t row,
size_t column )
1035 return tryAssign( lhs, ~rhs,
row,
column );
1058 template<
typename MT
1063 inline bool trySubAssign(
const DiagonalMatrix<MT,SO,DF>& lhs,
1064 const Vector<VT,TF>& rhs,
size_t row,
size_t column )
1066 return tryAssign( lhs, ~rhs,
row,
column );
1090 template<
typename MT
1095 inline bool trySubAssign(
const DiagonalMatrix<MT,SO,DF>& lhs,
const Vector<VT,TF>& rhs,
1121 template<
typename MT1
1126 inline bool trySubAssign(
const DiagonalMatrix<MT1,SO1,DF>& lhs,
1127 const Matrix<MT2,SO2>& rhs,
size_t row,
size_t column )
1129 return tryAssign( lhs, ~rhs,
row,
column );
1150 template<
typename MT
1153 inline MT& derestrict( DiagonalMatrix<MT,SO,DF>& m )
1171 template<
typename MT,
bool SO,
bool DF >
1172 struct Size< DiagonalMatrix<MT,SO,DF>, 0UL >
1173 :
public Size<MT,0UL>
1176 template<
typename MT,
bool SO,
bool DF >
1177 struct Size< DiagonalMatrix<MT,SO,DF>, 1UL >
1178 :
public Size<MT,1UL>
1194 template<
typename MT,
bool SO,
bool DF >
1195 struct MaxSize< DiagonalMatrix<MT,SO,DF>, 0UL >
1196 :
public MaxSize<MT,0UL>
1199 template<
typename MT,
bool SO,
bool DF >
1200 struct MaxSize< DiagonalMatrix<MT,SO,DF>, 1UL >
1201 :
public MaxSize<MT,1UL>
1217 template<
typename MT,
bool SO,
bool DF >
1218 struct IsSquare< DiagonalMatrix<MT,SO,DF> >
1235 template<
typename MT,
bool SO,
bool DF >
1236 struct IsUniform< DiagonalMatrix<MT,SO,DF> >
1237 :
public IsUniform<MT>
1253 template<
typename MT,
bool SO,
bool DF >
1254 struct IsSymmetric< DiagonalMatrix<MT,SO,DF> >
1271 template<
typename MT,
bool SO,
bool DF >
1272 struct IsHermitian< DiagonalMatrix<MT,SO,DF> >
1273 :
public IsBuiltin< ElementType_t<MT> >
1289 template<
typename MT,
bool SO,
bool DF >
1290 struct IsLower< DiagonalMatrix<MT,SO,DF> >
1307 template<
typename MT,
bool SO,
bool DF >
1308 struct IsStrictlyLower< DiagonalMatrix<MT,SO,DF> >
1309 :
public IsUniform<MT>
1325 template<
typename MT,
bool SO,
bool DF >
1326 struct IsUpper< DiagonalMatrix<MT,SO,DF> >
1343 template<
typename MT,
bool SO,
bool DF >
1344 struct IsStrictlyUpper< DiagonalMatrix<MT,SO,DF> >
1345 :
public IsUniform<MT>
1361 template<
typename MT,
bool SO,
bool DF >
1362 struct IsAdaptor< DiagonalMatrix<MT,SO,DF> >
1379 template<
typename MT,
bool SO,
bool DF >
1380 struct IsRestricted< DiagonalMatrix<MT,SO,DF> >
1397 template<
typename MT,
bool SO >
1398 struct HasConstDataAccess< DiagonalMatrix<MT,SO,true> >
1415 template<
typename MT,
bool SO,
bool DF >
1416 struct IsAligned< DiagonalMatrix<MT,SO,DF> >
1417 :
public IsAligned<MT>
1433 template<
typename MT,
bool SO,
bool DF >
1434 struct IsContiguous< DiagonalMatrix<MT,SO,DF> >
1435 :
public IsContiguous<MT>
1451 template<
typename MT,
bool SO,
bool DF >
1452 struct IsPadded< DiagonalMatrix<MT,SO,DF> >
1453 :
public IsPadded<MT>
1469 template<
typename MT,
bool SO,
bool DF >
1470 struct IsResizable< DiagonalMatrix<MT,SO,DF> >
1471 :
public IsResizable<MT>
1487 template<
typename MT,
bool SO,
bool DF >
1488 struct IsShrinkable< DiagonalMatrix<MT,SO,DF> >
1489 :
public IsShrinkable<MT>
1505 template<
typename MT,
bool SO,
bool DF >
1506 struct RemoveAdaptor< DiagonalMatrix<MT,SO,DF> >
1524 template<
typename T1,
typename T2 >
1525 struct AddTraitEval1< T1, T2
1528 IsDiagonal_v<T1> && IsDiagonal_v<T2> &&
1529 !( IsZero_v<T1> || IsZero_v<T2> ) > >
1531 using Type = DiagonalMatrix< typename AddTraitEval2<T1,T2>::Type >;
1547 template<
typename T1,
typename T2 >
1548 struct SubTraitEval1< T1, T2
1551 IsDiagonal_v<T1> && IsDiagonal_v<T2> &&
1552 !( IsZero_v<T1> || IsZero_v<T2> ) > >
1554 using Type = DiagonalMatrix< typename SubTraitEval2<T1,T2>::Type >;
1557 template<
typename T1,
typename T2 >
1558 struct SubTraitEval1< T1, T2
1561 IsZero_v<T1> && IsIdentity_v<T2> > >
1563 using Tmp = If_t< StorageOrder_v<T1> != StorageOrder_v<T2>, OppositeType_t<T1>, T1 >;
1564 using Type = DiagonalMatrix< typename SubTraitEval2<Tmp,T2>::Type >;
1580 template<
typename T1,
typename T2 >
1581 struct SchurTraitEval1< T1, T2
1584 ( IsDiagonal_v<T1> ||
1586 ( IsLower_v<T1> && IsUpper_v<T2> ) ||
1587 ( IsUpper_v<T1> && IsLower_v<T2> ) ) &&
1588 !( IsStrictlyLower_v<T1> && IsUpper_v<T2> ) &&
1589 !( IsStrictlyUpper_v<T1> && IsLower_v<T2> ) &&
1590 !( IsLower_v<T1> && IsStrictlyUpper_v<T2> ) &&
1591 !( IsUpper_v<T1> && IsStrictlyLower_v<T2> ) &&
1592 !( IsUniTriangular_v<T1> && IsUniTriangular_v<T2> ) &&
1593 !( IsZero_v<T1> || IsZero_v<T2> ) > >
1595 using Type = DiagonalMatrix< typename SchurTraitEval2<T1,T2>::Type >;
1611 template<
typename T1,
typename T2 >
1612 struct MultTraitEval1< T1, T2
1615 ( IsDiagonal_v<T1> && !IsUniform_v<T1> ) > >
1617 using Type = DiagonalMatrix< typename MultTraitEval2<T1,T2>::Type >;
1620 template<
typename T1,
typename T2 >
1621 struct MultTraitEval1< T1, T2
1624 ( IsDiagonal_v<T2> && !IsUniform_v<T2> ) > >
1626 using Type = DiagonalMatrix< typename MultTraitEval2<T1,T2>::Type >;
1629 template<
typename T1,
typename T2 >
1630 struct MultTraitEval1< T1, T2
1633 ( IsDiagonal_v<T1> && IsDiagonal_v<T2> ) &&
1634 !( IsIdentity_v<T1> || IsIdentity_v<T2> ) &&
1635 !( IsZero_v<T1> || IsZero_v<T2> ) > >
1637 using Type = DiagonalMatrix< typename MultTraitEval2<T1,T2>::Type >;
1653 template<
typename T1,
typename T2 >
1654 struct DivTraitEval1< T1, T2
1657 using Type = DiagonalMatrix< typename DivTraitEval2<T1,T2>::Type >;
1673 template<
typename T,
typename OP >
1674 struct UnaryMapTraitEval1< T, OP
1676 !YieldsIdentity_v<OP,T> &&
1677 !YieldsZero_v<OP,T> > >
1679 using Type = DiagonalMatrix< typename UnaryMapTraitEval2<T,OP>::Type, StorageOrder_v<T> >;
1687 template<
typename T1,
typename T2,
typename OP >
1688 struct BinaryMapTraitEval1< T1, T2, OP
1690 !YieldsIdentity_v<OP,T1,T2> &&
1691 !YieldsZero_v<OP,T1,T2> > >
1693 using Type = DiagonalMatrix< typename BinaryMapTraitEval2<T1,T2,OP>::Type >;
1709 template<
typename MT,
bool SO,
bool DF >
1710 struct DeclSymTrait< DiagonalMatrix<MT,SO,DF> >
1712 using Type = DiagonalMatrix<MT,SO,DF>;
1728 template<
typename MT,
bool SO,
bool DF >
1729 struct DeclHermTrait< DiagonalMatrix<MT,SO,DF> >
1731 using Type = HermitianMatrix<MT,SO,DF>;
1747 template<
typename MT,
bool SO,
bool DF >
1748 struct DeclLowTrait< DiagonalMatrix<MT,SO,DF> >
1750 using Type = DiagonalMatrix<MT,SO,DF>;
1766 template<
typename MT,
bool SO,
bool DF >
1767 struct DeclUppTrait< DiagonalMatrix<MT,SO,DF> >
1769 using Type = DiagonalMatrix<MT,SO,DF>;
1785 template<
typename MT,
bool SO,
bool DF >
1786 struct DeclDiagTrait< DiagonalMatrix<MT,SO,DF> >
1788 using Type = DiagonalMatrix<MT,SO,DF>;
1804 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1805 struct HighType< DiagonalMatrix<MT1,SO1,DF1>, DiagonalMatrix<MT2,SO2,DF2> >
1807 using Type = DiagonalMatrix< typename HighType<MT1,MT2>::Type >;
1823 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1824 struct LowType< DiagonalMatrix<MT1,SO1,DF1>, DiagonalMatrix<MT2,SO2,DF2> >
1826 using Type = DiagonalMatrix< typename LowType<MT1,MT2>::Type >;
1842 template<
typename MT,
size_t I,
size_t N >
1843 struct SubmatrixTraitEval1< MT, I, I, N, N
1845 !IsIdentity_v<MT> > >
1847 using Type = DiagonalMatrix< typename SubmatrixTraitEval2<MT,I,I,N,N>::Type >;
Header file for auxiliary alias declarations.
decltype(auto) column(Matrix< MT, SO > &matrix, RCAs... args)
Creating a view on a specific column of the given matrix.
Definition: Column.h:133
Header file for the decldiag trait.
Header file for the Schur product trait.
Header file for the UNUSED_PARAMETER function template.
Header file for the subtraction trait.
constexpr bool IsMatrix_v
Auxiliary variable template for the IsMatrix type trait.The IsMatrix_v variable template provides a c...
Definition: IsMatrix.h:139
Header file for the row trait.
Header file for the declherm trait.
Flag for the inversion of a upper unitriangular matrix.
Definition: InversionFlag.h:114
Flag for the inversion of a lower unitriangular matrix.
Definition: InversionFlag.h:112
Header file for the IsDiagonal type trait.
Header file for the YieldsZero type trait.
Header file for the dense matrix inversion flags.
MT::Iterator begin(Matrix< MT, SO > &matrix, size_t i)
Returns an iterator to the first element of row/column i.
Definition: Matrix.h:372
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:591
Header file for the YieldsIdentity type trait.
#define BLAZE_CONSTRAINT_MUST_NOT_BE_UNITRIANGULAR_MATRIX_TYPE(T)
Constraint on the data type.In case the given data type T is a lower or upper unitriangular matrix ty...
Definition: UniTriangular.h:81
Header file for the IsIdentity type trait.
BoolConstant< true > TrueType
Type traits base class.The TrueType class is used as base class for type traits and value traits that...
Definition: TrueType.h:61
constexpr void UNUSED_PARAMETER(const Args &...)
Suppression of unused parameter warnings.
Definition: Unused.h:81
Constraint on the data type.
Header file for the MaxSize type trait.
constexpr size_t columns(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of columns of the matrix.
Definition: Matrix.h:514
bool isIdentity(const DenseMatrix< MT, SO > &dm)
Checks if the give dense matrix is an identity matrix.
Definition: DenseMatrix.h:1644
Constraint on the data type.
Header file for the IsMatrix type trait.
Header file for the IsSquare type trait.
typename EnableIf< Condition, T >::Type EnableIf_t
Auxiliary type for the EnableIf class template.The EnableIf_t alias declaration provides a convenient...
Definition: EnableIf.h:138
void invert(const HermitianProxy< MT > &proxy)
In-place inversion of the represented element.
Definition: HermitianProxy.h:775
Constraint on the data type.
Header file for the LowType type trait.
Header file for the multiplication trait.
Header file for the IsStrictlyUpper type trait.
Header file for the IsSymmetric type trait.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
Header file for the If class template.
Header file for the IsShrinkable type trait.
Header file for all forward declarations of the math module.
Header file for the decllow trait.
void lu(const DenseMatrix< MT1, SO1 > &A, DenseMatrix< MT2, SO1 > &L, DenseMatrix< MT3, SO1 > &U, Matrix< MT4, SO2 > &P)
LU decomposition of the given dense matrix.
Definition: LU.h:221
constexpr bool IsNumeric_v
Auxiliary variable template for the IsNumeric type trait.The IsNumeric_v variable template provides a...
Definition: IsNumeric.h:143
DiagonalMatrix specialization for dense matrices.
Header file for the IsLower type trait.
Header file for the IsAligned type trait.
Header file for the IsUniTriangular type trait.
Header file for the exception macros of the math module.
#define BLAZE_CONSTRAINT_MUST_NOT_BE_UPPER_MATRIX_TYPE(T)
Constraint on the data type.In case the given data type T is a upper triangular matrix type...
Definition: Upper.h:81
void resize(Matrix< MT, SO > &matrix, size_t rows, size_t columns, bool preserve=true)
Changing the size of the matrix.
Definition: Matrix.h:738
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:438
Header file for the RemoveAdaptor type trait.
Constraint on the data type.
Header file for the EnableIf class template.
Header file for the IsStrictlyLower type trait.
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:611
Header file for the IsPadded type trait.
Header file for the IsAdaptor type trait.
decltype(auto) band(Matrix< MT, SO > &matrix, RBAs... args)
Creating a view on a specific band of the given matrix.
Definition: Band.h:135
Constraint on the data type.
Header file for the IsNumeric type trait.
Header file for the HasConstDataAccess type trait.
constexpr bool YieldsDiagonal_v
Auxiliary variable template for the YieldsDiagonal type trait.The YieldsDiagonal_v variable template ...
Definition: YieldsDiagonal.h:126
Header file for the declupp trait.
#define BLAZE_CONSTRAINT_MUST_NOT_BE_SYMMETRIC_MATRIX_TYPE(T)
Constraint on the data type.In case the given data type T is a symmetric matrix type, a compilation error is created.
Definition: Symmetric.h:79
Header file for run time assertion macros.
Header file for the addition trait.
Header file for the division trait.
Header file for the submatrix trait.
Constraint on the data type.
Header file for the IsContiguous type trait.
decltype(auto) row(Matrix< MT, SO > &, RRAs...)
Creating a view on a specific row of the given matrix.
Definition: Row.h:133
Header file for the IsZero type trait.
#define BLAZE_CONSTRAINT_MUST_NOT_BE_LOWER_MATRIX_TYPE(T)
Constraint on the data type.In case the given data type T is a lower triangular matrix type...
Definition: Lower.h:81
Header file for the declsym trait.
Header file for the isDefault shim.
void swap(DiagonalMatrix< MT, SO, DF > &a, DiagonalMatrix< MT, SO, DF > &b) noexcept
Swapping the contents of two matrices.
Definition: DiagonalMatrix.h:281
constexpr size_t size(const Matrix< MT, SO > &matrix) noexcept
Returns the total number of elements of the matrix.
Definition: Matrix.h:530
#define BLAZE_CONSTRAINT_MUST_BE_BLAS_COMPATIBLE_TYPE(T)
Constraint on the data type.In case the given data type T is not a BLAS compatible data type (i...
Definition: BLASCompatible.h:61
Constraint on the data type.
#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
constexpr size_t rows(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of rows of the matrix.
Definition: Matrix.h:498
constexpr bool IsDiagonal_v
Auxiliary variable template for the IsDiagonal type trait.The IsDiagonal_v variable template provides...
Definition: IsDiagonal.h:148
Header file for the implementation of the base template of the DiagonalMatrix.
Header file for the YieldsDiagonal type trait.
Header file for the IsBuiltin type trait.
Header file for the isDivisor shim.
Header file for the StorageOrder type trait.
Header file for the map trait.
bool isIntact(const DiagonalMatrix< MT, SO, DF > &m)
Returns whether the invariants of the given diagonal matrix are intact.
Definition: DiagonalMatrix.h:263
bool isDefault(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is in default state.
Definition: DiagonalProxy.h:631
#define BLAZE_CONSTRAINT_MUST_NOT_BE_HERMITIAN_MATRIX_TYPE(T)
Constraint on the data type.In case the given data type T is an Hermitian matrix type, a compilation error is created.
Definition: Hermitian.h:79
Matrix adapter for diagonal matrices.
Definition: BaseTemplate.h:560
Header file for the IsUpper type trait.
Header file for the IsHermitian type trait.
Header file for the IsResizable type trait.
Header file for the IsRestricted type trait.
Header file for the Size type trait.
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
DiagonalMatrix specialization for sparse matrices.
Header file for the HighType type trait.
Header file for the TrueType type/value trait base class.