35template <
class Matrix,
unsigned int n,
unsigned int idim>
36bool Dsfact(Matrix& rhs,
typename Matrix::value_type& det) {
40 if (idim < n || n <= 0) {
45 typename Matrix::value_type*
a = rhs.Array();
48 const typename Matrix::value_type* A = rhs.Array();
49 typename Matrix::value_type array[Matrix::size];
50 typename Matrix::value_type*
a = array;
53 for(
unsigned int i=0; i<Matrix::size; ++i) {
59 static unsigned int i, j, l;
66 for (j = 1; j <= n; ++j) {
67 const unsigned int ji = j * idim;
68 const unsigned int jj = j + ji;
75 const unsigned int jp1 = j + 1;
76 const unsigned int jpi = jp1 * idim;
81 for (l = jp1; l <= n; ++l) {
82 a[j + l * idim] =
a[jj] *
a[l + ji];
84 const unsigned int lj = l + jpi;
86 for (i = 1; i <= j; ++i) {
87 a[lj] -=
a[l + i * idim] *
a[i + jpi];
bool Dsfact(Matrix &rhs, typename Matrix::value_type &det)
Definition: Dsfact.hh:36
void a()
Definition: check_aligned.C:59