35 #ifndef _BLAZE_MATH_ADAPTORS_HERMITIANMATRIX_H_ 36 #define _BLAZE_MATH_ADAPTORS_HERMITIANMATRIX_H_ 108 template<
typename MT,
bool SO,
bool DF >
109 inline void reset( HermitianMatrix<MT,SO,DF>& m );
111 template<
typename MT,
bool SO,
bool DF >
112 inline void reset( HermitianMatrix<MT,SO,DF>& m,
size_t i );
114 template<
typename MT,
bool SO,
bool DF >
115 inline void clear( HermitianMatrix<MT,SO,DF>& m );
117 template<
bool RF,
typename MT,
bool SO,
bool DF >
118 inline bool isDefault(
const HermitianMatrix<MT,SO,DF>& m );
120 template<
typename MT,
bool SO,
bool DF >
121 inline bool isIntact(
const HermitianMatrix<MT,SO,DF>& m );
123 template<
typename MT,
bool SO,
bool DF >
124 inline void swap( HermitianMatrix<MT,SO,DF>& a, HermitianMatrix<MT,SO,DF>& b ) noexcept;
136 template<
typename MT
159 template<
typename MT
176 template<
typename MT
217 return isDefault<RF>( m.matrix_ );
243 template<
typename MT
261 template<
typename MT
315 m.matrix_ = std::move( tmp );
339 template<
typename MT
358 (~rhs).
size() <= column - row ||
359 isReal( (~rhs)[column-row] ) );
383 template<
typename MT
402 (~rhs).
size() <= row - column ||
403 isReal( (~rhs)[row-column] ) );
427 template<
typename MT1
444 const size_t M( (~rhs).
rows() );
445 const size_t N( (~rhs).
columns() );
447 if( ( row + M <= column ) || ( column + N <= row ) )
450 const bool lower( row > column );
451 const size_t size (
min( row + M, column + N ) - ( lower ? row : column ) );
456 const size_t subrow( lower ? 0UL : column - row );
457 const size_t subcol( lower ? row - column : 0UL );
481 template<
typename MT
489 return tryAssign( lhs, ~rhs, row, column );
511 template<
typename MT1
519 return tryAssign( lhs, ~rhs, row, column );
542 template<
typename MT
550 return tryAssign( lhs, ~rhs, row, column );
573 template<
typename MT1
581 return tryAssign( lhs, ~rhs, row, column );
604 template<
typename MT
612 return tryAssign( lhs, ~rhs, row, column );
635 template<
typename MT1
643 return tryAssign( lhs, ~rhs, row, column );
665 template<
typename MT
673 return tryAssign( lhs, ~rhs, row, column );
689 template<
typename MT,
bool SO,
bool DF >
690 struct Rows< HermitianMatrix<MT,SO,DF> >
707 template<
typename MT,
bool SO,
bool DF >
708 struct Columns< HermitianMatrix<MT,SO,DF> >
725 template<
typename MT,
bool SO,
bool DF >
726 struct IsSquare< HermitianMatrix<MT,SO,DF> >
743 template<
typename MT,
bool SO,
bool DF >
745 :
public BoolConstant< IsBuiltin< ElementType_<MT> >::value >
761 template<
typename MT,
bool SO,
bool DF >
779 template<
typename MT,
bool SO,
bool DF >
780 struct IsAdaptor< HermitianMatrix<MT,SO,DF> >
797 template<
typename MT,
bool SO,
bool DF >
815 template<
typename MT,
bool SO >
833 template<
typename MT,
bool SO,
bool DF >
834 struct IsAligned< HermitianMatrix<MT,SO,DF> >
851 template<
typename MT,
bool SO,
bool DF >
852 struct IsPadded< HermitianMatrix<MT,SO,DF> >
869 template<
typename MT,
bool SO,
bool DF >
887 template<
typename MT,
bool SO,
bool DF >
905 template<
typename MT,
bool SO,
bool DF >
924 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
925 struct AddTrait< HermitianMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
930 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
931 struct AddTrait< StaticMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
936 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
937 struct AddTrait< HermitianMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
942 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
943 struct AddTrait< HybridMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
948 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
949 struct AddTrait< HermitianMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
954 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
955 struct AddTrait< DynamicMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
960 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool AF,
bool PF,
bool SO2 >
961 struct AddTrait< HermitianMatrix<MT,SO1,DF>, CustomMatrix<T,AF,PF,SO2> >
966 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF >
967 struct AddTrait< CustomMatrix<T,AF,PF,SO1>, HermitianMatrix<MT,SO2,DF> >
972 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
973 struct AddTrait< HermitianMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
978 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
979 struct AddTrait< CompressedMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
984 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
985 struct AddTrait< HermitianMatrix<MT,SO1,DF>, IdentityMatrix<T,SO2> >
990 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
991 struct AddTrait< IdentityMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
996 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2,
bool NF >
997 struct AddTrait< HermitianMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2,NF> >
1004 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1005 struct AddTrait< SymmetricMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1012 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1013 struct AddTrait< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1031 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
1032 struct SubTrait< HermitianMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
1037 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
1038 struct SubTrait< StaticMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
1043 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
1044 struct SubTrait< HermitianMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
1049 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
1050 struct SubTrait< HybridMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
1055 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1056 struct SubTrait< HermitianMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
1061 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1062 struct SubTrait< DynamicMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1067 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool AF,
bool PF,
bool SO2 >
1068 struct SubTrait< HermitianMatrix<MT,SO1,DF>, CustomMatrix<T,AF,PF,SO2> >
1073 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF >
1074 struct SubTrait< CustomMatrix<T,AF,PF,SO1>, HermitianMatrix<MT,SO2,DF> >
1079 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1080 struct SubTrait< HermitianMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
1085 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1086 struct SubTrait< CompressedMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1091 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1092 struct SubTrait< HermitianMatrix<MT,SO1,DF>, IdentityMatrix<T,SO2> >
1097 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1098 struct SubTrait< IdentityMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1103 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1104 struct SubTrait< HermitianMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2> >
1111 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1112 struct SubTrait< SymmetricMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1119 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1120 struct SubTrait< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1138 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
1139 struct SchurTrait< HermitianMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
1144 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
1145 struct SchurTrait< StaticMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
1150 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
1151 struct SchurTrait< HermitianMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
1156 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
1157 struct SchurTrait< HybridMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
1162 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1163 struct SchurTrait< HermitianMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
1168 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1169 struct SchurTrait< DynamicMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1174 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool AF,
bool PF,
bool SO2 >
1175 struct SchurTrait< HermitianMatrix<MT,SO1,DF>, CustomMatrix<T,AF,PF,SO2> >
1180 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF >
1181 struct SchurTrait< CustomMatrix<T,AF,PF,SO1>, HermitianMatrix<MT,SO2,DF> >
1186 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1187 struct SchurTrait< HermitianMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
1192 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1193 struct SchurTrait< CompressedMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1198 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1199 struct SchurTrait< HermitianMatrix<MT,SO1,DF>, IdentityMatrix<T,SO2> >
1204 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1205 struct SchurTrait< IdentityMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1210 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2,
bool NF >
1211 struct SchurTrait< HermitianMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2,NF> >
1218 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1219 struct SchurTrait< SymmetricMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1226 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1227 struct SchurTrait< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1245 template<
typename MT,
bool SO,
bool DF,
typename T >
1246 struct MultTrait< HermitianMatrix<MT,SO,DF>, T, EnableIf_< IsNumeric<T> > >
1251 template<
typename T,
typename MT,
bool SO,
bool DF >
1252 struct MultTrait< T, HermitianMatrix<MT,SO,DF>, EnableIf_< IsNumeric<T> > >
1257 template<
typename MT,
bool SO,
bool DF,
typename T,
size_t N >
1258 struct MultTrait< HermitianMatrix<MT,SO,DF>, StaticVector<T,N,false> >
1263 template<
typename T,
size_t N,
typename MT,
bool SO,
bool DF >
1264 struct MultTrait< StaticVector<T,N,true>, HermitianMatrix<MT,SO,DF> >
1269 template<
typename MT,
bool SO,
bool DF,
typename T,
size_t N >
1270 struct MultTrait< HermitianMatrix<MT,SO,DF>, HybridVector<T,N,false> >
1275 template<
typename T,
size_t N,
typename MT,
bool SO,
bool DF >
1276 struct MultTrait< HybridVector<T,N,true>, HermitianMatrix<MT,SO,DF> >
1281 template<
typename MT,
bool SO,
bool DF,
typename T >
1282 struct MultTrait< HermitianMatrix<MT,SO,DF>, DynamicVector<T,false> >
1287 template<
typename T,
typename MT,
bool SO,
bool DF >
1288 struct MultTrait< DynamicVector<T,true>, HermitianMatrix<MT,SO,DF> >
1293 template<
typename MT,
bool SO,
bool DF,
typename T,
bool AF,
bool PF >
1294 struct MultTrait< HermitianMatrix<MT,SO,DF>, CustomVector<T,AF,PF,false> >
1299 template<
typename T,
bool AF,
bool PF,
typename MT,
bool SO,
bool DF >
1300 struct MultTrait< CustomVector<T,AF,PF,true>, HermitianMatrix<MT,SO,DF> >
1305 template<
typename MT,
bool SO,
bool DF,
typename T >
1306 struct MultTrait< HermitianMatrix<MT,SO,DF>, CompressedVector<T,false> >
1311 template<
typename T,
typename MT,
bool SO,
bool DF >
1312 struct MultTrait< CompressedVector<T,true>, HermitianMatrix<MT,SO,DF> >
1317 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
1318 struct MultTrait< HermitianMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
1323 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
1324 struct MultTrait< StaticMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
1329 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
1330 struct MultTrait< HermitianMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
1335 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
1336 struct MultTrait< HybridMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
1341 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1342 struct MultTrait< HermitianMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
1347 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1348 struct MultTrait< DynamicMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1353 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool AF,
bool PF,
bool SO2 >
1354 struct MultTrait< HermitianMatrix<MT,SO1,DF>, CustomMatrix<T,AF,PF,SO2> >
1359 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF >
1360 struct MultTrait< CustomMatrix<T,AF,PF,SO1>, HermitianMatrix<MT,SO2,DF> >
1365 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1366 struct MultTrait< HermitianMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
1371 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1372 struct MultTrait< CompressedMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1377 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1378 struct MultTrait< HermitianMatrix<MT,SO1,DF>, IdentityMatrix<T,SO2> >
1383 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1384 struct MultTrait< IdentityMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1389 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1390 struct MultTrait< HermitianMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2> >
1395 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1396 struct MultTrait< SymmetricMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1401 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1402 struct MultTrait< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1420 template<
typename MT,
bool SO,
bool DF,
typename T >
1421 struct DivTrait< HermitianMatrix<MT,SO,DF>, T, EnableIf_< IsNumeric<T> > >
1439 template<
typename MT,
bool SO,
bool DF >
1445 template<
typename MT,
bool SO,
bool DF >
1451 template<
typename MT,
bool SO,
bool DF >
1457 template<
typename MT,
bool SO,
bool DF >
1463 template<
typename MT,
bool SO,
bool DF >
1469 template<
typename MT,
bool SO,
bool DF >
1475 template<
typename MT,
bool SO,
bool DF >
1481 template<
typename MT,
bool SO,
bool DF >
1489 template<
typename MT,
bool SO,
bool DF >
1495 template<
typename MT,
bool SO,
bool DF >
1501 template<
typename MT,
bool SO,
bool DF >
1507 template<
typename MT,
bool SO,
bool DF >
1513 template<
typename MT,
bool SO,
bool DF,
typename ET >
1519 template<
typename MT,
bool SO,
bool DF >
1525 template<
typename MT,
bool SO,
bool DF >
1531 template<
typename MT,
bool SO,
bool DF >
1537 template<
typename MT,
bool SO,
bool DF >
1543 template<
typename MT,
bool SO,
bool DF >
1549 template<
typename MT,
bool SO,
bool DF >
1555 template<
typename MT,
bool SO,
bool DF >
1561 template<
typename MT,
bool SO,
bool DF >
1567 template<
typename MT,
bool SO,
bool DF >
1573 template<
typename MT,
bool SO,
bool DF >
1579 template<
typename MT,
bool SO,
bool DF >
1585 template<
typename MT,
bool SO,
bool DF >
1591 template<
typename MT,
bool SO,
bool DF >
1597 template<
typename MT,
bool SO,
bool DF >
1603 template<
typename MT,
bool SO,
bool DF >
1609 template<
typename MT,
bool SO,
bool DF >
1615 template<
typename MT,
bool SO,
bool DF >
1634 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2,
bool NF >
1635 struct BinaryMapTrait< HermitianMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2,NF>, Min >
1640 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2,
bool NF >
1641 struct BinaryMapTrait< HermitianMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2,NF>, Max >
1646 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1647 struct BinaryMapTrait< SymmetricMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2>, Min >
1652 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1653 struct BinaryMapTrait< SymmetricMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2>, Max >
1658 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1659 struct BinaryMapTrait< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2>, Min >
1664 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1665 struct BinaryMapTrait< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2>, Max >
1683 template<
typename MT,
bool SO,
bool DF >
1702 template<
typename MT,
bool SO,
bool DF >
1721 template<
typename MT,
bool SO,
bool DF >
1740 template<
typename MT,
bool SO,
bool DF >
1759 template<
typename MT,
bool SO,
bool DF >
1778 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1779 struct HighType< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1797 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1798 struct LowType< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1816 template<
typename MT,
bool SO,
bool DF >
1835 template<
typename MT,
bool SO,
bool DF >
1836 struct RowTrait< HermitianMatrix<MT,SO,DF> >
1854 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:622
Header file for auxiliary alias declarations.
Headerfile for the generic min algorithm.
Header file for the decldiag trait.
Header file for the Schur product trait.
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.
Header file for the declherm trait.
Base template for the SubmatrixTrait class.
Definition: SubmatrixTrait.h:128
Flag for the inversion of a upper unitriangular matrix.
Definition: InversionFlag.h:114
Base template for the ColumnTrait class.
Definition: ColumnTrait.h:127
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: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
Base template for the DeclUppTrait class.
Definition: DeclUppTrait.h:133
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.
Base template for the SchurTrait class.
Definition: SchurTrait.h:124
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:560
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
const ElementType_< MT > min(const DenseMatrix< MT, SO > &dm)
Returns the smallest element of the dense matrix.
Definition: DenseMatrix.h:1762
Matrix adapter for symmetric matrices.
Definition: BaseTemplate.h:611
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
bool isIdentity(const DenseMatrix< MT, SO > &dm)
Checks if the give dense matrix is an identity matrix.
Definition: DenseMatrix.h:1686
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.
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
Base template for the RowTrait class.
Definition: RowTrait.h:127
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 unary map 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
Header file for the IsShrinkable type trait.
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 decllow trait.
Header file for the Columns type trait.
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
typename SchurTrait< T1, T2 >::Type SchurTrait_
Auxiliary alias declaration for the SchurTrait class template.The SchurTrait_ alias declaration provi...
Definition: SchurTrait.h:167
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
Flag for the Bunch-Kaufman-based inversion for symmetric matrices.
Definition: InversionFlag.h:104
HermitianMatrix specialization for sparse matrices.
Base template for the DeclSymTrait class.
Definition: DeclSymTrait.h:134
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
Header file for the EnableIf class template.
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:580
Header file for the IsPadded type trait.
Header file for the IsAdaptor type trait.
Compile time check for shrinkable data types.This type trait tests whether the given data type is a s...
Definition: IsShrinkable.h:75
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
Header file for the declupp trait.
Flag for the inversion of a symmetric matrix (same as byLDLT).
Definition: InversionFlag.h:109
Header file for the binary map trait.
Header file for run time assertion macros.
Base template for the AddTrait class.
Definition: AddTrait.h:139
Base template for the DeclHermTrait class.
Definition: DeclHermTrait.h:134
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.
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:154
Header file for the declsym trait.
bool isHermitian(const DenseMatrix< MT, SO > &dm)
Checks if the given dense matrix is Hermitian.
Definition: DenseMatrix.h:778
Matrix adapter for Hermitian matrices.
Definition: BaseTemplate.h:614
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:270
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:101
#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:163
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
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
Base template for the DeclLowTrait class.
Definition: DeclLowTrait.h:133
typename UnaryMapTrait< T, OP >::Type UnaryMapTrait_
Auxiliary alias declaration for the UnaryMapTrait class template.The UnaryMapTrait_ alias declaration...
Definition: UnaryMapTrait.h:156
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:177
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:250
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:75
bool isIntact(const DiagonalMatrix< MT, SO, DF > &m)
Returns whether the invariants of the given diagonal matrix are intact.
Definition: DiagonalMatrix.h:252
Compile time evaluation of the number of rows of a matrix.The Rows type trait evaluates the number of...
Definition: Rows.h:75
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
Matrix adapter for diagonal matrices.
Definition: BaseTemplate.h:560
void UNUSED_PARAMETER(const Args &...)
Suppression of unused parameter warnings.
Definition: Unused.h:81
Header file for the IsHermitian type trait.
Base template for the DeclDiagTrait class.
Definition: DeclDiagTrait.h:133
Base template for the BinaryMapTrait class.
Definition: BinaryMapTrait.h:119
Header file for the IsResizable type trait.
Header file for the IsRestricted type trait.
Base template for the UnaryMapTrait class.
Definition: UnaryMapTrait.h:117
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: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 HighType type trait.
Header file for the TrueType type/value trait base class.