35 #ifndef _BLAZE_MATH_ADAPTORS_SYMMETRICMATRIX_H_ 36 #define _BLAZE_MATH_ADAPTORS_SYMMETRICMATRIX_H_ 109 template<
typename MT,
bool SO,
bool DF,
bool NF >
110 inline void reset( SymmetricMatrix<MT,SO,DF,NF>& m );
112 template<
typename MT,
bool SO,
bool DF,
bool NF >
113 inline void reset( SymmetricMatrix<MT,SO,DF,NF>& m,
size_t i );
115 template<
typename MT,
bool SO,
bool DF,
bool NF >
116 inline void clear( SymmetricMatrix<MT,SO,DF,NF>& m );
118 template<
bool RF,
typename MT,
bool SO,
bool DF,
bool NF >
119 inline bool isDefault(
const SymmetricMatrix<MT,SO,DF,NF>& m );
121 template<
typename MT,
bool SO,
bool DF,
bool NF >
122 inline bool isIntact(
const SymmetricMatrix<MT,SO,DF,NF>& m );
124 template<
typename MT,
bool SO,
bool DF,
bool NF >
125 inline void swap( SymmetricMatrix<MT,SO,DF,NF>& a, SymmetricMatrix<MT,SO,DF,NF>& b ) noexcept;
137 template<
typename MT
161 template<
typename MT
179 template<
typename MT
222 return isDefault<RF>( m.matrix_ );
248 template<
typename MT
267 template<
typename MT
322 m.matrix_ = std::move( tmp );
346 template<
typename MT1
364 const size_t M( (~rhs).
rows() );
365 const size_t N( (~rhs).
columns() );
367 if( ( row + M <= column ) || ( column + N <= row ) )
370 const bool lower( row > column );
371 const size_t size (
min( row + M, column + N ) - ( lower ? row : column ) );
376 const size_t subrow( lower ? 0UL : column - row );
377 const size_t subcol( lower ? row - column : 0UL );
401 template<
typename MT1
410 return tryAssign( lhs, ~rhs, row, column );
433 template<
typename MT1
442 return tryAssign( lhs, ~rhs, row, column );
465 template<
typename MT1
474 return tryAssign( lhs, ~rhs, row, column );
490 template<
typename MT,
bool SO,
bool DF,
bool NF >
491 struct Size< SymmetricMatrix<MT,SO,DF,NF>, 0UL >
492 :
public Size<MT,0UL>
495 template<
typename MT,
bool SO,
bool DF,
bool NF >
496 struct Size< SymmetricMatrix<MT,SO,DF,NF>, 1UL >
497 :
public Size<MT,1UL>
513 template<
typename MT,
bool SO,
bool DF,
bool NF >
514 struct IsSquare< SymmetricMatrix<MT,SO,DF,NF> >
531 template<
typename MT,
bool SO,
bool DF,
bool NF >
549 template<
typename MT,
bool SO,
bool DF,
bool NF >
567 template<
typename MT,
bool SO,
bool DF,
bool NF >
568 struct IsAdaptor< SymmetricMatrix<MT,SO,DF,NF> >
585 template<
typename MT,
bool SO,
bool DF,
bool NF >
603 template<
typename MT,
bool SO,
bool NF >
621 template<
typename MT,
bool SO,
bool DF,
bool NF >
622 struct IsAligned< SymmetricMatrix<MT,SO,DF,NF> >
639 template<
typename MT,
bool SO,
bool DF,
bool NF >
657 template<
typename MT,
bool SO,
bool DF,
bool NF >
658 struct IsPadded< SymmetricMatrix<MT,SO,DF,NF> >
675 template<
typename MT,
bool SO,
bool DF,
bool NF >
693 template<
typename MT,
bool SO,
bool DF,
bool NF >
711 template<
typename MT,
bool SO,
bool DF,
bool NF >
730 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
size_t M,
size_t N,
bool SO2 >
731 struct AddTrait< SymmetricMatrix<MT,SO1,DF,NF>, StaticMatrix<T,M,N,SO2> >
736 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
737 struct AddTrait< StaticMatrix<T,M,N,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
742 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
size_t M,
size_t N,
bool SO2 >
743 struct AddTrait< SymmetricMatrix<MT,SO1,DF,NF>, HybridMatrix<T,M,N,SO2> >
748 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
749 struct AddTrait< HybridMatrix<T,M,N,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
754 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
755 struct AddTrait< SymmetricMatrix<MT,SO1,DF,NF>, DynamicMatrix<T,SO2> >
760 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
761 struct AddTrait< DynamicMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
766 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool AF,
bool PF,
bool SO2 >
767 struct AddTrait< SymmetricMatrix<MT,SO1,DF,NF>, CustomMatrix<T,AF,PF,SO2> >
772 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
773 struct AddTrait< CustomMatrix<T,AF,PF,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
778 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
779 struct AddTrait< SymmetricMatrix<MT,SO1,DF,NF>, CompressedMatrix<T,SO2> >
784 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
785 struct AddTrait< CompressedMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
790 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
791 struct AddTrait< SymmetricMatrix<MT,SO1,DF,NF>, IdentityMatrix<T,SO2> >
796 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
797 struct AddTrait< IdentityMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
802 template<
typename MT1,
bool SO1,
bool DF1,
bool NF1,
typename MT2,
bool SO2,
bool DF2,
bool NF2 >
803 struct AddTrait< SymmetricMatrix<MT1,SO1,DF1,NF1>, SymmetricMatrix<MT2,SO2,DF2,NF2> >
821 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
size_t M,
size_t N,
bool SO2 >
822 struct SubTrait< SymmetricMatrix<MT,SO1,DF,NF>, StaticMatrix<T,M,N,SO2> >
827 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
828 struct SubTrait< StaticMatrix<T,M,N,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
833 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
size_t M,
size_t N,
bool SO2 >
834 struct SubTrait< SymmetricMatrix<MT,SO1,DF,NF>, HybridMatrix<T,M,N,SO2> >
839 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
840 struct SubTrait< HybridMatrix<T,M,N,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
845 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
846 struct SubTrait< SymmetricMatrix<MT,SO1,DF,NF>, DynamicMatrix<T,SO2> >
851 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
852 struct SubTrait< DynamicMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
857 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool AF,
bool PF,
bool SO2 >
858 struct SubTrait< SymmetricMatrix<MT,SO1,DF,NF>, CustomMatrix<T,AF,PF,SO2> >
863 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
864 struct SubTrait< CustomMatrix<T,AF,PF,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
869 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
870 struct SubTrait< SymmetricMatrix<MT,SO1,DF,NF>, CompressedMatrix<T,SO2> >
875 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
876 struct SubTrait< CompressedMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
881 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
882 struct SubTrait< SymmetricMatrix<MT,SO1,DF,NF>, IdentityMatrix<T,SO2> >
887 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
888 struct SubTrait< IdentityMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
893 template<
typename MT1,
bool SO1,
bool DF1,
bool NF1,
typename MT2,
bool SO2,
bool DF2,
bool NF2 >
894 struct SubTrait< SymmetricMatrix<MT1,SO1,DF1,NF1>, SymmetricMatrix<MT2,SO2,DF2,NF2> >
912 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
size_t M,
size_t N,
bool SO2 >
913 struct SchurTrait< SymmetricMatrix<MT,SO1,DF,NF>, StaticMatrix<T,M,N,SO2> >
918 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
919 struct SchurTrait< StaticMatrix<T,M,N,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
924 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
size_t M,
size_t N,
bool SO2 >
925 struct SchurTrait< SymmetricMatrix<MT,SO1,DF,NF>, HybridMatrix<T,M,N,SO2> >
930 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
931 struct SchurTrait< HybridMatrix<T,M,N,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
936 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
937 struct SchurTrait< SymmetricMatrix<MT,SO1,DF,NF>, DynamicMatrix<T,SO2> >
942 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
943 struct SchurTrait< DynamicMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
948 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool AF,
bool PF,
bool SO2 >
949 struct SchurTrait< SymmetricMatrix<MT,SO1,DF,NF>, CustomMatrix<T,AF,PF,SO2> >
954 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
955 struct SchurTrait< CustomMatrix<T,AF,PF,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
960 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
961 struct SchurTrait< SymmetricMatrix<MT,SO1,DF,NF>, CompressedMatrix<T,SO2> >
966 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
967 struct SchurTrait< CompressedMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
972 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
973 struct SchurTrait< SymmetricMatrix<MT,SO1,DF,NF>, IdentityMatrix<T,SO2> >
978 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
979 struct SchurTrait< IdentityMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
984 template<
typename MT1,
bool SO1,
bool DF1,
bool NF1,
typename MT2,
bool SO2,
bool DF2,
bool NF2 >
985 struct SchurTrait< SymmetricMatrix<MT1,SO1,DF1,NF1>, SymmetricMatrix<MT2,SO2,DF2,NF2> >
1003 template<
typename MT,
bool SO,
bool DF,
bool NF,
typename T >
1004 struct MultTrait< SymmetricMatrix<MT,SO,DF,NF>, T, EnableIf_< IsNumeric<T> > >
1009 template<
typename T,
typename MT,
bool SO,
bool DF,
bool NF >
1010 struct MultTrait< T, SymmetricMatrix<MT,SO,DF,NF>, EnableIf_< IsNumeric<T> > >
1015 template<
typename MT,
bool SO,
bool DF,
bool NF,
typename T,
size_t N >
1016 struct MultTrait< SymmetricMatrix<MT,SO,DF,NF>, StaticVector<T,N,false> >
1021 template<
typename T,
size_t N,
typename MT,
bool SO,
bool DF,
bool NF >
1022 struct MultTrait< StaticVector<T,N,true>, SymmetricMatrix<MT,SO,DF,NF> >
1027 template<
typename MT,
bool SO,
bool DF,
bool NF,
typename T,
size_t N >
1028 struct MultTrait< SymmetricMatrix<MT,SO,DF,NF>, HybridVector<T,N,false> >
1033 template<
typename T,
size_t N,
typename MT,
bool SO,
bool DF,
bool NF >
1034 struct MultTrait< HybridVector<T,N,true>, SymmetricMatrix<MT,SO,DF,NF> >
1039 template<
typename MT,
bool SO,
bool DF,
bool NF,
typename T >
1040 struct MultTrait< SymmetricMatrix<MT,SO,DF,NF>, DynamicVector<T,false> >
1045 template<
typename T,
typename MT,
bool SO,
bool DF,
bool NF >
1046 struct MultTrait< DynamicVector<T,true>, SymmetricMatrix<MT,SO,DF,NF> >
1051 template<
typename MT,
bool SO,
bool DF,
bool NF,
typename T,
bool AF,
bool PF >
1052 struct MultTrait< SymmetricMatrix<MT,SO,DF,NF>, CustomVector<T,AF,PF,false> >
1057 template<
typename T,
bool AF,
bool PF,
typename MT,
bool SO,
bool DF,
bool NF >
1058 struct MultTrait< CustomVector<T,AF,PF,true>, SymmetricMatrix<MT,SO,DF,NF> >
1063 template<
typename MT,
bool SO,
bool DF,
bool NF,
typename T >
1064 struct MultTrait< SymmetricMatrix<MT,SO,DF,NF>, CompressedVector<T,false> >
1069 template<
typename T,
typename MT,
bool SO,
bool DF,
bool NF >
1070 struct MultTrait< CompressedVector<T,true>, SymmetricMatrix<MT,SO,DF,NF> >
1075 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
size_t M,
size_t N,
bool SO2 >
1076 struct MultTrait< SymmetricMatrix<MT,SO1,DF,NF>, StaticMatrix<T,M,N,SO2> >
1081 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
1082 struct MultTrait< StaticMatrix<T,M,N,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
1087 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
size_t M,
size_t N,
bool SO2 >
1088 struct MultTrait< SymmetricMatrix<MT,SO1,DF,NF>, HybridMatrix<T,M,N,SO2> >
1093 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
1094 struct MultTrait< HybridMatrix<T,M,N,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
1099 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
1100 struct MultTrait< SymmetricMatrix<MT,SO1,DF,NF>, DynamicMatrix<T,SO2> >
1105 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
1106 struct MultTrait< DynamicMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
1111 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool AF,
bool PF,
bool SO2 >
1112 struct MultTrait< SymmetricMatrix<MT,SO1,DF,NF>, CustomMatrix<T,AF,PF,SO2> >
1117 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
1118 struct MultTrait< CustomMatrix<T,AF,PF,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
1123 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
1124 struct MultTrait< SymmetricMatrix<MT,SO1,DF,NF>, CompressedMatrix<T,SO2> >
1129 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
1130 struct MultTrait< CompressedMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
1135 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
1136 struct MultTrait< SymmetricMatrix<MT,SO1,DF,NF>, IdentityMatrix<T,SO2> >
1141 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
1142 struct MultTrait< IdentityMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
1147 template<
typename MT1,
bool SO1,
bool DF1,
bool NF1,
typename MT2,
bool SO2,
bool DF2,
bool NF2 >
1148 struct MultTrait< SymmetricMatrix<MT1,SO1,DF1,NF1>, SymmetricMatrix<MT2,SO2,DF2,NF2> >
1166 template<
typename MT,
bool SO,
bool DF,
bool NF,
typename T >
1167 struct DivTrait< SymmetricMatrix<MT,SO,DF,NF>, T, EnableIf_< IsNumeric<T> > >
1185 template<
typename MT,
bool SO,
bool DF,
bool NF >
1191 template<
typename MT,
bool SO,
bool DF,
bool NF >
1197 template<
typename MT,
bool SO,
bool DF,
bool NF >
1203 template<
typename MT,
bool SO,
bool DF,
bool NF >
1209 template<
typename MT,
bool SO,
bool DF,
bool NF >
1215 template<
typename MT,
bool SO,
bool DF,
bool NF >
1221 template<
typename MT,
bool SO,
bool DF,
bool NF >
1227 template<
typename MT,
bool SO,
bool DF,
bool NF >
1233 template<
typename MT,
bool SO,
bool DF,
bool NF >
1239 template<
typename MT,
bool SO,
bool DF,
bool NF >
1240 struct UnaryMapTrait< SymmetricMatrix<MT,SO,DF,NF>, InvSqrt >
1245 template<
typename MT,
bool SO,
bool DF,
bool NF >
1251 template<
typename MT,
bool SO,
bool DF,
bool NF >
1252 struct UnaryMapTrait< SymmetricMatrix<MT,SO,DF,NF>, InvCbrt >
1257 template<
typename MT,
bool SO,
bool DF,
bool NF,
typename ET >
1258 struct UnaryMapTrait< SymmetricMatrix<MT,SO,DF,NF>, UnaryPow<ET> >
1263 template<
typename MT,
bool SO,
bool DF,
bool NF >
1269 template<
typename MT,
bool SO,
bool DF,
bool NF >
1275 template<
typename MT,
bool SO,
bool DF,
bool NF >
1281 template<
typename MT,
bool SO,
bool DF,
bool NF >
1287 template<
typename MT,
bool SO,
bool DF,
bool NF >
1293 template<
typename MT,
bool SO,
bool DF,
bool NF >
1299 template<
typename MT,
bool SO,
bool DF,
bool NF >
1305 template<
typename MT,
bool SO,
bool DF,
bool NF >
1311 template<
typename MT,
bool SO,
bool DF,
bool NF >
1317 template<
typename MT,
bool SO,
bool DF,
bool NF >
1323 template<
typename MT,
bool SO,
bool DF,
bool NF >
1329 template<
typename MT,
bool SO,
bool DF,
bool NF >
1335 template<
typename MT,
bool SO,
bool DF,
bool NF >
1341 template<
typename MT,
bool SO,
bool DF,
bool NF >
1347 template<
typename MT,
bool SO,
bool DF,
bool NF >
1353 template<
typename MT,
bool SO,
bool DF,
bool NF >
1359 template<
typename MT,
bool SO,
bool DF,
bool NF >
1378 template<
typename MT1,
bool SO1,
bool DF1,
bool NF1,
typename MT2,
bool SO2,
bool DF2,
bool NF2 >
1379 struct BinaryMapTrait< SymmetricMatrix<MT1,SO1,DF1,NF1>, SymmetricMatrix<MT2,SO2,DF2,NF2>, Min >
1384 template<
typename MT1,
bool SO1,
bool DF1,
bool NF1,
typename MT2,
bool SO2,
bool DF2,
bool NF2 >
1385 struct BinaryMapTrait< SymmetricMatrix<MT1,SO1,DF1,NF1>, SymmetricMatrix<MT2,SO2,DF2,NF2>, Max >
1403 template<
typename MT,
bool SO,
bool DF,
bool NF >
1422 template<
typename MT,
bool SO,
bool DF,
bool NF >
1441 template<
typename MT,
bool SO,
bool DF,
bool NF >
1460 template<
typename MT,
bool SO,
bool DF,
bool NF >
1479 template<
typename MT,
bool SO,
bool DF,
bool NF >
1498 template<
typename MT1,
bool SO1,
bool DF1,
bool NF1,
typename MT2,
bool SO2,
bool DF2,
bool NF2 >
1499 struct HighType< SymmetricMatrix<MT1,SO1,DF1,NF1>, SymmetricMatrix<MT2,SO2,DF2,NF2> >
1517 template<
typename MT1,
bool SO1,
bool DF1,
bool NF1,
typename MT2,
bool SO2,
bool DF2,
bool NF2 >
1518 struct LowType< SymmetricMatrix<MT1,SO1,DF1,NF1>, SymmetricMatrix<MT2,SO2,DF2,NF2> >
1536 template<
typename MT,
bool SO,
bool DF,
bool NF,
size_t... CSAs >
1555 template<
typename MT,
bool SO,
bool DF,
bool NF,
size_t... CRAs >
1556 struct RowTrait< SymmetricMatrix<MT,SO,DF,NF>, CRAs... >
1574 template<
typename MT,
bool SO,
bool DF,
bool NF,
size_t... CRAs >
1575 struct RowsTrait< SymmetricMatrix<MT,SO,DF,NF>, CRAs... >
1593 template<
typename MT,
bool SO,
bool DF,
bool NF,
size_t... CCAs >
1594 struct ColumnTrait< SymmetricMatrix<MT,SO,DF,NF>, CCAs... >
1612 template<
typename MT,
bool SO,
bool DF,
bool NF,
size_t... CCAs >
1613 struct ColumnsTrait< SymmetricMatrix<MT,SO,DF,NF>, CCAs... >
1631 template<
typename MT,
bool SO,
bool DF,
bool NF,
ptrdiff_t... CBAs >
1632 struct BandTrait< SymmetricMatrix<MT,SO,DF,NF>, CBAs... >
Pointer difference type of the Blaze library.
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:131
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 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:109
Flag for the inversion of a upper unitriangular matrix.
Definition: InversionFlag.h:114
Base template for the ColumnTrait class.
Definition: ColumnTrait.h:108
Flag for the inversion of a lower unitriangular matrix.
Definition: InversionFlag.h:112
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:113
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:112
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:588
const ElementType_< MT > min(const DenseMatrix< MT, SO > &dm)
Returns the smallest element of the dense matrix.
Definition: DenseMatrix.h:1903
Matrix adapter for symmetric matrices.
Definition: BaseTemplate.h:608
typename MultTrait< T1, T2 >::Type MultTrait_
Auxiliary alias declaration for the MultTrait class template.The MultTrait_ alias declaration provide...
Definition: MultTrait.h:291
typename SubmatrixTrait< MT, CSAs... >::Type SubmatrixTrait_
Auxiliary alias declaration for the SubmatrixTrait type trait.The SubmatrixTrait_ alias declaration p...
Definition: SubmatrixTrait.h:145
typename RowTrait< MT, CRAs... >::Type RowTrait_
Auxiliary alias declaration for the RowTrait type trait.The RowTrait_ alias declaration provides a co...
Definition: RowTrait.h:145
Base template for the RowsTrait class.
Definition: RowsTrait.h:109
Header file for the band trait.
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:1827
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:772
Base template for the RowTrait class.
Definition: RowTrait.h:109
Compile time check for the memory layout of data types.This type trait tests whether the given data t...
Definition: IsContiguous.h:86
Constraint on the data type.
typename ColumnTrait< MT, CCAs... >::Type ColumnTrait_
Auxiliary alias declaration for the ColumnTrait type trait.The ColumnTrait_ alias declaration provide...
Definition: ColumnTrait.h:144
SymmetricMatrix specialization for dense matrices with non-numeric element 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.
typename ColumnsTrait< MT, CCAs... >::Type ColumnsTrait_
Auxiliary alias declaration for the ColumnsTrait type trait.The ColumnsTrait_ alias declaration provi...
Definition: ColumnsTrait.h:145
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
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
SymmetricMatrix specialization for sparse matrices with numeric element type.
Header file for the decllow 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:208
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:506
Flag for the Bunch-Kaufman-based inversion for symmetric matrices.
Definition: InversionFlag.h:104
Base template for the DeclSymTrait class.
Definition: DeclSymTrait.h:113
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.
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
decltype(auto) submatrix(Matrix< MT, SO > &, RSAs...)
Creating a view on a specific submatrix of the given matrix.
Definition: Submatrix.h:360
typename BandTrait< MT, CBAs... >::Type BandTrait_
Auxiliary alias declaration for the BandTrait type trait.The BandTrait_ alias declaration provides a ...
Definition: BandTrait.h:145
Header file for the EnableIf class template.
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:608
Header file for the IsPadded type trait.
Header file for the IsAdaptor type trait.
typename RowsTrait< MT, CRAs... >::Type RowsTrait_
Auxiliary alias declaration for the RowsTrait type trait.The RowsTrait_ alias declaration provides a ...
Definition: RowsTrait.h:145
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 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.
SymmetricMatrix specialization for sparse matrices with non-numeric element type. ...
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:119
Base template for the DeclHermTrait class.
Definition: DeclHermTrait.h:113
Base template for the MultTrait class.
Definition: MultTrait.h:119
Header file for the addition trait.
Header file for the division trait.
Header file for the submatrix trait.
Header file for the IsContiguous type trait.
Header file for the columns trait.
decltype(auto) row(Matrix< MT, SO > &, RRAs...)
Creating a view on a specific row of the given matrix.
Definition: Row.h:131
Header file for the declsym trait.
Matrix adapter for Hermitian matrices.
Definition: BaseTemplate.h:611
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:272
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
bool isSymmetric(const DenseMatrix< MT, SO > &dm)
Checks if the given dense matrix is symmetric.
Definition: DenseMatrix.h:841
#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
Base template for the DivTrait class.
Definition: DivTrait.h:120
SymmetricMatrix specialization for dense matrices with numeric element type.
Header file for the rows trait.
BLAZE_ALWAYS_INLINE size_t rows(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of rows of the matrix.
Definition: Matrix.h:490
Base template for the DeclLowTrait class.
Definition: DeclLowTrait.h:113
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 template for the ColumnsTrait class.
Definition: ColumnsTrait.h:109
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:291
Compile time evaluation of the size of vectors and matrices.The Size type trait evaluates the size of...
Definition: Size.h:80
Header file for the isDivisor shim.
bool isIntact(const DiagonalMatrix< MT, SO, DF > &m)
Returns whether the invariants of the given diagonal matrix are intact.
Definition: DiagonalMatrix.h:254
bool isDefault(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is in default state.
Definition: DiagonalProxy.h:628
Base template for the SubTrait class.
Definition: SubTrait.h:119
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:113
Base template for the BinaryMapTrait class.
Definition: BinaryMapTrait.h:97
Header file for the IsResizable type trait.
Header file for the IsRestricted type trait.
Base template for the UnaryMapTrait class.
Definition: UnaryMapTrait.h:95
Header file for the Size type trait.
typename AddTrait< T1, T2 >::Type AddTrait_
Auxiliary alias declaration for the AddTrait class template.The AddTrait_ alias declaration provides ...
Definition: AddTrait.h:291
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.
Base template for the BandTrait class.
Definition: BandTrait.h:109