35 #ifndef _BLAZE_MATH_ADAPTORS_HERMITIANMATRIX_H_ 36 #define _BLAZE_MATH_ADAPTORS_HERMITIANMATRIX_H_ 102 template<
typename MT,
bool SO,
bool DF >
103 inline void reset( HermitianMatrix<MT,SO,DF>& m );
105 template<
typename MT,
bool SO,
bool DF >
106 inline void reset( HermitianMatrix<MT,SO,DF>& m,
size_t i );
108 template<
typename MT,
bool SO,
bool DF >
109 inline void clear( HermitianMatrix<MT,SO,DF>& m );
111 template<
bool RF,
typename MT,
bool SO,
bool DF >
112 inline bool isDefault(
const HermitianMatrix<MT,SO,DF>& m );
114 template<
typename MT,
bool SO,
bool DF >
115 inline bool isIntact(
const HermitianMatrix<MT,SO,DF>& m );
117 template<
typename MT,
bool SO,
bool DF >
118 inline void swap( HermitianMatrix<MT,SO,DF>& a, HermitianMatrix<MT,SO,DF>& b ) noexcept;
130 template<
typename MT
153 template<
typename MT
170 template<
typename MT
211 return isDefault<RF>( m.matrix_ );
237 template<
typename MT
255 template<
typename MT
309 m.matrix_ = std::move( tmp );
333 template<
typename MT
352 (~rhs).
size() <= column - row ||
353 isReal( (~rhs)[column-row] ) );
377 template<
typename MT
396 (~rhs).
size() <= row - column ||
397 isReal( (~rhs)[row-column] ) );
421 template<
typename MT1
438 const size_t M( (~rhs).
rows() );
439 const size_t N( (~rhs).
columns() );
441 if( ( row + M <= column ) || ( column + N <= row ) )
444 const bool lower( row > column );
445 const size_t size (
min( row + M, column + N ) - ( lower ? row : column ) );
450 const size_t subrow( lower ? 0UL : column - row );
451 const size_t subcol( lower ? row - column : 0UL );
475 template<
typename MT
483 return tryAssign( lhs, ~rhs, row, column );
505 template<
typename MT1
513 return tryAssign( lhs, ~rhs, row, column );
536 template<
typename MT
544 return tryAssign( lhs, ~rhs, row, column );
567 template<
typename MT1
575 return tryAssign( lhs, ~rhs, row, column );
598 template<
typename MT
606 return tryAssign( lhs, ~rhs, row, column );
628 template<
typename MT
636 return tryAssign( lhs, ~rhs, row, column );
652 template<
typename MT,
bool SO,
bool DF >
653 struct Rows< HermitianMatrix<MT,SO,DF> > :
public Rows<MT>
669 template<
typename MT,
bool SO,
bool DF >
686 template<
typename MT,
bool SO,
bool DF >
703 template<
typename MT,
bool SO,
bool DF >
705 :
public BoolConstant< IsBuiltin< ElementType_<MT> >::value >
721 template<
typename MT,
bool SO,
bool DF >
738 template<
typename MT,
bool SO,
bool DF >
755 template<
typename MT,
bool SO,
bool DF >
772 template<
typename MT,
bool SO >
789 template<
typename MT,
bool SO,
bool DF >
806 template<
typename MT,
bool SO,
bool DF >
823 template<
typename MT,
bool SO,
bool DF >
840 template<
typename MT,
bool SO,
bool DF >
859 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
860 struct AddTrait< HermitianMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
865 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
866 struct AddTrait< StaticMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
871 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
872 struct AddTrait< HermitianMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
877 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
878 struct AddTrait< HybridMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
883 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
884 struct AddTrait< HermitianMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
889 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
890 struct AddTrait< DynamicMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
895 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool AF,
bool PF,
bool SO2 >
896 struct AddTrait< HermitianMatrix<MT,SO1,DF>, CustomMatrix<T,AF,PF,SO2> >
901 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF >
902 struct AddTrait< CustomMatrix<T,AF,PF,SO1>, HermitianMatrix<MT,SO2,DF> >
907 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
908 struct AddTrait< HermitianMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
913 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
914 struct AddTrait< CompressedMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
919 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2,
bool NF >
920 struct AddTrait< HermitianMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2,NF> >
927 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
928 struct AddTrait< SymmetricMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
935 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
936 struct AddTrait< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
954 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
955 struct SubTrait< HermitianMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
960 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
961 struct SubTrait< StaticMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
966 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
967 struct SubTrait< HermitianMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
972 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
973 struct SubTrait< HybridMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
978 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
979 struct SubTrait< HermitianMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
984 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
985 struct SubTrait< DynamicMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
990 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool AF,
bool PF,
bool SO2 >
991 struct SubTrait< HermitianMatrix<MT,SO1,DF>, CustomMatrix<T,AF,PF,SO2> >
996 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF >
997 struct SubTrait< CustomMatrix<T,AF,PF,SO1>, HermitianMatrix<MT,SO2,DF> >
1002 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1003 struct SubTrait< HermitianMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
1008 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1009 struct SubTrait< CompressedMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1014 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1015 struct SubTrait< HermitianMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2> >
1022 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1023 struct SubTrait< SymmetricMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1030 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1031 struct SubTrait< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1049 template<
typename MT,
bool SO,
bool DF,
typename T >
1050 struct MultTrait< HermitianMatrix<MT,SO,DF>, T, EnableIf_< IsNumeric<T> > >
1055 template<
typename T,
typename MT,
bool SO,
bool DF >
1056 struct MultTrait< T, HermitianMatrix<MT,SO,DF>, EnableIf_< IsNumeric<T> > >
1061 template<
typename MT,
bool SO,
bool DF,
typename T,
size_t N >
1062 struct MultTrait< HermitianMatrix<MT,SO,DF>, StaticVector<T,N,false> >
1067 template<
typename T,
size_t N,
typename MT,
bool SO,
bool DF >
1068 struct MultTrait< StaticVector<T,N,true>, HermitianMatrix<MT,SO,DF> >
1073 template<
typename MT,
bool SO,
bool DF,
typename T,
size_t N >
1074 struct MultTrait< HermitianMatrix<MT,SO,DF>, HybridVector<T,N,false> >
1079 template<
typename T,
size_t N,
typename MT,
bool SO,
bool DF >
1080 struct MultTrait< HybridVector<T,N,true>, HermitianMatrix<MT,SO,DF> >
1085 template<
typename MT,
bool SO,
bool DF,
typename T >
1086 struct MultTrait< HermitianMatrix<MT,SO,DF>, DynamicVector<T,false> >
1091 template<
typename T,
typename MT,
bool SO,
bool DF >
1092 struct MultTrait< DynamicVector<T,true>, HermitianMatrix<MT,SO,DF> >
1097 template<
typename MT,
bool SO,
bool DF,
typename T,
bool AF,
bool PF >
1098 struct MultTrait< HermitianMatrix<MT,SO,DF>, CustomVector<T,AF,PF,false> >
1103 template<
typename T,
bool AF,
bool PF,
typename MT,
bool SO,
bool DF >
1104 struct MultTrait< CustomVector<T,AF,PF,true>, HermitianMatrix<MT,SO,DF> >
1109 template<
typename MT,
bool SO,
bool DF,
typename T >
1110 struct MultTrait< HermitianMatrix<MT,SO,DF>, CompressedVector<T,false> >
1115 template<
typename T,
typename MT,
bool SO,
bool DF >
1116 struct MultTrait< CompressedVector<T,true>, HermitianMatrix<MT,SO,DF> >
1121 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
1122 struct MultTrait< HermitianMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
1127 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
1128 struct MultTrait< StaticMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
1133 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
1134 struct MultTrait< HermitianMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
1139 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
1140 struct MultTrait< HybridMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
1145 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1146 struct MultTrait< HermitianMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
1151 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1152 struct MultTrait< DynamicMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1157 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool AF,
bool PF,
bool SO2 >
1158 struct MultTrait< HermitianMatrix<MT,SO1,DF>, CustomMatrix<T,AF,PF,SO2> >
1163 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF >
1164 struct MultTrait< CustomMatrix<T,AF,PF,SO1>, HermitianMatrix<MT,SO2,DF> >
1169 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1170 struct MultTrait< HermitianMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
1175 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1176 struct MultTrait< CompressedMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1181 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1182 struct MultTrait< HermitianMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2> >
1187 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1188 struct MultTrait< SymmetricMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1193 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1194 struct MultTrait< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1212 template<
typename MT,
bool SO,
bool DF,
typename T >
1213 struct DivTrait< HermitianMatrix<MT,SO,DF>, T, EnableIf_< IsNumeric<T> > >
1231 template<
typename MT,
bool SO,
bool DF >
1237 template<
typename MT,
bool SO,
bool DF >
1238 struct ForEachTrait< HermitianMatrix<MT,SO,DF>, Floor >
1243 template<
typename MT,
bool SO,
bool DF >
1249 template<
typename MT,
bool SO,
bool DF >
1255 template<
typename MT,
bool SO,
bool DF >
1261 template<
typename MT,
bool SO,
bool DF >
1269 template<
typename MT,
bool SO,
bool DF >
1275 template<
typename MT,
bool SO,
bool DF >
1276 struct ForEachTrait< HermitianMatrix<MT,SO,DF>, InvSqrt >
1281 template<
typename MT,
bool SO,
bool DF >
1287 template<
typename MT,
bool SO,
bool DF >
1288 struct ForEachTrait< HermitianMatrix<MT,SO,DF>, InvCbrt >
1293 template<
typename MT,
bool SO,
bool DF,
typename ET >
1294 struct ForEachTrait< HermitianMatrix<MT,SO,DF>, Pow<ET> >
1299 template<
typename MT,
bool SO,
bool DF >
1305 template<
typename MT,
bool SO,
bool DF >
1311 template<
typename MT,
bool SO,
bool DF >
1312 struct ForEachTrait< HermitianMatrix<MT,SO,DF>, Log10 >
1317 template<
typename MT,
bool SO,
bool DF >
1323 template<
typename MT,
bool SO,
bool DF >
1329 template<
typename MT,
bool SO,
bool DF >
1335 template<
typename MT,
bool SO,
bool DF >
1336 struct ForEachTrait< HermitianMatrix<MT,SO,DF>, Asinh >
1341 template<
typename MT,
bool SO,
bool DF >
1347 template<
typename MT,
bool SO,
bool DF >
1353 template<
typename MT,
bool SO,
bool DF >
1359 template<
typename MT,
bool SO,
bool DF >
1360 struct ForEachTrait< HermitianMatrix<MT,SO,DF>, Acosh >
1365 template<
typename MT,
bool SO,
bool DF >
1371 template<
typename MT,
bool SO,
bool DF >
1377 template<
typename MT,
bool SO,
bool DF >
1383 template<
typename MT,
bool SO,
bool DF >
1384 struct ForEachTrait< HermitianMatrix<MT,SO,DF>, Atanh >
1389 template<
typename MT,
bool SO,
bool DF >
1395 template<
typename MT,
bool SO,
bool DF >
1414 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1415 struct HighType< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1433 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1434 struct LowType< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1452 template<
typename MT,
bool SO,
bool DF >
1471 template<
typename MT,
bool SO,
bool DF >
1472 struct RowTrait< HermitianMatrix<MT,SO,DF> >
1490 template<
typename MT,
bool SO,
bool DF >
bool isReal(const DiagonalProxy< MT > &proxy)
Returns whether the matrix element represents a real number.
Definition: DiagonalProxy.h:595
Header file for auxiliary alias declarations.
Header file for mathematical functions.
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 Rows type trait.
Header file for the UNUSED_PARAMETER function template.
Header file for the subtraction trait.
Flag for the inversion of a diagonal matrix.
Definition: InversionFlag.h:115
Flag for the inversion of a general matrix (same as byLU).
Definition: InversionFlag.h:108
Header file for the row trait.
Base template for the SubmatrixTrait class.
Definition: SubmatrixTrait.h:118
Flag for the inversion of a upper unitriangular matrix.
Definition: InversionFlag.h:114
Base template for the ColumnTrait class.
Definition: ColumnTrait.h:117
Flag for the inversion of a lower unitriangular matrix.
Definition: InversionFlag.h:112
typename RowTrait< MT >::Type RowTrait_
Auxiliary alias declaration for the RowTrait type trait.The RowTrait_ alias declaration provides a co...
Definition: RowTrait.h:152
BLAZE_ALWAYS_INLINE size_t size(const Vector< VT, TF > &vector) noexcept
Returns the current size/dimension of the vector.
Definition: Vector.h:261
Generic wrapper for a compile time constant integral value.The IntegralConstant class template repres...
Definition: IntegralConstant.h:71
Header file for the dense matrix inversion flags.
Flag for the Bunch-Kaufman-based inversion for Hermitian matrices.
Definition: InversionFlag.h:105
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:533
const ElementType_< MT > min(const DenseMatrix< MT, SO > &dm)
Returns the smallest element of the dense matrix.
Definition: DenseMatrix.h:1755
Matrix adapter for symmetric matrices.
Definition: Forward.h:52
typename MultTrait< T1, T2 >::Type MultTrait_
Auxiliary alias declaration for the MultTrait class template.The MultTrait_ alias declaration provide...
Definition: MultTrait.h:245
Header file for the implementation of the base template of the SymmetricMatrix.
bool isIdentity(const DenseMatrix< MT, SO > &dm)
Checks if the give dense matrix is an identity matrix.
Definition: DenseMatrix.h:1679
Compile time check for data types with restricted data access.This type trait tests whether the given...
Definition: IsRestricted.h:82
Header file for the IsSquare type trait.
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:741
Base template for the RowTrait class.
Definition: RowTrait.h:117
typename ForEachTrait< T, OP >::Type ForEachTrait_
Auxiliary alias declaration for the ForEachTrait class template.The ForEachTrait_ alias declaration p...
Definition: ForEachTrait.h:146
Constraint on the data type.
Header file for the LowType type trait.
Base template for the HighType type trait.
Definition: HighType.h:133
Header file for the multiplication trait.
Header file for the IsSymmetric type trait.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Header file for the If class template.
Flag for the LU-based matrix inversion.
Definition: InversionFlag.h:103
Base template for the ForEachTrait class.The ForEachTrait class template offers the possibility to se...
Definition: ForEachTrait.h:79
Header file for all forward declarations of the math module.
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 Columns type trait.
Header file for the implementation of a fixed-size matrix.
typename T::ElementType ElementType_
Alias declaration for nested ElementType type definitions.The ElementType_ alias declaration provides...
Definition: Aliases.h:163
Flag for the inversion of a Hermitian matrix (same as byLDLH).
Definition: InversionFlag.h:110
Compile time check for square matrices.This type trait tests whether or not the given template parame...
Definition: IsSquare.h:88
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:336
Flag for the Bunch-Kaufman-based inversion for symmetric matrices.
Definition: InversionFlag.h:104
DisableIf_< Or< IsComputation< MT >, IsTransExpr< MT >, IsDeclExpr< MT > >, RowExprTrait_< MT > > row(Matrix< MT, SO > &matrix, size_t index)
Creating a view on a specific row of the given matrix.
Definition: Row.h:128
HermitianMatrix specialization for sparse matrices.
Compile time check for symmetric matrices.This type trait tests whether or not the given template par...
Definition: IsSymmetric.h:85
Header file for the exception macros of the math module.
Header file for the RemoveAdaptor type trait.
Header file for the implementation of the base template of the HeritianMatrix.
Constraint on the data type.
Compile time check for adaptors.This type trait tests whether the given template parameter is an adap...
Definition: IsAdaptor.h:88
DisableIf_< Or< IsComputation< MT >, IsTransExpr< MT >, IsDeclExpr< MT > >, ColumnExprTrait_< MT > > column(Matrix< MT, SO > &matrix, size_t index)
Creating a view on a specific column of the given matrix.
Definition: Column.h:128
Header file for the EnableIf class template.
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:553
Header file for the IsPadded type trait.
Header file for the IsAdaptor type trait.
Header file for the conjugate shim.
Header file for the IsNumeric type trait.
Base template for the LowType type trait.
Definition: LowType.h:133
Header file for the HasConstDataAccess type trait.
Compile time check for resizable data types.This type trait tests whether the given data type is a re...
Definition: IsResizable.h:75
Flag for the inversion of a symmetric matrix (same as byLDLT).
Definition: InversionFlag.h:109
Header file for run time assertion macros.
Base template for the AddTrait class.
Definition: AddTrait.h:143
Base template for the MultTrait class.
Definition: MultTrait.h:143
Header file for the addition trait.
Header file for the division trait.
Header file for the submatrix trait.
typename If< T1, T2, T3 >::Type If_
Auxiliary alias declaration for the If class template.The If_ alias declaration provides a convenient...
Definition: If.h:160
bool isHermitian(const DenseMatrix< MT, SO > &dm)
Checks if the given dense matrix is Hermitian.
Definition: DenseMatrix.h:775
Matrix adapter for Hermitian matrices.
Definition: Forward.h:49
Header file for the column 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:267
Compile time check for Hermitian matrices.This type trait tests whether or not the given template par...
Definition: IsHermitian.h:85
Compile time check for built-in data types.This type trait tests whether or not the given template pa...
Definition: IsBuiltin.h:75
Base class for matrices.The Matrix class is a base class for all dense and sparse matrix classes with...
Definition: Forward.h:94
#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
Flag for the Cholesky-based inversion for positive-definite matrices.
Definition: InversionFlag.h:106
#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:153
Base template for the DivTrait class.
Definition: DivTrait.h:143
typename ColumnTrait< MT >::Type ColumnTrait_
Auxiliary alias declaration for the ColumnTrait type trait.The ColumnTrait_ alias declaration provide...
Definition: ColumnTrait.h:152
BLAZE_ALWAYS_INLINE size_t rows(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of rows of the matrix.
Definition: Matrix.h:320
Removal of top level adaptor types.In case the given type is an adaptor type (SymmetricMatrix, LowerMatrix, UpperMatrix, ...), the RemoveAdaptor type trait removes the adaptor and extracts the contained general matrix type. Else the given type is returned as is. Note that cv-qualifiers are preserved.
Definition: RemoveAdaptor.h:76
Base class for N-dimensional vectors.The Vector class is a base class for all arbitrarily sized (N-di...
Definition: Forward.h:164
Header file for the IsBuiltin type trait.
typename SubTrait< T1, T2 >::Type SubTrait_
Auxiliary alias declaration for the SubTrait class template.The SubTrait_ alias declaration provides ...
Definition: SubTrait.h:245
Header file for the for-each trait.
Header file for the isDivisor shim.
Header file for the IntegralConstant class template.
Compile time evaluation of the number of columns of a matrix.The Columns type trait evaluates the num...
Definition: Columns.h:76
bool isIntact(const DiagonalMatrix< MT, SO, DF > &m)
Returns whether the invariants of the given diagonal matrix are intact.
Definition: DiagonalMatrix.h:249
Compile time evaluation of the number of rows of a matrix.The Rows type trait evaluates the number of...
Definition: Rows.h:76
bool isDefault(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is in default state.
Definition: DiagonalProxy.h:573
Base template for the SubTrait class.
Definition: SubTrait.h:143
void UNUSED_PARAMETER(const Args &...)
Suppression of unused parameter warnings.
Definition: Unused.h:81
SubmatrixExprTrait_< MT, unaligned > 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:168
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 isReal shim.
HermitianMatrix specialization for dense matrices.
typename AddTrait< T1, T2 >::Type AddTrait_
Auxiliary alias declaration for the AddTrait class template.The AddTrait_ alias declaration provides ...
Definition: AddTrait.h:245
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 HighType type trait.
Header file for the TrueType type/value trait base class.