35 #ifndef _BLAZE_MATH_ADAPTORS_STRICTLYLOWERMATRIX_H_
36 #define _BLAZE_MATH_ADAPTORS_STRICTLYLOWERMATRIX_H_
81 template<
typename MT,
bool SO,
bool DF >
82 inline void reset( StrictlyLowerMatrix<MT,SO,DF>& m );
84 template<
typename MT,
bool SO,
bool DF >
85 inline void reset( StrictlyLowerMatrix<MT,SO,DF>& m,
size_t i );
87 template<
typename MT,
bool SO,
bool DF >
88 inline void clear( StrictlyLowerMatrix<MT,SO,DF>& m );
90 template<
typename MT,
bool SO,
bool DF >
91 inline bool isDefault(
const StrictlyLowerMatrix<MT,SO,DF>& m );
93 template<
typename MT,
bool SO,
bool DF >
94 inline void swap( StrictlyLowerMatrix<MT,SO,DF>& a, StrictlyLowerMatrix<MT,SO,DF>& b ) ;
106 template<
typename MT
129 template<
typename MT
146 template<
typename MT
167 template<
typename MT
170 inline bool isDefault_backend(
const StrictlyLowerMatrix<MT,SO,DF>& m,
TrueType )
172 return ( m.rows() == 0UL );
189 template<
typename MT
192 inline bool isDefault_backend(
const StrictlyLowerMatrix<MT,SO,DF>& m,
FalseType )
220 template<
typename MT
239 template<
typename MT
263 template<
typename MT
266 inline MT& derestrict( StrictlyLowerMatrix<MT,SO,DF>& m )
284 template<
typename MT,
bool SO,
bool DF >
285 struct Rows< StrictlyLowerMatrix<MT,SO,DF> > :
public Rows<MT>
301 template<
typename MT,
bool SO,
bool DF >
302 struct Columns< StrictlyLowerMatrix<MT,SO,DF> > :
public Columns<MT>
318 template<
typename MT,
bool SO,
bool DF >
319 struct IsSquare< StrictlyLowerMatrix<MT,SO,DF> > :
public TrueType
338 template<
typename MT,
bool SO,
bool DF >
339 struct IsStrictlyLower< StrictlyLowerMatrix<MT,SO,DF> > :
public TrueType
358 template<
typename MT,
bool SO,
bool DF >
359 struct IsAdaptor< StrictlyLowerMatrix<MT,SO,DF> > :
public TrueType
378 template<
typename MT,
bool SO,
bool DF >
379 struct IsRestricted< StrictlyLowerMatrix<MT,SO,DF> > :
public TrueType
398 template<
typename MT,
bool SO >
399 struct HasConstDataAccess< StrictlyLowerMatrix<MT,SO,true> > :
public TrueType
418 template<
typename MT,
bool SO,
bool DF >
419 struct IsResizable< StrictlyLowerMatrix<MT,SO,DF> > :
public IsResizable<MT>::Type
421 enum { value = IsResizable<MT>::value };
422 typedef typename IsResizable<MT>::Type Type;
438 template<
typename MT,
bool SO,
bool DF >
439 struct RemoveAdaptor< StrictlyLowerMatrix<MT,SO,DF> >
457 template<
typename MT,
bool SO,
bool DF >
458 struct DerestrictTrait< StrictlyLowerMatrix<MT,SO,DF> >
476 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
477 struct AddTrait< StrictlyLowerMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
479 typedef typename AddTrait< MT, StaticMatrix<T,M,N,SO2> >::Type Type;
482 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
483 struct AddTrait< StaticMatrix<T,M,N,SO1>, StrictlyLowerMatrix<MT,SO2,DF> >
485 typedef typename AddTrait< StaticMatrix<T,M,N,SO1>, MT >::Type Type;
488 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
489 struct AddTrait< StrictlyLowerMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
491 typedef typename AddTrait< MT, HybridMatrix<T,M,N,SO2> >::Type Type;
494 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
495 struct AddTrait< HybridMatrix<T,M,N,SO1>, StrictlyLowerMatrix<MT,SO2,DF> >
497 typedef typename AddTrait< HybridMatrix<T,M,N,SO1>, MT >::Type Type;
500 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
501 struct AddTrait< StrictlyLowerMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
503 typedef typename AddTrait< MT, DynamicMatrix<T,SO2> >::Type Type;
506 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
507 struct AddTrait< DynamicMatrix<T,SO1>, StrictlyLowerMatrix<MT,SO2,DF> >
509 typedef typename AddTrait< DynamicMatrix<T,SO1>, MT >::Type Type;
512 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
513 struct AddTrait< StrictlyLowerMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
515 typedef typename AddTrait< MT, CompressedMatrix<T,SO2> >::Type Type;
518 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
519 struct AddTrait< CompressedMatrix<T,SO1>, StrictlyLowerMatrix<MT,SO2,DF> >
521 typedef typename AddTrait< CompressedMatrix<T,SO1>, MT >::Type Type;
524 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2,
bool NF >
525 struct AddTrait< StrictlyLowerMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2,NF> >
527 typedef typename AddTrait<MT1,MT2>::Type Type;
530 template<
typename MT1,
bool SO1,
bool DF1,
bool NF,
typename MT2,
bool SO2,
bool DF2 >
531 struct AddTrait< SymmetricMatrix<MT1,SO1,DF1,NF>, StrictlyLowerMatrix<MT2,SO2,DF2> >
533 typedef typename AddTrait<MT1,MT2>::Type Type;
536 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
537 struct AddTrait< StrictlyLowerMatrix<MT1,SO1,DF1>, LowerMatrix<MT2,SO2,DF2> >
539 typedef LowerMatrix< typename AddTrait<MT1,MT2>::Type > Type;
542 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
543 struct AddTrait< LowerMatrix<MT1,SO1,DF1>, StrictlyLowerMatrix<MT2,SO2,DF2> >
545 typedef LowerMatrix< typename AddTrait<MT1,MT2>::Type > Type;
548 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
549 struct AddTrait< StrictlyLowerMatrix<MT1,SO1,DF1>, UniLowerMatrix<MT2,SO2,DF2> >
551 typedef UniLowerMatrix< typename AddTrait<MT1,MT2>::Type > Type;
554 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
555 struct AddTrait< UniLowerMatrix<MT1,SO1,DF1>, StrictlyLowerMatrix<MT2,SO2,DF2> >
557 typedef UniLowerMatrix< typename AddTrait<MT1,MT2>::Type > Type;
560 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
561 struct AddTrait< StrictlyLowerMatrix<MT1,SO1,DF1>, StrictlyLowerMatrix<MT2,SO2,DF2> >
563 typedef StrictlyLowerMatrix< typename AddTrait<MT1,MT2>::Type > Type;
579 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
580 struct SubTrait< StrictlyLowerMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
582 typedef typename SubTrait< MT, StaticMatrix<T,M,N,SO2> >::Type Type;
585 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
586 struct SubTrait< StaticMatrix<T,M,N,SO1>, StrictlyLowerMatrix<MT,SO2,DF> >
588 typedef typename SubTrait< StaticMatrix<T,M,N,SO1>, MT >::Type Type;
591 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
592 struct SubTrait< StrictlyLowerMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
594 typedef typename SubTrait< MT, HybridMatrix<T,M,N,SO2> >::Type Type;
597 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
598 struct SubTrait< HybridMatrix<T,M,N,SO1>, StrictlyLowerMatrix<MT,SO2,DF> >
600 typedef typename SubTrait< HybridMatrix<T,M,N,SO1>, MT >::Type Type;
603 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
604 struct SubTrait< StrictlyLowerMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
606 typedef typename SubTrait< MT, DynamicMatrix<T,SO2> >::Type Type;
609 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
610 struct SubTrait< DynamicMatrix<T,SO1>, StrictlyLowerMatrix<MT,SO2,DF> >
612 typedef typename SubTrait< DynamicMatrix<T,SO1>, MT >::Type Type;
615 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
616 struct SubTrait< StrictlyLowerMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
618 typedef typename SubTrait< MT, CompressedMatrix<T,SO2> >::Type Type;
621 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
622 struct SubTrait< CompressedMatrix<T,SO1>, StrictlyLowerMatrix<MT,SO2,DF> >
624 typedef typename SubTrait< CompressedMatrix<T,SO1>, MT >::Type Type;
627 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2,
bool NF >
628 struct SubTrait< StrictlyLowerMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2,NF> >
630 typedef typename SubTrait<MT1,MT2>::Type Type;
633 template<
typename MT1,
bool SO1,
bool DF1,
bool NF,
typename MT2,
bool SO2,
bool DF2 >
634 struct SubTrait< SymmetricMatrix<MT1,SO1,DF1,NF>, StrictlyLowerMatrix<MT2,SO2,DF2> >
636 typedef typename SubTrait<MT1,MT2>::Type Type;
639 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
640 struct SubTrait< StrictlyLowerMatrix<MT1,SO1,DF1>, LowerMatrix<MT2,SO2,DF2> >
642 typedef LowerMatrix< typename SubTrait<MT1,MT2>::Type > Type;
645 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
646 struct SubTrait< LowerMatrix<MT1,SO1,DF1>, StrictlyLowerMatrix<MT2,SO2,DF2> >
648 typedef LowerMatrix< typename SubTrait<MT1,MT2>::Type > Type;
651 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
652 struct SubTrait< StrictlyLowerMatrix<MT1,SO1,DF1>, UniLowerMatrix<MT2,SO2,DF2> >
654 typedef LowerMatrix< typename SubTrait<MT1,MT2>::Type > Type;
657 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
658 struct SubTrait< UniLowerMatrix<MT1,SO1,DF1>, StrictlyLowerMatrix<MT2,SO2,DF2> >
660 typedef UniLowerMatrix< typename SubTrait<MT1,MT2>::Type > Type;
663 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
664 struct SubTrait< StrictlyLowerMatrix<MT1,SO1,DF1>, StrictlyLowerMatrix<MT2,SO2,DF2> >
666 typedef StrictlyLowerMatrix< typename SubTrait<MT1,MT2>::Type > Type;
682 template<
typename MT,
bool SO,
bool DF,
typename T >
683 struct MultTrait< StrictlyLowerMatrix<MT,SO,DF>, T >
685 typedef StrictlyLowerMatrix< typename MultTrait<MT,T>::Type > Type;
689 template<
typename T,
typename MT,
bool SO,
bool DF >
690 struct MultTrait< T, StrictlyLowerMatrix<MT,SO,DF> >
692 typedef StrictlyLowerMatrix< typename MultTrait<T,MT>::Type > Type;
696 template<
typename MT,
bool SO,
bool DF,
typename T,
size_t N >
697 struct MultTrait< StrictlyLowerMatrix<MT,SO,DF>, StaticVector<T,N,false> >
699 typedef typename MultTrait< MT, StaticVector<T,N,false> >::Type Type;
702 template<
typename T,
size_t N,
typename MT,
bool SO,
bool DF >
703 struct MultTrait< StaticVector<T,N,true>, StrictlyLowerMatrix<MT,SO,DF> >
705 typedef typename MultTrait< StaticVector<T,N,true>, MT >::Type Type;
708 template<
typename MT,
bool SO,
bool DF,
typename T,
size_t N >
709 struct MultTrait< StrictlyLowerMatrix<MT,SO,DF>, HybridVector<T,N,false> >
711 typedef typename MultTrait< MT, HybridVector<T,N,false> >::Type Type;
714 template<
typename T,
size_t N,
typename MT,
bool SO,
bool DF >
715 struct MultTrait< HybridVector<T,N,true>, StrictlyLowerMatrix<MT,SO,DF> >
717 typedef typename MultTrait< HybridVector<T,N,true>, MT >::Type Type;
720 template<
typename MT,
bool SO,
bool DF,
typename T >
721 struct MultTrait< StrictlyLowerMatrix<MT,SO,DF>, DynamicVector<T,false> >
723 typedef typename MultTrait< MT, DynamicVector<T,false> >::Type Type;
726 template<
typename T,
typename MT,
bool SO,
bool DF >
727 struct MultTrait< DynamicVector<T,true>, StrictlyLowerMatrix<MT,SO,DF> >
729 typedef typename MultTrait< DynamicVector<T,true>, MT >::Type Type;
732 template<
typename MT,
bool SO,
bool DF,
typename T >
733 struct MultTrait< StrictlyLowerMatrix<MT,SO,DF>, CompressedVector<T,false> >
735 typedef typename MultTrait< MT, CompressedVector<T,false> >::Type Type;
738 template<
typename T,
typename MT,
bool SO,
bool DF >
739 struct MultTrait< CompressedVector<T,true>, StrictlyLowerMatrix<MT,SO,DF> >
741 typedef typename MultTrait< CompressedVector<T,true>, MT >::Type Type;
744 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
745 struct MultTrait< StrictlyLowerMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
747 typedef typename MultTrait< MT, StaticMatrix<T,M,N,SO2> >::Type Type;
750 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
751 struct MultTrait< StaticMatrix<T,M,N,SO1>, StrictlyLowerMatrix<MT,SO2,DF> >
753 typedef typename MultTrait< StaticMatrix<T,M,N,SO1>, MT >::Type Type;
756 template<
typename MT,
bool SO1,
bool DF,
typename T,
size_t M,
size_t N,
bool SO2 >
757 struct MultTrait< StrictlyLowerMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
759 typedef typename MultTrait< MT, HybridMatrix<T,M,N,SO2> >::Type Type;
762 template<
typename T,
size_t M,
size_t N,
bool SO1,
typename MT,
bool SO2,
bool DF >
763 struct MultTrait< HybridMatrix<T,M,N,SO1>, StrictlyLowerMatrix<MT,SO2,DF> >
765 typedef typename MultTrait< HybridMatrix<T,M,N,SO1>, MT >::Type Type;
768 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
769 struct MultTrait< StrictlyLowerMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
771 typedef typename MultTrait< MT, DynamicMatrix<T,SO2> >::Type Type;
774 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
775 struct MultTrait< DynamicMatrix<T,SO1>, StrictlyLowerMatrix<MT,SO2,DF> >
777 typedef typename MultTrait< DynamicMatrix<T,SO1>, MT >::Type Type;
780 template<
typename MT,
bool SO1,
bool DF,
typename T,
bool SO2 >
781 struct MultTrait< StrictlyLowerMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
783 typedef typename MultTrait< MT, CompressedMatrix<T,SO2> >::Type Type;
786 template<
typename T,
bool SO1,
typename MT,
bool SO2,
bool DF >
787 struct MultTrait< CompressedMatrix<T,SO1>, StrictlyLowerMatrix<MT,SO2,DF> >
789 typedef typename MultTrait< CompressedMatrix<T,SO1>, MT >::Type Type;
792 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2,
bool NF >
793 struct MultTrait< StrictlyLowerMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2,NF> >
795 typedef typename MultTrait<MT1,MT2>::Type Type;
798 template<
typename MT1,
bool SO1,
bool DF1,
bool NF,
typename MT2,
bool SO2,
bool DF2 >
799 struct MultTrait< SymmetricMatrix<MT1,SO1,DF1,NF>, StrictlyLowerMatrix<MT2,SO2,DF2> >
801 typedef typename MultTrait<MT1,MT2>::Type Type;
804 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
805 struct MultTrait< StrictlyLowerMatrix<MT1,SO1,DF1>, LowerMatrix<MT2,SO2,DF2> >
807 typedef StrictlyLowerMatrix< typename MultTrait<MT1,MT2>::Type > Type;
810 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
811 struct MultTrait< LowerMatrix<MT1,SO1,DF1>, StrictlyLowerMatrix<MT2,SO2,DF2> >
813 typedef StrictlyLowerMatrix< typename MultTrait<MT1,MT2>::Type > Type;
816 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
817 struct MultTrait< StrictlyLowerMatrix<MT1,SO1,DF1>, UniLowerMatrix<MT2,SO2,DF2> >
819 typedef StrictlyLowerMatrix< typename MultTrait<MT1,MT2>::Type > Type;
822 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
823 struct MultTrait< UniLowerMatrix<MT1,SO1,DF1>, StrictlyLowerMatrix<MT2,SO2,DF2> >
825 typedef StrictlyLowerMatrix< typename MultTrait<MT1,MT2>::Type > Type;
828 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
829 struct MultTrait< StrictlyLowerMatrix<MT1,SO1,DF1>, StrictlyLowerMatrix<MT2,SO2,DF2> >
831 typedef StrictlyLowerMatrix< typename MultTrait<MT1,MT2>::Type > Type;
847 template<
typename MT,
bool SO,
bool DF,
typename T >
848 struct DivTrait< StrictlyLowerMatrix<MT,SO,DF>, T >
850 typedef StrictlyLowerMatrix< typename DivTrait<MT,T>::Type > Type;
867 template<
typename MT1,
bool SO1,
bool DF1,
typename MT2,
bool SO2,
bool DF2 >
868 struct MathTrait< StrictlyLowerMatrix<MT1,SO1,DF1>, StrictlyLowerMatrix<MT2,SO2,DF2> >
870 typedef StrictlyLowerMatrix< typename MathTrait<MT1,MT2>::HighType > HighType;
871 typedef StrictlyLowerMatrix< typename MathTrait<MT1,MT2>::LowType > LowType;
887 template<
typename MT,
bool SO,
bool DF >
888 struct SubmatrixTrait< StrictlyLowerMatrix<MT,SO,DF> >
890 typedef typename SubmatrixTrait<MT>::Type Type;
906 template<
typename MT,
bool SO,
bool DF >
907 struct RowTrait< StrictlyLowerMatrix<MT,SO,DF> >
909 typedef typename RowTrait<MT>::Type Type;
925 template<
typename MT,
bool SO,
bool DF >
926 struct ColumnTrait< StrictlyLowerMatrix<MT,SO,DF> >
928 typedef typename ColumnTrait<MT>::Type Type;
Constraint on the data type.
Header file for the Rows type trait.
Header file for the subtraction trait.
Header file for the row trait.
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:821
bool isDefault(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is in default state.
Definition: DiagonalProxy.h:861
Header file for the IsSquare type trait.
Header file for the multiplication trait.
Header file for the implementation of the base template of the LowerMatrix.
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.
StrictlyLowerMatrix specialization for sparse matrices.
Header file for the RemoveAdaptor type trait.
Header file for the IsStrictlyLower 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
Header file for the addition trait.
StrictlyLowerMatrix specialization for dense matrices.
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
Matrix adapter for strictly lower triangular matrices.
Definition: Forward.h:49
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
Header file for the IsResizable type trait.
Header file for the IsRestricted type trait.
Header file for the implementation of the base template of the StrictlyLowerMatrix.
bool isIdentity(const DenseMatrix< MT, SO > &dm)
Checks if the give dense matrix is an identity matrix.
Definition: DenseMatrix.h:1525
Header file for the implementation of the base template of the UniLowerMatrix.