35 #ifndef _BLAZE_MATH_ADAPTORS_UNIUPPERMATRIX_H_
36 #define _BLAZE_MATH_ADAPTORS_UNIUPPERMATRIX_H_
80 template<
typename MT,
bool SO,
bool DF >
81 inline void reset( UniUpperMatrix<MT,SO,DF>& m );
83 template<
typename MT,
bool SO,
bool DF >
84 inline void reset( UniUpperMatrix<MT,SO,DF>& m,
size_t i );
86 template<
typename MT,
bool SO,
bool DF >
87 inline void clear( UniUpperMatrix<MT,SO,DF>& m );
89 template<
typename MT,
bool SO,
bool DF >
90 inline bool isDefault(
const UniUpperMatrix<MT,SO,DF>& m );
92 template<
typename MT,
bool SO,
bool DF >
93 inline void swap( UniUpperMatrix<MT,SO,DF>& a, UniUpperMatrix<MT,SO,DF>& b ) ;
105 template<
typename MT
128 template<
typename MT
145 template<
typename MT
165 template<
typename MT
168 inline bool isDefault_backend(
const UniUpperMatrix<MT,SO,DF>& m,
TrueType )
170 return ( m.rows() == 0UL );
186 template<
typename MT
189 inline bool isDefault_backend(
const UniUpperMatrix<MT,SO,DF>& m,
FalseType )
217 template<
typename MT
236 template<
typename MT
260 template<
typename MT
263 inline MT& derestrict( UniUpperMatrix<MT,SO,DF>& m )
281 template<
typename MT,
bool SO,
bool DF >
282 struct Rows< UniUpperMatrix<MT,SO,DF> > :
public Rows<MT>
298 template<
typename MT,
bool SO,
bool DF >
299 struct Columns< UniUpperMatrix<MT,SO,DF> > :
public Columns<MT>
315 template<
typename MT,
bool SO,
bool DF >
316 struct IsSquare< UniUpperMatrix<MT,SO,DF> > :
public TrueType
335 template<
typename MT,
bool SO,
bool DF >
336 struct IsUniUpper< UniUpperMatrix<MT,SO,DF> > :
public TrueType
355 template<
typename MT,
bool SO,
bool DF >
356 struct IsAdaptor< UniUpperMatrix<MT,SO,DF> > :
public TrueType
375 template<
typename MT,
bool SO,
bool DF >
376 struct IsRestricted< UniUpperMatrix<MT,SO,DF> > :
public TrueType
395 template<
typename MT,
bool SO >
396 struct HasConstDataAccess< UniUpperMatrix<MT,SO,true> > :
public TrueType
415 template<
typename MT,
bool SO,
bool DF >
416 struct IsResizable< UniUpperMatrix<MT,SO,DF> > :
public IsResizable<MT>::Type
418 enum { value = IsResizable<MT>::value };
419 typedef typename IsResizable<MT>::Type Type;
435 template<
typename MT,
bool SO,
bool DF >
436 struct RemoveAdaptor< UniUpperMatrix<MT,SO,DF> >
454 template<
typename MT,
bool SO,
bool DF >
455 struct DerestrictTrait< UniUpperMatrix<MT,SO,DF> >
473 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
474 struct AddTrait< UniUpperMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
476 typedef typename AddTrait< MT, StaticMatrix<T,M,N,SO2> >::Type Type;
479 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
480 struct AddTrait< StaticMatrix<T,M,N,SO1>, UniUpperMatrix<MT,SO2,DF> >
482 typedef typename AddTrait< StaticMatrix<T,M,N,SO1>, MT >::Type Type;
485 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
486 struct AddTrait< UniUpperMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
488 typedef typename AddTrait< MT, HybridMatrix<T,M,N,SO2> >::Type Type;
491 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
492 struct AddTrait< HybridMatrix<T,M,N,SO1>, UniUpperMatrix<MT,SO2,DF> >
494 typedef typename AddTrait< HybridMatrix<T,M,N,SO1>, MT >::Type Type;
497 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
498 struct AddTrait< UniUpperMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
500 typedef typename AddTrait< MT, DynamicMatrix<T,SO2> >::Type Type;
503 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
504 struct AddTrait< DynamicMatrix<T,SO1>, UniUpperMatrix<MT,SO2,DF> >
506 typedef typename AddTrait< DynamicMatrix<T,SO1>, MT >::Type Type;
509 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
510 struct AddTrait< UniUpperMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
512 typedef typename AddTrait< MT, CompressedMatrix<T,SO2> >::Type Type;
515 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
516 struct AddTrait< CompressedMatrix<T,SO1>, UniUpperMatrix<MT,SO2,DF> >
518 typedef typename AddTrait< CompressedMatrix<T,SO1>, MT >::Type Type;
521 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2,
bool NF >
522 struct AddTrait< UniUpperMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2,NF> >
524 typedef typename AddTrait<MT1,MT2>::Type Type;
527 template<
typename MT1,
bool SO1,
bool DF1,
bool NF,
typename MT2,
bool SO2,
bool DF2 >
528 struct AddTrait< SymmetricMatrix<MT1,SO1,DF1,NF>, UniUpperMatrix<MT2,SO2,DF2> >
530 typedef typename AddTrait<MT1,MT2>::Type Type;
533 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
534 struct AddTrait< UniUpperMatrix<MT1,SO1,DF1>, LowerMatrix<MT2,SO2,DF2> >
536 typedef typename AddTrait<MT1,MT2>::Type Type;
539 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
540 struct AddTrait< LowerMatrix<MT1,SO1,DF1>, UniUpperMatrix<MT2,SO2,DF2> >
542 typedef typename AddTrait<MT1,MT2>::Type Type;
545 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
546 struct AddTrait< UniUpperMatrix<MT1,SO1,DF1>, UniLowerMatrix<MT2,SO2,DF2> >
548 typedef typename AddTrait<MT1,MT2>::Type Type;
551 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
552 struct AddTrait< UniLowerMatrix<MT1,SO1,DF1>, UniUpperMatrix<MT2,SO2,DF2> >
554 typedef typename AddTrait<MT1,MT2>::Type Type;
557 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
558 struct AddTrait< UniUpperMatrix<MT1,SO1,DF1>, StrictlyLowerMatrix<MT2,SO2,DF2> >
560 typedef typename AddTrait<MT1,MT2>::Type Type;
563 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
564 struct AddTrait< StrictlyLowerMatrix<MT1,SO1,DF1>, UniUpperMatrix<MT2,SO2,DF2> >
566 typedef typename AddTrait<MT1,MT2>::Type Type;
569 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
570 struct AddTrait< UniUpperMatrix<MT1,SO1,DF1>, UpperMatrix<MT2,SO2,DF2> >
572 typedef UpperMatrix< typename AddTrait<MT1,MT2>::Type > Type;
575 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
576 struct AddTrait< UpperMatrix<MT1,SO1,DF1>, UniUpperMatrix<MT2,SO2,DF2> >
578 typedef UpperMatrix< typename AddTrait<MT1,MT2>::Type > Type;
581 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
582 struct AddTrait< UniUpperMatrix<MT1,SO1,DF1>, UniUpperMatrix<MT2,SO2,DF2> >
584 typedef UpperMatrix< typename AddTrait<MT1,MT2>::Type > Type;
600 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
601 struct SubTrait< UniUpperMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
603 typedef typename SubTrait< MT, StaticMatrix<T,M,N,SO2> >::Type Type;
606 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
607 struct SubTrait< StaticMatrix<T,M,N,SO1>, UniUpperMatrix<MT,SO2,DF> >
609 typedef typename SubTrait< StaticMatrix<T,M,N,SO1>, MT >::Type Type;
612 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
613 struct SubTrait< UniUpperMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
615 typedef typename SubTrait< MT, HybridMatrix<T,M,N,SO2> >::Type Type;
618 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
619 struct SubTrait< HybridMatrix<T,M,N,SO1>, UniUpperMatrix<MT,SO2,DF> >
621 typedef typename SubTrait< HybridMatrix<T,M,N,SO1>, MT >::Type Type;
624 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
625 struct SubTrait< UniUpperMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
627 typedef typename SubTrait< MT, DynamicMatrix<T,SO2> >::Type Type;
630 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
631 struct SubTrait< DynamicMatrix<T,SO1>, UniUpperMatrix<MT,SO2,DF> >
633 typedef typename SubTrait< DynamicMatrix<T,SO1>, MT >::Type Type;
636 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
637 struct SubTrait< UniUpperMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
639 typedef typename SubTrait< MT, CompressedMatrix<T,SO2> >::Type Type;
642 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
643 struct SubTrait< CompressedMatrix<T,SO1>, UniUpperMatrix<MT,SO2,DF> >
645 typedef typename SubTrait< CompressedMatrix<T,SO1>, MT >::Type Type;
648 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2,
bool NF >
649 struct SubTrait< UniUpperMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2,NF> >
651 typedef typename SubTrait<MT1,MT2>::Type Type;
654 template<
typename MT1,
bool SO1,
bool DF1,
bool NF,
typename MT2,
bool SO2,
bool DF2 >
655 struct SubTrait< SymmetricMatrix<MT1,SO1,DF1,NF>, UniUpperMatrix<MT2,SO2,DF2> >
657 typedef typename SubTrait<MT1,MT2>::Type Type;
660 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
661 struct SubTrait< UniUpperMatrix<MT1,SO1,DF1>, LowerMatrix<MT2,SO2,DF2> >
663 typedef typename SubTrait<MT1,MT2>::Type Type;
666 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
667 struct SubTrait< LowerMatrix<MT1,SO1,DF1>, UniUpperMatrix<MT2,SO2,DF2> >
669 typedef typename SubTrait<MT1,MT2>::Type Type;
672 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
673 struct SubTrait< UniUpperMatrix<MT1,SO1,DF1>, UniLowerMatrix<MT2,SO2,DF2> >
675 typedef typename SubTrait<MT1,MT2>::Type Type;
678 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
679 struct SubTrait< UniLowerMatrix<MT1,SO1,DF1>, UniUpperMatrix<MT2,SO2,DF2> >
681 typedef typename SubTrait<MT1,MT2>::Type Type;
684 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
685 struct SubTrait< UniUpperMatrix<MT1,SO1,DF1>, StrictlyLowerMatrix<MT2,SO2,DF2> >
687 typedef typename SubTrait<MT1,MT2>::Type Type;
690 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
691 struct SubTrait< StrictlyLowerMatrix<MT1,SO1,DF1>, UniUpperMatrix<MT2,SO2,DF2> >
693 typedef typename SubTrait<MT1,MT2>::Type Type;
696 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
697 struct SubTrait< UniUpperMatrix<MT1,SO1,DF1>, UpperMatrix<MT2,SO2,DF2> >
699 typedef UpperMatrix< typename SubTrait<MT1,MT2>::Type > Type;
702 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
703 struct SubTrait< UpperMatrix<MT1,SO1,DF1>, UniUpperMatrix<MT2,SO2,DF2> >
705 typedef UpperMatrix< typename SubTrait<MT1,MT2>::Type > Type;
708 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
709 struct SubTrait< UniUpperMatrix<MT1,SO1,DF1>, UniUpperMatrix<MT2,SO2,DF2> >
711 typedef UpperMatrix< typename SubTrait<MT1,MT2>::Type > Type;
727 template<
typename MT,
bool SO,
bool DF,
typename T >
728 struct MultTrait< UniUpperMatrix<MT,SO,DF>, T >
730 typedef UpperMatrix< typename MultTrait<MT,T>::Type > Type;
734 template<
typename T,
typename MT,
bool SO,
bool DF >
735 struct MultTrait< T, UniUpperMatrix<MT,SO,DF> >
737 typedef UpperMatrix< typename MultTrait<T,MT>::Type > Type;
741 template<
typename MT,
bool SO,
bool DF,
typename T,
size_t N >
742 struct MultTrait< UniUpperMatrix<MT,SO,DF>, StaticVector<T,N,false> >
744 typedef typename MultTrait< MT, StaticVector<T,N,false> >::Type Type;
747 template<
typename T,
size_t N,
typename MT,
bool SO,
bool DF >
748 struct MultTrait< StaticVector<T,N,true>, UniUpperMatrix<MT,SO,DF> >
750 typedef typename MultTrait< StaticVector<T,N,true>, MT >::Type Type;
753 template<
typename MT,
bool SO,
bool DF,
typename T,
size_t N >
754 struct MultTrait< UniUpperMatrix<MT,SO,DF>, HybridVector<T,N,false> >
756 typedef typename MultTrait< MT, HybridVector<T,N,false> >::Type Type;
759 template<
typename T,
size_t N,
typename MT,
bool SO,
bool DF >
760 struct MultTrait< HybridVector<T,N,true>, UniUpperMatrix<MT,SO,DF> >
762 typedef typename MultTrait< HybridVector<T,N,true>, MT >::Type Type;
765 template<
typename MT,
bool SO,
bool DF,
typename T >
766 struct MultTrait< UniUpperMatrix<MT,SO,DF>, DynamicVector<T,false> >
768 typedef typename MultTrait< MT, DynamicVector<T,false> >::Type Type;
771 template<
typename T,
typename MT,
bool SO,
bool DF >
772 struct MultTrait< DynamicVector<T,true>, UniUpperMatrix<MT,SO,DF> >
774 typedef typename MultTrait< DynamicVector<T,true>, MT >::Type Type;
777 template<
typename MT,
bool SO,
bool DF,
typename T >
778 struct MultTrait< UniUpperMatrix<MT,SO,DF>, CompressedVector<T,false> >
780 typedef typename MultTrait< MT, CompressedVector<T,false> >::Type Type;
783 template<
typename T,
typename MT,
bool SO,
bool DF >
784 struct MultTrait< CompressedVector<T,true>, UniUpperMatrix<MT,SO,DF> >
786 typedef typename MultTrait< CompressedVector<T,true>, MT >::Type Type;
789 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
790 struct MultTrait< UniUpperMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
792 typedef typename MultTrait< MT, StaticMatrix<T,M,N,SO2> >::Type Type;
795 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
796 struct MultTrait< StaticMatrix<T,M,N,SO1>, UniUpperMatrix<MT,SO2,DF> >
798 typedef typename MultTrait< StaticMatrix<T,M,N,SO1>, MT >::Type Type;
801 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
802 struct MultTrait< UniUpperMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
804 typedef typename MultTrait< MT, HybridMatrix<T,M,N,SO2> >::Type Type;
807 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
808 struct MultTrait< HybridMatrix<T,M,N,SO1>, UniUpperMatrix<MT,SO2,DF> >
810 typedef typename MultTrait< HybridMatrix<T,M,N,SO1>, MT >::Type Type;
813 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
814 struct MultTrait< UniUpperMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
816 typedef typename MultTrait< MT, DynamicMatrix<T,SO2> >::Type Type;
819 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
820 struct MultTrait< DynamicMatrix<T,SO1>, UniUpperMatrix<MT,SO2,DF> >
822 typedef typename MultTrait< DynamicMatrix<T,SO1>, MT >::Type Type;
825 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
826 struct MultTrait< UniUpperMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
828 typedef typename MultTrait< MT, CompressedMatrix<T,SO2> >::Type Type;
831 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
832 struct MultTrait< CompressedMatrix<T,SO1>, UniUpperMatrix<MT,SO2,DF> >
834 typedef typename MultTrait< CompressedMatrix<T,SO1>, MT >::Type Type;
837 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2,
bool NF >
838 struct MultTrait< UniUpperMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2,NF> >
840 typedef typename MultTrait<MT1,MT2>::Type Type;
843 template<
typename MT1,
bool SO1,
bool DF1,
bool NF,
typename MT2,
bool SO2,
bool DF2 >
844 struct MultTrait< SymmetricMatrix<MT1,SO1,DF1,NF>, UniUpperMatrix<MT2,SO2,DF2> >
846 typedef typename MultTrait<MT1,MT2>::Type Type;
849 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
850 struct MultTrait< UniUpperMatrix<MT1,SO1,DF1>, LowerMatrix<MT2,SO2,DF2> >
852 typedef typename MultTrait<MT1,MT2>::Type Type;
855 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
856 struct MultTrait< LowerMatrix<MT1,SO1,DF1>, UniUpperMatrix<MT2,SO2,DF2> >
858 typedef typename MultTrait<MT1,MT2>::Type Type;
861 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
862 struct MultTrait< UniUpperMatrix<MT1,SO1,DF1>, UniLowerMatrix<MT2,SO2,DF2> >
864 typedef typename MultTrait<MT1,MT2>::Type Type;
867 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
868 struct MultTrait< UniLowerMatrix<MT1,SO1,DF1>, UniUpperMatrix<MT2,SO2,DF2> >
870 typedef typename MultTrait<MT1,MT2>::Type Type;
873 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
874 struct MultTrait< UniUpperMatrix<MT1,SO1,DF1>, StrictlyLowerMatrix<MT2,SO2,DF2> >
876 typedef typename MultTrait<MT1,MT2>::Type Type;
879 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
880 struct MultTrait< StrictlyLowerMatrix<MT1,SO1,DF1>, UniUpperMatrix<MT2,SO2,DF2> >
882 typedef typename MultTrait<MT1,MT2>::Type Type;
885 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
886 struct MultTrait< UniUpperMatrix<MT1,SO1,DF1>, UpperMatrix<MT2,SO2,DF2> >
888 typedef UpperMatrix< typename MultTrait<MT1,MT2>::Type > Type;
891 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
892 struct MultTrait< UpperMatrix<MT1,SO1,DF1>, UniUpperMatrix<MT2,SO2,DF2> >
894 typedef UpperMatrix< typename MultTrait<MT1,MT2>::Type > Type;
897 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
898 struct MultTrait< UniUpperMatrix<MT1,SO1,DF1>, UniUpperMatrix<MT2,SO2,DF2> >
900 typedef UniUpperMatrix< typename MultTrait<MT1,MT2>::Type > Type;
916 template<
typename MT,
bool SO,
bool DF,
typename T >
917 struct DivTrait< UniUpperMatrix<MT,SO,DF>, T >
919 typedef UpperMatrix< typename DivTrait<MT,T>::Type > Type;
936 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
937 struct MathTrait< UniUpperMatrix<MT1,SO1,DF1>, UniUpperMatrix<MT2,SO2,DF2> >
939 typedef UniUpperMatrix< typename MathTrait<MT1,MT2>::HighType > HighType;
940 typedef UniUpperMatrix< typename MathTrait<MT1,MT2>::LowType > LowType;
956 template<
typename MT,
bool SO,
bool DF >
957 struct SubmatrixTrait< UniUpperMatrix<MT,SO,DF> >
959 typedef typename SubmatrixTrait<MT>::Type Type;
975 template<
typename MT,
bool SO,
bool DF >
976 struct RowTrait< UniUpperMatrix<MT,SO,DF> >
978 typedef typename RowTrait<MT>::Type Type;
994 template<
typename MT,
bool SO,
bool DF >
995 struct ColumnTrait< UniUpperMatrix<MT,SO,DF> >
997 typedef typename ColumnTrait<MT>::Type Type;
Constraint on the data type.
Header file for the Rows type trait.
Header file for the IsUniUpper type trait.
Header file for the subtraction trait.
Header file for the row trait.
UniUpperMatrix specialization for sparse matrices.
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:821
Header file for the implementation of the base template of the UniUpperMatrix.
bool isDefault(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is in default state.
Definition: DiagonalProxy.h:861
Header file for the implementation of the base template of the UpperMatrix.
Header file for the IsSquare type trait.
Header file for the multiplication trait.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Header file for all forward declarations of the math module.
Header file for the Columns type trait.
Header file for the RemoveAdaptor type trait.
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:841
Header file for the IsAdaptor type trait.
Header file for the DerestrictTrait class template.
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
Matrix adapter for upper unitriangular matrices.
Definition: Forward.h:53
Header file for the addition trait.
Header file for the division trait.
Header file for the submatrix trait.
#define BLAZE_CONSTRAINT_MUST_BE_NUMERIC_TYPE(T)
Constraint on the data type.In case the given data type T is not a numeric (integral or floating poin...
Definition: Numeric.h:79
Header file for the column trait.
void swap(DiagonalMatrix< MT, SO, DF > &a, DiagonalMatrix< MT, SO, DF > &b)
Swapping the contents of two matrices.
Definition: DiagonalMatrix.h:200
Header file for the mathematical trait.
boost::false_type FalseType
Type/value traits base class.The FalseType class is used as base class for type traits and value trai...
Definition: FalseType.h:61
boost::true_type TrueType
Type traits base class.The TrueType class is used as base class for type traits and value traits that...
Definition: TrueType.h:61
UniUpperMatrix specialization for dense matrices.
Header file for the IsResizable type trait.
Header file for the IsRestricted type trait.
bool isIdentity(const DenseMatrix< MT, SO > &dm)
Checks if the give dense matrix is an identity matrix.
Definition: DenseMatrix.h:1525