ZKCM: A C plus plus library for multiprecision matrix computation with applications in quantum information
ZKCM is a C++ library developed for the purpose of multiprecision matrix computation, on the basis of the GNU MP and MPFR libraries. It provides an easy-to-use syntax and convenient functions for matrix manipulations including those often used in numerical simulations in quantum physics. Its extension library, ZKCM_QC, is developed for simulating quantum computing using the time-dependent matrix-product-state simulation method. This paper gives an introduction about the libraries with practical sample programs. Program Summary Program title: ZKCM Catalogue identifier: AEPI_v1_0 Program summary URL: http://cpc.cs.qub.ac.uk/summaries/AEPI_v1_0.html Program obtainable from: CPC Program Library, Queen's University, Belfast, N. Ireland Licensing provisions: GNU Lesser General Public License, version 3 No. of lines in distributed program, including test data, etc.: 95600 No. of bytes in distributed program, including test data, etc.: 1133481 Distribution format: tar.gz 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 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. Restrictions: 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 2(16) data points of a time evolution of a quantum system described by a 4 x 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 x 100 Hermitian matrix for 512-bit precision using the aforementioned CPU. References: [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/. (C) 2013 Elsevier B.V. All rights reserved.
quantum information multiprecision computing linear algebra time-dependent matrix product state