The MPLAPACK (formerly MPACK) is a multiple-precision version of LAPACK (https://www.netlib.org/lapack/). MPLAPACK version 2.0.1 is based on LAPACK version 3.9.1 and translated from Fortran 90 to C++ using FABLE, a Fortran to C++ source-to-source conversion tool (https://github.com/cctbx/cctbx_project/tree/master/fable/). MPLAPACK version 2.0.1 provides the real and complex version of MPBLAS, and the real and complex versions of MPLAPACK support all LAPACK features: solvers for systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems, and related matrix factorizations except for mixed-precision routines. The MPLAPACK defines an API for numerical linear algebra, similar to LAPACK. It is easy to port legacy C/C++ numerical codes using MPLAPACK. MPLAPACK supports binary64, binary128, FP80 (extended double), MPFR, GMP, and QD libraries (double-double and quad-double). Users can choose MPFR or GMP for arbitrary accurate calculations, double-double or quad-double for fast 32 or 64-decimal calculations. We can consider the binary64 version as the C++ version of LAPACK. Moreover, it comes with an OpenMP accelerated version of MPBLAS for some routines and CUDA (A100 and V100 support) for double-double versions of Rgemm and Rsyrk. The peak performances of the OpenMP version are almost proportional to the number of cores, and the performances of the CUDA version are impressive, and approximately 400-600 GFlops. MPLAPACK is available at GitHub (https://github.com/nakatamaho/mplapack/) under the 2-clause BSD license.
翻译:MPLAPACK (原MPACK) 是 LAPACK (https://www.netlib.org/lapack/) 的多重精密版本。 MPLAPACK 2. 0.1 版本基于 LAPACK 3. 9.1 版本, 并使用 FARTR 90 至 C++、 Fortran 90 到 C+++ 源到源转换工具 (https:// github.com/cctbx/cctbx_project/tree/master/fable/) 。 MPLAPACK 2.0.1 版本提供了 MPBLAS 的真实和复杂版本, 以及 MPLACK 的真实和复杂版本 MPLACK 支持所有加速的功能: 同步线式方程式的解解系统、 最小方程式的最小方程式的解析法 。 MPLMPMLM- 的双体- preal- freal 版本, 和rFA 的双体版本是 。