Dense LU decomposition

The following procedures are available in the file gmm/gmm\_dense\_lu.h for dense real and complex matrices (gmm::dense_matrix<T>, gmm::row_matrix< std::vector<T> > and gmm::col_matrix< std::vector<T> >):

gmm::lu_factor(M, ipvt) : compute the LU factorization of M in M. ipvt should be
                     an gmm::lapack_ipvt (of size gmm::mat_nrows(M))
                     which will contain the indices of the pivots.

gmm::lu_solve(LU, ipvt, x, b) : solve the system LUx = b. LU is the LU
                           factorization which has to be computed first.

gmm::lu_solve(M, x, b) : solve the system Mx=b calling the lu factorization on
                    a copy of M.

gmm::lu_solve_transposed(LU, ipvt, x, b) : solve the system transposed(LU)x = b.
                                      LU is the LU factorization which
                                      has to be computed first.

gmm::lu_inverse(LU, ipvt, A) : compute the inverse of LU in A. LU is the LU
                          factorization which has to be computed first

gmm::lu_inverse(A) : invert A calling the LU factorization and the latter
                procedure.

gmm::lu_det(LU, ipvt) : compute the determinant of LU. LU is the LU
                   factorization which has to be computed first

gmm::lu_det(A) : compute the determinant of A calling the LU factorization
            and the latter function.