Dear all,

I am interested in computations with higher precision. The application is mainly error analysis of high order Magnus integrators. In some cases the asymptotic behavior of the error can only be observed when the error is already on double precision and round-off errors of the subroutines can matter. Computation with higher precision then helps to compute a reference solution.

Using PETSc/SLEPc with the float128 setting works for me, but I do have some questions on how it works with Lapack/Blas. Does PETSc use the standard Lapack package with double precision changed to quadruple precision? I did not find a lot about using the standard Lapack with quadruple precision online, I just saw that all the routines in Lapack expect double precision input (according to netlib.org).

For example the Lapack routine dstevr for the eigenvalue computation of small problems which appears in the Lanczos code of SLEPc.

I assume some Lapack methods use parameters which are adjusted on double precision?

To give an example what kind of parameters would need to be considered:
Using the Matrix Function structure of SLEPc to compute the Matrix Exponential Function with Krylov methods seems to use a Padé approximation for the small problem. The used Padé approximation is of order 6 with scaling and squaring s.t. |H 2^(-s)|<0.5. This choice of parameter leads to an error smaller than 1e-16 (N. Higham book on Matrix Functions) for approximating the Matrix Exponential of the small problem. The solution is then correct only up to double precision even if higher precision is used for the computations.

My question is how PETSc and SLEPc handle the Lapack methods which are needed on quadruple precision. My main concern is that some Lapack methods use parameters which are chosen so that the results are correct up to double precision.

Thanks for your efforts and greetings,
Tobias Jawecki

Reply via email to