[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-gsl] LU decomposition
From: |
John D Lamb |
Subject: |
Re: [Help-gsl] LU decomposition |
Date: |
Fri, 02 Mar 2007 09:38:41 +0000 |
On Fri, 2007-03-02 at 09:15 +0200, Keymone wrote:
> question is not how to decompose matrix
> gsl_linalg_LU_decomp stores LU decomposition into matrix A
> and i'm asking how to restore previous matrix without copying it before
> decomposition
I don't think there's an explicit function to do this. You could use
cblas and create your own matrix from the matrix LU created by the
decomposition, but a more efficient approach would contain something
like the following:
size_t n, i, j, k; /* dimension of matrix LU (and A) */
double l_ik, u_kj, a_ij;
...
for( i = 0; i < n; ++i )
for( j = 0; j < n; ++j ){
a_ij = 0;
for( k = 0; k < n; ++k ){
l_ik = i < k : 0 ? (i==k : 1 ? gsl_matrix_get( LU, i, k ));
u_kj = j < k : 0 ? gsl_matrix_get( LU, k, j );
a_ij += l_ij * u_kj;
}
gsl_matrix_set( A, i, j, a_ij );
}
I haven't tested this.
--
JDL