Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] aepi_v1_0.tar.gz(1106 Kbytes)
Manuscript Title: ZKCM: a C++ library for multiprecision matrix computation with applications in quantum information
Authors: Akira SaiToh
Program title: ZKCM
Catalogue identifier: AEPI_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 184(2013)2005
Programming language: C++.
Computer: General computers.
Operating system: Unix-like systems, such as Linux, Free BSD, Cygwin on Windows OS, etc.
RAM: Several mega bytes - several giga bytes, dependent on the problem instance
Keywords: Multiprecision computing, Linear algebra, Time-dependent matrix product state, Quantum information.
PACS: 02.60.Dc, 03.67.-a 02.70.-c.
Classification: 4.8, 4.15.

External routines: GNU MP (GMP) [1], MPFR [2] Ver. 3.0.0 or later

Nature of problem:
Multiprecision computation is helpful to guarantee and/or evaluate the accuracy of simulation results in numerical physics. There is a potential demand for a programming library focusing on matrix computation usable for this purpose with a user-friendly syntax.

Solution method:
A C++ library ZKCM has been developed for multiprecision matrix computation. It provides matrix operations useful for numerical studies of physics, e.g., the tensor product (Kronecker product), the tracing-out operation, the inner product, the LU decomposition, the Hermitian-matrix diagonalization, the singular-value decomposition, and the discrete Fourier transform. For basic floating-point operations, GMP and MPFR libraries are used. An extension library ZKCM QC has also been developed, which employs the time-dependent matrix- product-state method to simulate quantum computing.

Multiprecision computation with more than a half thousand bit precision is often a thousand times slower than double-precision computation for any kind of matrix computation.

Additional comments:
A user's manual is placed in the directory "doc" of the package. Each function is explained in a reference manual found in the directories "doc/html" and "doc/latex". Sample programs are placed in the directory "samples".

Running time:
It takes less than thirty seconds to obtain a DFT spectrum for 216 data points of a time evolution of a quantum system described by a 4 × 4 matrix Hamiltonian for 256-bit precision when we use recent AMD or Intel CPU with 2.5 GHz or more CPU frequency. It takes three to five minutes to diagonalize a 100 × 100 Hermitian matrix for 512-bit precision using the aforementioned CPU.

[1] The GNU Multiple Precision Arithmetic Library, http://gmplib.org/.
[2] L. Fousse et al., MPFR: A multiple-precision binary floating-point library with correct rounding, ACM Trans. Math. Software 33 (2007) 13, http://www.mpfr.org/.