Mercurial > hg > octave-lyh
comparison liboctave/sparse-base-chol.cc @ 8402:2176f2b4599e
Fix sparse cholesky inversion
author | David Bateman <dbateman@free.fr> |
---|---|
date | Fri, 12 Dec 2008 23:18:20 +0100 |
parents | 2be056f03720 |
children | eb63fbe60fab |
comparison
equal
deleted
inserted
replaced
8401:712cfdc2e417 | 8402:2176f2b4599e |
---|---|
275 ColumnVector perms = rep->perm(); | 275 ColumnVector perms = rep->perm(); |
276 chol_type ret; | 276 chol_type ret; |
277 double rcond2; | 277 double rcond2; |
278 octave_idx_type info; | 278 octave_idx_type info; |
279 MatrixType mattype (MatrixType::Upper); | 279 MatrixType mattype (MatrixType::Upper); |
280 chol_type linv = L().transpose().inverse(mattype, info, rcond2, 1, 0); | 280 chol_type linv = L().hermitian().inverse(mattype, info, rcond2, 1, 0); |
281 | 281 |
282 if (perms.length() == n) | 282 if (perms.length() == n) |
283 { | 283 { |
284 p_type Qc = Q(); | 284 p_type Qc = Q(); |
285 retval = Qc * linv.transpose() * linv * Qc.transpose(); | 285 retval = Qc * linv * linv.hermitian() * Qc.transpose(); |
286 } | 286 } |
287 else | 287 else |
288 retval = linv.transpose() * linv; | 288 retval = linv * linv.hermitian (); |
289 #endif | 289 #endif |
290 return retval; | 290 return retval; |
291 } | 291 } |
292 | 292 |
293 /* | 293 /* |