MPLAPACK version 2.0.1 user manual

Maho Nakata
9/28/2021
cs.MS

Official code: cctbx/cctbx_project (301 stars, last commit 2026-10-20). 2 more implementations below.

Abstract

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.

View on arXivView PDF

Code Implementations(3)

Computational Crystallography Toolbox

301143C, C++Jul 22, 20154 days agoNOASSERTION
cctbxcryo-emcrystallographyphenix

The MPLAPACK: multiple precision version of BLAS and LAPACK

10815C, M4Mar 29, 20171 weeks agoNOASSERTION
blaslapacklinear-algebramultiple-precision
cctbx/cctbxCommunity100%
00C, PythonAug 6, 20205 days ago

Similar Papers

Cite this paper

@article{nakata2021mplapack,
  title  = {MPLAPACK version 2.0.1 user manual},
  author = {Maho Nakata},
  year   = {2021},
  eprint = {2109.13406},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/2109.13406}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2109.13406.svg)](https://codeofpaper.com/paper/2109.13406)

Discussion