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 /*