35 #ifndef _BLAZE_MATH_ADAPTORS_SYMMETRICMATRIX_H_ 36 #define _BLAZE_MATH_ADAPTORS_SYMMETRICMATRIX_H_ 106 template<
typename MT,
bool SO,
bool DF,
bool NF >
107 inline void reset( SymmetricMatrix<MT,SO,DF,NF>& m );
109 template<
typename MT,
bool SO,
bool DF,
bool NF >
110 inline void reset( SymmetricMatrix<MT,SO,DF,NF>& m,
size_t i );
112 template<
typename MT,
bool SO,
bool DF,
bool NF >
113 inline void clear( SymmetricMatrix<MT,SO,DF,NF>& m );
115 template<
bool RF,
typename MT,
bool SO,
bool DF,
bool NF >
116 inline bool isDefault(
const SymmetricMatrix<MT,SO,DF,NF>& m );
118 template<
typename MT,
bool SO,
bool DF,
bool NF >
119 inline bool isIntact(
const SymmetricMatrix<MT,SO,DF,NF>& m );
121 template<
typename MT,
bool SO,
bool DF,
bool NF >
122 inline void swap( SymmetricMatrix<MT,SO,DF,NF>& a, SymmetricMatrix<MT,SO,DF,NF>& b ) noexcept;
134 template<
typename MT
158 template<
typename MT
176 template<
typename MT
219 return isDefault<RF>( m.matrix_ );
245 template<
typename MT
264 template<
typename MT
319 m.matrix_ = std::move( tmp );
343 template<
typename MT1
361 const size_t M( (~rhs).
rows() );
362 const size_t N( (~rhs).
columns() );
364 if( ( row + M <= column ) || ( column + N <= row ) )
367 const bool lower( row > column );
368 const size_t size (
min( row + M, column + N ) - ( lower ? row : column ) );
373 const size_t subrow( lower ? 0UL : column - row );
374 const size_t subcol( lower ? row - column : 0UL );
398 template<
typename MT1
407 return tryAssign( lhs, ~rhs, row, column );
430 template<
typename MT1
439 return tryAssign( lhs, ~rhs, row, column );
462 template<
typename MT1
471 return tryAssign( lhs, ~rhs, row, column );
487 template<
typename MT,
bool SO,
bool DF,
bool NF >
488 struct Rows< SymmetricMatrix<MT,SO,DF,NF> >
505 template<
typename MT,
bool SO,
bool DF,
bool NF >
506 struct Columns< SymmetricMatrix<MT,SO,DF,NF> >
523 template<
typename MT,
bool SO,
bool DF,
bool NF >
524 struct IsSquare< SymmetricMatrix<MT,SO,DF,NF> >
541 template<
typename MT,
bool SO,
bool DF,
bool NF >
559 template<
typename MT,
bool SO,
bool DF,
bool NF >
561 :
public BoolConstant< IsBuiltin< ElementType_<MT> >::value >
577 template<
typename MT,
bool SO,
bool DF,
bool NF >
578 struct IsAdaptor< SymmetricMatrix<MT,SO,DF,NF> >
595 template<
typename MT,
bool SO,
bool DF,
bool NF >
613 template<
typename MT,
bool SO,
bool NF >
631 template<
typename MT,
bool SO,
bool DF,
bool NF >
632 struct IsAligned< SymmetricMatrix<MT,SO,DF,NF> >
649 template<
typename MT,
bool SO,
bool DF,
bool NF >
650 struct IsPadded< SymmetricMatrix<MT,SO,DF,NF> >
667 template<
typename MT,
bool SO,
bool DF,
bool NF >
685 template<
typename MT,
bool SO,
bool DF,
bool NF >
703 template<
typename MT,
bool SO,
bool DF,
bool NF >
722 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
size_t M,
size_t N,
bool SO2 >
723 struct AddTrait< SymmetricMatrix<MT,SO1,DF,NF>, StaticMatrix<T,M,N,SO2> >
728 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
729 struct AddTrait< StaticMatrix<T,M,N,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
734 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
size_t M,
size_t N,
bool SO2 >
735 struct AddTrait< SymmetricMatrix<MT,SO1,DF,NF>, HybridMatrix<T,M,N,SO2> >
740 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
741 struct AddTrait< HybridMatrix<T,M,N,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
746 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
747 struct AddTrait< SymmetricMatrix<MT,SO1,DF,NF>, DynamicMatrix<T,SO2> >
752 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
753 struct AddTrait< DynamicMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
758 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool AF,
bool PF,
bool SO2 >
759 struct AddTrait< SymmetricMatrix<MT,SO1,DF,NF>, CustomMatrix<T,AF,PF,SO2> >
764 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
765 struct AddTrait< CustomMatrix<T,AF,PF,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
770 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
771 struct AddTrait< SymmetricMatrix<MT,SO1,DF,NF>, CompressedMatrix<T,SO2> >
776 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
777 struct AddTrait< CompressedMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
782 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
783 struct AddTrait< SymmetricMatrix<MT,SO1,DF,NF>, IdentityMatrix<T,SO2> >
788 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
789 struct AddTrait< IdentityMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
794 template<
typename MT1,
bool SO1,
bool DF1,
bool NF1,
typename MT2,
bool SO2,
bool DF2,
bool NF2 >
795 struct AddTrait< SymmetricMatrix<MT1,SO1,DF1,NF1>, SymmetricMatrix<MT2,SO2,DF2,NF2> >
813 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
size_t M,
size_t N,
bool SO2 >
814 struct SubTrait< SymmetricMatrix<MT,SO1,DF,NF>, StaticMatrix<T,M,N,SO2> >
819 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
820 struct SubTrait< StaticMatrix<T,M,N,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
825 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
size_t M,
size_t N,
bool SO2 >
826 struct SubTrait< SymmetricMatrix<MT,SO1,DF,NF>, HybridMatrix<T,M,N,SO2> >
831 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
832 struct SubTrait< HybridMatrix<T,M,N,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
837 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
838 struct SubTrait< SymmetricMatrix<MT,SO1,DF,NF>, DynamicMatrix<T,SO2> >
843 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
844 struct SubTrait< DynamicMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
849 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool AF,
bool PF,
bool SO2 >
850 struct SubTrait< SymmetricMatrix<MT,SO1,DF,NF>, CustomMatrix<T,AF,PF,SO2> >
855 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
856 struct SubTrait< CustomMatrix<T,AF,PF,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
861 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
862 struct SubTrait< SymmetricMatrix<MT,SO1,DF,NF>, CompressedMatrix<T,SO2> >
867 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
868 struct SubTrait< CompressedMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
873 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
874 struct SubTrait< SymmetricMatrix<MT,SO1,DF,NF>, IdentityMatrix<T,SO2> >
879 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
880 struct SubTrait< IdentityMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
885 template<
typename MT1,
bool SO1,
bool DF1,
bool NF1,
typename MT2,
bool SO2,
bool DF2,
bool NF2 >
886 struct SubTrait< SymmetricMatrix<MT1,SO1,DF1,NF1>, SymmetricMatrix<MT2,SO2,DF2,NF2> >
904 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
size_t M,
size_t N,
bool SO2 >
905 struct SchurTrait< SymmetricMatrix<MT,SO1,DF,NF>, StaticMatrix<T,M,N,SO2> >
910 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
911 struct SchurTrait< StaticMatrix<T,M,N,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
916 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
size_t M,
size_t N,
bool SO2 >
917 struct SchurTrait< SymmetricMatrix<MT,SO1,DF,NF>, HybridMatrix<T,M,N,SO2> >
922 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
923 struct SchurTrait< HybridMatrix<T,M,N,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
928 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
929 struct SchurTrait< SymmetricMatrix<MT,SO1,DF,NF>, DynamicMatrix<T,SO2> >
934 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
935 struct SchurTrait< DynamicMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
940 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool AF,
bool PF,
bool SO2 >
941 struct SchurTrait< SymmetricMatrix<MT,SO1,DF,NF>, CustomMatrix<T,AF,PF,SO2> >
946 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
947 struct SchurTrait< CustomMatrix<T,AF,PF,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
952 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
953 struct SchurTrait< SymmetricMatrix<MT,SO1,DF,NF>, CompressedMatrix<T,SO2> >
958 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
959 struct SchurTrait< CompressedMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
964 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
965 struct SchurTrait< SymmetricMatrix<MT,SO1,DF,NF>, IdentityMatrix<T,SO2> >
970 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
971 struct SchurTrait< IdentityMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
976 template<
typename MT1,
bool SO1,
bool DF1,
bool NF1,
typename MT2,
bool SO2,
bool DF2,
bool NF2 >
977 struct SchurTrait< SymmetricMatrix<MT1,SO1,DF1,NF1>, SymmetricMatrix<MT2,SO2,DF2,NF2> >
995 template<
typename MT,
bool SO,
bool DF,
bool NF,
typename T >
996 struct MultTrait< SymmetricMatrix<MT,SO,DF,NF>, T, EnableIf_< IsNumeric<T> > >
1001 template<
typename T,
typename MT,
bool SO,
bool DF,
bool NF >
1002 struct MultTrait< T, SymmetricMatrix<MT,SO,DF,NF>, EnableIf_< IsNumeric<T> > >
1007 template<
typename MT,
bool SO,
bool DF,
bool NF,
typename T,
size_t N >
1008 struct MultTrait< SymmetricMatrix<MT,SO,DF,NF>, StaticVector<T,N,false> >
1013 template<
typename T,
size_t N,
typename MT,
bool SO,
bool DF,
bool NF >
1014 struct MultTrait< StaticVector<T,N,true>, SymmetricMatrix<MT,SO,DF,NF> >
1019 template<
typename MT,
bool SO,
bool DF,
bool NF,
typename T,
size_t N >
1020 struct MultTrait< SymmetricMatrix<MT,SO,DF,NF>, HybridVector<T,N,false> >
1025 template<
typename T,
size_t N,
typename MT,
bool SO,
bool DF,
bool NF >
1026 struct MultTrait< HybridVector<T,N,true>, SymmetricMatrix<MT,SO,DF,NF> >
1031 template<
typename MT,
bool SO,
bool DF,
bool NF,
typename T >
1032 struct MultTrait< SymmetricMatrix<MT,SO,DF,NF>, DynamicVector<T,false> >
1037 template<
typename T,
typename MT,
bool SO,
bool DF,
bool NF >
1038 struct MultTrait< DynamicVector<T,true>, SymmetricMatrix<MT,SO,DF,NF> >
1043 template<
typename MT,
bool SO,
bool DF,
bool NF,
typename T,
bool AF,
bool PF >
1044 struct MultTrait< SymmetricMatrix<MT,SO,DF,NF>, CustomVector<T,AF,PF,false> >
1049 template<
typename T,
bool AF,
bool PF,
typename MT,
bool SO,
bool DF,
bool NF >
1050 struct MultTrait< CustomVector<T,AF,PF,true>, SymmetricMatrix<MT,SO,DF,NF> >
1055 template<
typename MT,
bool SO,
bool DF,
bool NF,
typename T >
1056 struct MultTrait< SymmetricMatrix<MT,SO,DF,NF>, CompressedVector<T,false> >
1061 template<
typename T,
typename MT,
bool SO,
bool DF,
bool NF >
1062 struct MultTrait< CompressedVector<T,true>, SymmetricMatrix<MT,SO,DF,NF> >
1067 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
size_t M,
size_t N,
bool SO2 >
1068 struct MultTrait< SymmetricMatrix<MT,SO1,DF,NF>, StaticMatrix<T,M,N,SO2> >
1073 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
1074 struct MultTrait< StaticMatrix<T,M,N,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
1079 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
size_t M,
size_t N,
bool SO2 >
1080 struct MultTrait< SymmetricMatrix<MT,SO1,DF,NF>, HybridMatrix<T,M,N,SO2> >
1085 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
1086 struct MultTrait< HybridMatrix<T,M,N,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
1091 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
1092 struct MultTrait< SymmetricMatrix<MT,SO1,DF,NF>, DynamicMatrix<T,SO2> >
1097 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
1098 struct MultTrait< DynamicMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
1103 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool AF,
bool PF,
bool SO2 >
1104 struct MultTrait< SymmetricMatrix<MT,SO1,DF,NF>, CustomMatrix<T,AF,PF,SO2> >
1109 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
1110 struct MultTrait< CustomMatrix<T,AF,PF,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
1115 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
1116 struct MultTrait< SymmetricMatrix<MT,SO1,DF,NF>, CompressedMatrix<T,SO2> >
1121 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
1122 struct MultTrait< CompressedMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
1127 template<
typename MT,
bool SO1,
bool DF,
bool NF,
typename T,
bool SO2 >
1128 struct MultTrait< SymmetricMatrix<MT,SO1,DF,NF>, IdentityMatrix<T,SO2> >
1133 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF,
bool NF >
1134 struct MultTrait< IdentityMatrix<T,SO1>, SymmetricMatrix<MT,SO2,DF,NF> >
1139 template<
typename MT1,
bool SO1,
bool DF1,
bool NF1,
typename MT2,
bool SO2,
bool DF2,
bool NF2 >
1140 struct MultTrait< SymmetricMatrix<MT1,SO1,DF1,NF1>, SymmetricMatrix<MT2,SO2,DF2,NF2> >
1158 template<
typename MT,
bool SO,
bool DF,
bool NF,
typename T >
1159 struct DivTrait< SymmetricMatrix<MT,SO,DF,NF>, T, EnableIf_< IsNumeric<T> > >
1177 template<
typename MT,
bool SO,
bool DF,
bool NF >
1183 template<
typename MT,
bool SO,
bool DF,
bool NF >
1189 template<
typename MT,
bool SO,
bool DF,
bool NF >
1195 template<
typename MT,
bool SO,
bool DF,
bool NF >
1201 template<
typename MT,
bool SO,
bool DF,
bool NF >
1207 template<
typename MT,
bool SO,
bool DF,
bool NF >
1213 template<
typename MT,
bool SO,
bool DF,
bool NF >
1219 template<
typename MT,
bool SO,
bool DF,
bool NF >
1225 template<
typename MT,
bool SO,
bool DF,
bool NF >
1231 template<
typename MT,
bool SO,
bool DF,
bool NF >
1232 struct UnaryMapTrait< SymmetricMatrix<MT,SO,DF,NF>, InvSqrt >
1237 template<
typename MT,
bool SO,
bool DF,
bool NF >
1243 template<
typename MT,
bool SO,
bool DF,
bool NF >
1244 struct UnaryMapTrait< SymmetricMatrix<MT,SO,DF,NF>, InvCbrt >
1249 template<
typename MT,
bool SO,
bool DF,
bool NF,
typename ET >
1250 struct UnaryMapTrait< SymmetricMatrix<MT,SO,DF,NF>, Pow<ET> >
1255 template<
typename MT,
bool SO,
bool DF,
bool NF >
1261 template<
typename MT,
bool SO,
bool DF,
bool NF >
1267 template<
typename MT,
bool SO,
bool DF,
bool NF >
1273 template<
typename MT,
bool SO,
bool DF,
bool NF >
1279 template<
typename MT,
bool SO,
bool DF,
bool NF >
1285 template<
typename MT,
bool SO,
bool DF,
bool NF >
1291 template<
typename MT,
bool SO,
bool DF,
bool NF >
1297 template<
typename MT,
bool SO,
bool DF,
bool NF >
1303 template<
typename MT,
bool SO,
bool DF,
bool NF >
1309 template<
typename MT,
bool SO,
bool DF,
bool NF >
1315 template<
typename MT,
bool SO,
bool DF,
bool NF >
1321 template<
typename MT,
bool SO,
bool DF,
bool NF >
1327 template<
typename MT,
bool SO,
bool DF,
bool NF >
1333 template<
typename MT,
bool SO,
bool DF,
bool NF >
1339 template<
typename MT,
bool SO,
bool DF,
bool NF >
1345 template<
typename MT,
bool SO,
bool DF,
bool NF >
1351 template<
typename MT,
bool SO,
bool DF,
bool NF >
1370 template<
typename MT1,
bool SO1,
bool DF1,
bool NF1,
typename MT2,
bool SO2,
bool DF2,
bool NF2 >
1371 struct BinaryMapTrait< SymmetricMatrix<MT1,SO1,DF1,NF1>, SymmetricMatrix<MT2,SO2,DF2,NF2>, Min >
1376 template<
typename MT1,
bool SO1,
bool DF1,
bool NF1,
typename MT2,
bool SO2,
bool DF2,
bool NF2 >
1377 struct BinaryMapTrait< SymmetricMatrix<MT1,SO1,DF1,NF1>, SymmetricMatrix<MT2,SO2,DF2,NF2>, Max >
1395 template<
typename MT,
bool SO,
bool DF,
bool NF >
1414 template<
typename MT,
bool SO,
bool DF,
bool NF >
1433 template<
typename MT,
bool SO,
bool DF,
bool NF >
1452 template<
typename MT,
bool SO,
bool DF,
bool NF >
1471 template<
typename MT,
bool SO,
bool DF,
bool NF >
1490 template<
typename MT1,
bool SO1,
bool DF1,
bool NF1,
typename MT2,
bool SO2,
bool DF2,
bool NF2 >
1491 struct HighType< SymmetricMatrix<MT1,SO1,DF1,NF1>, SymmetricMatrix<MT2,SO2,DF2,NF2> >
1509 template<
typename MT1,
bool SO1,
bool DF1,
bool NF1,
typename MT2,
bool SO2,
bool DF2,
bool NF2 >
1510 struct LowType< SymmetricMatrix<MT1,SO1,DF1,NF1>, SymmetricMatrix<MT2,SO2,DF2,NF2> >
1528 template<
typename MT,
bool SO,
bool DF,
bool NF >
1547 template<
typename MT,
bool SO,
bool DF,
bool NF >
1548 struct RowTrait< SymmetricMatrix<MT,SO,DF,NF> >
1566 template<
typename MT,
bool SO,
bool DF,
bool NF >
1567 struct ColumnTrait< SymmetricMatrix<MT,SO,DF,NF> >
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
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: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.
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.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
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.
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
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
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.
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 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: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.
Header file for the declsym trait.
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
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:700
#define BLAZE_CONSTRAINT_MUST_NOT_REQUIRE_EVALUATION(T)
Constraint on the data type.In case the given data type T requires an intermediate evaluation within ...
Definition: RequiresEvaluation.h:81
typename SubmatrixTrait< MT >::Type SubmatrixTrait_
Auxiliary alias declaration for the SubmatrixTrait type trait.The SubmatrixTrait_ alias declaration p...
Definition: SubmatrixTrait.h:163
Base template for the DivTrait class.
Definition: DivTrait.h:139
SymmetricMatrix specialization for dense matrices with numeric element type.
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
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
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
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.