35 #ifndef _BLAZE_MATH_ADAPTORS_HERMITIANMATRIX_H_ 36 #define _BLAZE_MATH_ADAPTORS_HERMITIANMATRIX_H_ 110 template<
typename MT,
bool SO,
bool DF >
111 inline void reset( HermitianMatrix<MT,SO,DF>& m );
113 template<
typename MT,
bool SO,
bool DF >
114 inline void reset( HermitianMatrix<MT,SO,DF>& m,
size_t i );
116 template<
typename MT,
bool SO,
bool DF >
117 inline void clear( HermitianMatrix<MT,SO,DF>& m );
119 template<
bool RF,
typename MT,
bool SO,
bool DF >
120 inline bool isDefault(
const HermitianMatrix<MT,SO,DF>& m );
122 template<
typename MT,
bool SO,
bool DF >
123 inline bool isIntact(
const HermitianMatrix<MT,SO,DF>& m );
125 template<
typename MT,
bool SO,
bool DF >
126 inline void swap( HermitianMatrix<MT,SO,DF>& a, HermitianMatrix<MT,SO,DF>& b ) noexcept;
138 template<
typename MT
161 template<
typename MT
178 template<
typename MT
219 return isDefault<RF>( m.matrix_ );
245 template<
typename MT
263 template<
typename MT
317 m.matrix_ = std::move( tmp );
341 template<
typename MT
352 return ( i != j ||
isReal( value ) );
374 template<
typename MT
380 return trySet( mat, i, j, value );
402 template<
typename MT
408 return trySet( mat, i, j, value );
430 template<
typename MT
436 return trySet( mat, i, j, value );
458 template<
typename MT
464 return trySet( mat, i, j, value );
486 template<
typename MT
505 (~rhs).
size() <= column - row ||
506 isReal( (~rhs)[column-row] ) );
530 template<
typename MT
549 (~rhs).
size() <= row - column ||
550 isReal( (~rhs)[row-column] ) );
576 template<
typename MT
594 for(
size_t i=0UL; i<(~rhs).
size(); ++i ) {
595 if( !
isReal( (~rhs)[i] ) )
624 template<
typename MT
630 ptrdiff_t band,
size_t row,
size_t column )
642 for(
const auto& element : ~rhs ) {
643 if( !
isReal( element.value() ) )
670 template<
typename MT1
687 const size_t M( (~rhs).
rows() );
688 const size_t N( (~rhs).
columns() );
690 if( ( row + M <= column ) || ( column + N <= row ) )
693 const bool lower( row > column );
694 const size_t size (
min( row + M, column + N ) - ( lower ? row : column ) );
699 const size_t subrow( lower ? 0UL : column - row );
700 const size_t subcol( lower ? row - column : 0UL );
724 template<
typename MT
732 return tryAssign( lhs, ~rhs, row, column );
756 template<
typename MT
762 ptrdiff_t band,
size_t row,
size_t column )
764 return tryAssign( lhs, ~rhs, band, row, column );
786 template<
typename MT1
794 return tryAssign( lhs, ~rhs, row, column );
817 template<
typename MT
825 return tryAssign( lhs, ~rhs, row, column );
849 template<
typename MT
855 ptrdiff_t band,
size_t row,
size_t column )
857 return tryAssign( lhs, ~rhs, band, row, column );
880 template<
typename MT1
888 return tryAssign( lhs, ~rhs, row, column );
911 template<
typename MT
919 return tryAssign( lhs, ~rhs, row, column );
943 template<
typename MT
949 ptrdiff_t band,
size_t row,
size_t column )
951 return tryAssign( lhs, ~rhs, band, row, column );
974 template<
typename MT1
982 return tryAssign( lhs, ~rhs, row, column );
1004 template<
typename MT
1012 return tryAssign( lhs, ~rhs, row, column );
1036 template<
typename MT
1042 ptrdiff_t band,
size_t row,
size_t column )
1044 return tryAssign( lhs, ~rhs, band, row, column );
1060 template<
typename MT,
bool SO,
bool DF >
1061 struct Size< HermitianMatrix<MT,SO,DF>, 0UL >
1062 :
public Size<MT,0UL>
1065 template<
typename MT,
bool SO,
bool DF >
1066 struct Size< HermitianMatrix<MT,SO,DF>, 1UL >
1067 :
public Size<MT,1UL>
1083 template<
typename MT,
bool SO,
bool DF >
1084 struct IsSquare< HermitianMatrix<MT,SO,DF> >
1101 template<
typename MT,
bool SO,
bool DF >
1119 template<
typename MT,
bool SO,
bool DF >
1137 template<
typename MT,
bool SO,
bool DF >
1138 struct IsAdaptor< HermitianMatrix<MT,SO,DF> >
1155 template<
typename MT,
bool SO,
bool DF >
1173 template<
typename MT,
bool SO >
1191 template<
typename MT,
bool SO,
bool DF >
1192 struct IsAligned< HermitianMatrix<MT,SO,DF> >
1209 template<
typename MT,
bool SO,
bool DF >
1227 template<
typename MT,
bool SO,
bool DF >
1228 struct IsPadded< HermitianMatrix<MT,SO,DF> >
1245 template<
typename MT,
bool SO,
bool DF >
1263 template<
typename MT,
bool SO,
bool DF >
1281 template<
typename MT,
bool SO,
bool DF >
1300 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
1301 struct AddTrait< HermitianMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
1306 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
1307 struct AddTrait< StaticMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
1312 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
1313 struct AddTrait< HermitianMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
1318 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
1319 struct AddTrait< HybridMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
1324 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1325 struct AddTrait< HermitianMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
1330 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1331 struct AddTrait< DynamicMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1336 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool AF,
bool PF,
bool SO2 >
1337 struct AddTrait< HermitianMatrix<MT,SO1,DF>, CustomMatrix<T,AF,PF,SO2> >
1342 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF >
1343 struct AddTrait< CustomMatrix<T,AF,PF,SO1>, HermitianMatrix<MT,SO2,DF> >
1348 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1349 struct AddTrait< HermitianMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
1354 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1355 struct AddTrait< CompressedMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1360 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1361 struct AddTrait< HermitianMatrix<MT,SO1,DF>, IdentityMatrix<T,SO2> >
1366 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1367 struct AddTrait< IdentityMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1372 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2,
bool NF >
1373 struct AddTrait< HermitianMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2,NF> >
1380 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1381 struct AddTrait< SymmetricMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1388 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1389 struct AddTrait< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1407 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
1408 struct SubTrait< HermitianMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
1413 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
1414 struct SubTrait< StaticMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
1419 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
1420 struct SubTrait< HermitianMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
1425 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
1426 struct SubTrait< HybridMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
1431 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1432 struct SubTrait< HermitianMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
1437 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1438 struct SubTrait< DynamicMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1443 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool AF,
bool PF,
bool SO2 >
1444 struct SubTrait< HermitianMatrix<MT,SO1,DF>, CustomMatrix<T,AF,PF,SO2> >
1449 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF >
1450 struct SubTrait< CustomMatrix<T,AF,PF,SO1>, HermitianMatrix<MT,SO2,DF> >
1455 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1456 struct SubTrait< HermitianMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
1461 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1462 struct SubTrait< CompressedMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1467 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1468 struct SubTrait< HermitianMatrix<MT,SO1,DF>, IdentityMatrix<T,SO2> >
1473 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1474 struct SubTrait< IdentityMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1479 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1480 struct SubTrait< HermitianMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2> >
1487 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1488 struct SubTrait< SymmetricMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1495 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1496 struct SubTrait< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1514 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
1515 struct SchurTrait< HermitianMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
1520 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
1521 struct SchurTrait< StaticMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
1526 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
1527 struct SchurTrait< HermitianMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
1532 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
1533 struct SchurTrait< HybridMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
1538 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1539 struct SchurTrait< HermitianMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
1544 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1545 struct SchurTrait< DynamicMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1550 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool AF,
bool PF,
bool SO2 >
1551 struct SchurTrait< HermitianMatrix<MT,SO1,DF>, CustomMatrix<T,AF,PF,SO2> >
1556 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF >
1557 struct SchurTrait< CustomMatrix<T,AF,PF,SO1>, HermitianMatrix<MT,SO2,DF> >
1562 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1563 struct SchurTrait< HermitianMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
1568 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1569 struct SchurTrait< CompressedMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1574 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1575 struct SchurTrait< HermitianMatrix<MT,SO1,DF>, IdentityMatrix<T,SO2> >
1580 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1581 struct SchurTrait< IdentityMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1586 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2,
bool NF >
1587 struct SchurTrait< HermitianMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2,NF> >
1594 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1595 struct SchurTrait< SymmetricMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1602 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1603 struct SchurTrait< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1621 template<
typename MT,
bool SO,
bool DF,
typename T >
1622 struct MultTrait< HermitianMatrix<MT,SO,DF>, T, EnableIf_< IsNumeric<T> > >
1627 template<
typename T,
typename MT,
bool SO,
bool DF >
1628 struct MultTrait< T, HermitianMatrix<MT,SO,DF>, EnableIf_< IsNumeric<T> > >
1633 template<
typename MT,
bool SO,
bool DF,
typename T,
size_t N >
1634 struct MultTrait< HermitianMatrix<MT,SO,DF>, StaticVector<T,N,false> >
1639 template<
typename T,
size_t N,
typename MT,
bool SO,
bool DF >
1640 struct MultTrait< StaticVector<T,N,true>, HermitianMatrix<MT,SO,DF> >
1645 template<
typename MT,
bool SO,
bool DF,
typename T,
size_t N >
1646 struct MultTrait< HermitianMatrix<MT,SO,DF>, HybridVector<T,N,false> >
1651 template<
typename T,
size_t N,
typename MT,
bool SO,
bool DF >
1652 struct MultTrait< HybridVector<T,N,true>, HermitianMatrix<MT,SO,DF> >
1657 template<
typename MT,
bool SO,
bool DF,
typename T >
1658 struct MultTrait< HermitianMatrix<MT,SO,DF>, DynamicVector<T,false> >
1663 template<
typename T,
typename MT,
bool SO,
bool DF >
1664 struct MultTrait< DynamicVector<T,true>, HermitianMatrix<MT,SO,DF> >
1669 template<
typename MT,
bool SO,
bool DF,
typename T,
bool AF,
bool PF >
1670 struct MultTrait< HermitianMatrix<MT,SO,DF>, CustomVector<T,AF,PF,false> >
1675 template<
typename T,
bool AF,
bool PF,
typename MT,
bool SO,
bool DF >
1676 struct MultTrait< CustomVector<T,AF,PF,true>, HermitianMatrix<MT,SO,DF> >
1681 template<
typename MT,
bool SO,
bool DF,
typename T >
1682 struct MultTrait< HermitianMatrix<MT,SO,DF>, CompressedVector<T,false> >
1687 template<
typename T,
typename MT,
bool SO,
bool DF >
1688 struct MultTrait< CompressedVector<T,true>, HermitianMatrix<MT,SO,DF> >
1693 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
1694 struct MultTrait< HermitianMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
1699 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
1700 struct MultTrait< StaticMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
1705 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
1706 struct MultTrait< HermitianMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
1711 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
1712 struct MultTrait< HybridMatrix<T,M,N,SO1>, HermitianMatrix<MT,SO2,DF> >
1717 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1718 struct MultTrait< HermitianMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
1723 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1724 struct MultTrait< DynamicMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1729 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool AF,
bool PF,
bool SO2 >
1730 struct MultTrait< HermitianMatrix<MT,SO1,DF>, CustomMatrix<T,AF,PF,SO2> >
1735 template<
typename T,
bool AF,
bool PF,
bool SO1,
typename MT,
bool SO2,
bool DF >
1736 struct MultTrait< CustomMatrix<T,AF,PF,SO1>, HermitianMatrix<MT,SO2,DF> >
1741 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1742 struct MultTrait< HermitianMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
1747 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1748 struct MultTrait< CompressedMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1753 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
1754 struct MultTrait< HermitianMatrix<MT,SO1,DF>, IdentityMatrix<T,SO2> >
1759 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
1760 struct MultTrait< IdentityMatrix<T,SO1>, HermitianMatrix<MT,SO2,DF> >
1765 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1766 struct MultTrait< HermitianMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2> >
1771 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1772 struct MultTrait< SymmetricMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1777 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
1778 struct MultTrait< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
1796 template<
typename MT,
bool SO,
bool DF,
typename T >
1797 struct DivTrait< HermitianMatrix<MT,SO,DF>, T, EnableIf_< IsNumeric<T> > >
1815 template<
typename MT,
bool SO,
bool DF >
1821 template<
typename MT,
bool SO,
bool DF >
1827 template<
typename MT,
bool SO,
bool DF >
1833 template<
typename MT,
bool SO,
bool DF >
1839 template<
typename MT,
bool SO,
bool DF >
1845 template<
typename MT,
bool SO,
bool DF >
1851 template<
typename MT,
bool SO,
bool DF >
1857 template<
typename MT,
bool SO,
bool DF >
1865 template<
typename MT,
bool SO,
bool DF >
1871 template<
typename MT,
bool SO,
bool DF >
1877 template<
typename MT,
bool SO,
bool DF >
1883 template<
typename MT,
bool SO,
bool DF >
1889 template<
typename MT,
bool SO,
bool DF,
typename ET >
1890 struct UnaryMapTrait< HermitianMatrix<MT,SO,DF>, UnaryPow<ET> >
1895 template<
typename MT,
bool SO,
bool DF >
1901 template<
typename MT,
bool SO,
bool DF >
1907 template<
typename MT,
bool SO,
bool DF >
1913 template<
typename MT,
bool SO,
bool DF >
1919 template<
typename MT,
bool SO,
bool DF >
1925 template<
typename MT,
bool SO,
bool DF >
1931 template<
typename MT,
bool SO,
bool DF >
1937 template<
typename MT,
bool SO,
bool DF >
1943 template<
typename MT,
bool SO,
bool DF >
1949 template<
typename MT,
bool SO,
bool DF >
1955 template<
typename MT,
bool SO,
bool DF >
1961 template<
typename MT,
bool SO,
bool DF >
1967 template<
typename MT,
bool SO,
bool DF >
1973 template<
typename MT,
bool SO,
bool DF >
1979 template<
typename MT,
bool SO,
bool DF >
1985 template<
typename MT,
bool SO,
bool DF >
1991 template<
typename MT,
bool SO,
bool DF >
2010 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2,
bool NF >
2011 struct BinaryMapTrait< HermitianMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2,NF>, Min >
2016 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2,
bool NF >
2017 struct BinaryMapTrait< HermitianMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2,NF>, Max >
2022 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
2023 struct BinaryMapTrait< SymmetricMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2>, Min >
2028 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
2029 struct BinaryMapTrait< SymmetricMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2>, Max >
2034 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
2035 struct BinaryMapTrait< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2>, Min >
2040 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
2041 struct BinaryMapTrait< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2>, Max >
2059 template<
typename MT,
bool SO,
bool DF >
2078 template<
typename MT,
bool SO,
bool DF >
2097 template<
typename MT,
bool SO,
bool DF >
2116 template<
typename MT,
bool SO,
bool DF >
2135 template<
typename MT,
bool SO,
bool DF >
2154 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
2155 struct HighType< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
2173 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
2174 struct LowType< HermitianMatrix<MT1,SO1,DF1>, HermitianMatrix<MT2,SO2,DF2> >
2192 template<
typename MT,
bool SO,
bool DF,
size_t... CSAs >
2211 template<
typename MT,
bool SO,
bool DF,
size_t... CRAs >
2212 struct RowTrait< HermitianMatrix<MT,SO,DF>, CRAs... >
2230 template<
typename MT,
bool SO,
bool DF,
size_t... CRAs >
2231 struct RowsTrait< HermitianMatrix<MT,SO,DF>, CRAs... >
2249 template<
typename MT,
bool SO,
bool DF,
size_t... CCAs >
2250 struct ColumnTrait< HermitianMatrix<MT,SO,DF>, CCAs... >
2268 template<
typename MT,
bool SO,
bool DF,
size_t... CCAs >
2269 struct ColumnsTrait< HermitianMatrix<MT,SO,DF>, CCAs... >
2287 template<
typename MT,
bool SO,
bool DF,
ptrdiff_t... CBAs >
2288 struct BandTrait< HermitianMatrix<MT,SO,DF>, CBAs... >
bool isReal(const DiagonalProxy< MT > &proxy)
Returns whether the matrix element represents a real number.
Definition: DiagonalProxy.h:650
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.
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
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
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.
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
Base class for N-dimensional dense vectors.The DenseVector class is a base class for all arbitrarily ...
Definition: DenseVector.h:76
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
HermitianMatrix specialization for sparse matrices.
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.
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
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.
decltype(auto) band(Matrix< MT, SO > &matrix, RBAs... args)
Creating a view on a specific band of the given matrix.
Definition: Band.h:134
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 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: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.
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
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.
bool isHermitian(const DenseMatrix< MT, SO > &dm)
Checks if the given dense matrix is Hermitian.
Definition: DenseMatrix.h:919
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
#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
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
typename UnaryMapTrait< T, OP >::Type UnaryMapTrait_
Auxiliary alias declaration for the UnaryMapTrait class template.The UnaryMapTrait_ alias declaration...
Definition: UnaryMapTrait.h:134
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
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:291
Compile time evaluation of the size of vectors and matrices.The Size type trait evaluates the size of...
Definition: Size.h:80
Base class for sparse vectors.The SparseVector class is a base class for all arbitrarily sized (N-dim...
Definition: Forward.h:130
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.
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: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