Name

rafiter — (obsolete) iterative refinement for a s.p.d. linear system

Calling Sequence

[xn, rn] = rafiter(A, C_ptr, b, x0, [, nb_iter, verb])

Parameters

A

a real symmetric positive definite sparse matrix

C_ptr

a pointer to a Cholesky factorization (got with taucs_chfact)

b

column vector (r.h.s of the linear system) but "matrix" (multiple r.h.s.) are allowed.

x0

first solution obtained with taucs_chsolve(C_ptr, b)

nb_iter

(optional) number of raffinement iterations (default 2)

verb

(optional) boolean, must be %t for displaying the intermediary results, and %f (default) if you don't want.

xn

new refined solution

rn

residual (A*xn - b)

Description

This function is somewhat obsolete, use x = taucs_chsolve(C_ptr,b,A) (see taucs_chsolve) which do one iterative refinement step.

To use if you want to improve a little the solution got with taucs_chsolve. Note that with verb=%t the displayed internal steps are essentially meaningful in the case where b is a column vector.

Caution

Currently there is no verification for the input parameters !

Examples

 
[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
C_ptr = taucs_chfact(A);
b = rand(size(A,1),1);
x0 = taucs_chsolve(C_ptr, b);
norm(A*x0 - b)
[xn, rn] = rafiter(A, C_ptr, b, x0, verb=%t);
norm(A*xn - b)
taucs_chdel(C_ptr)
 

See Also

taucs_chsolve , taucs_chfact

Authors

Bruno Pincon <Bruno.Pincon@iecn.u-nancy.fr>