00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef MTL_MATRIX_STRICT_LOWER_INCLUDE
00013 #define MTL_MATRIX_STRICT_LOWER_INCLUDE
00014
00015 namespace mtl { namespace matrix {
00016
00017 namespace traits {
00018
00019 template <typename Matrix>
00020 struct strict_lower
00021 {
00022 typedef typename traits::bands<Matrix>::type type;
00023 };
00024 }
00025
00027 template <typename Matrix>
00028 typename traits::strict_lower<Matrix>::type
00029 inline strict_lower(const Matrix& A)
00030 {
00031 return bands(A, std::numeric_limits<long>::min(), 0);
00032 }
00033
00035 template <typename Matrix>
00036 typename traits::strict_lower<Matrix>::type
00037 inline tril(const Matrix& A, long d= 0)
00038 {
00039 return bands(A, std::numeric_limits<long>::min(), d+1);
00040 }
00041
00042
00043 }}
00044
00045 #endif // MTL_MATRIX_STRICT_LOWER_INCLUDE