2
$\begingroup$

dpstf and dpstrf sometimes give different pivot results. Of course I can read the source code, but I don't get the idea from it. Since pivoting is for stability of the Cholesky decomposition, one of them is more stable. Which and why does the other exist?

$\endgroup$

1 Answer 1

2
$\begingroup$

The difference is which BLAS level they are utilizing. TRF is BLAS3 and TF2 is BLAS2. BLAS level 3 routines, roughly speaking, optimized for computers with cache memory such that they can perform block calls. BLAS 2 is optimized for vector computers with possibly shared memory.

As you can see in the code (line 209), if the optimum block size turns out to be either larger than the matrix size(which implies the impossibility of blocked algorithm) or less than or equal to 1 then DPSTRF falls back to the unblocked version DPSTF2.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.