28 #ifndef SHARK_LINALG_BLAS_LU_HPP 29 #define SHARK_LINALG_BLAS_LU_HPP 41 typedef typename M::size_type size_type;
42 typedef typename M::value_type value_type;
44 size_type singular = 0;
45 size_type size1 = m.size1();
46 size_type size2 = m.size2();
48 for (size_type i = 0; i <
size; ++ i) {
51 if (m(i, i) != value_type()) {
52 value_type m_inv = value_type(1) / m(i, i);
53 subrange(mci, i + 1, size1) *= m_inv;
54 }
else if (singular == 0) {
65 template<
class M,
class PM>
67 typedef typename M::size_type size_type;
68 typedef typename M::value_type value_type;
70 size_type singular = 0;
71 size_type size1 = m.size1();
72 size_type size2 = m.size2();
74 for (size_type i = 0; i <
size; ++ i) {
79 if (m(i_norm_inf, i) != value_type()) {
80 if (i_norm_inf != i) {
86 value_type m_inv = value_type(1) / m(i, i);
87 subrange(mci, i + 1, size1) *= m_inv;
88 }
else if (singular == 0) {