This Mathematica 7.0/8.0 package upgrades and extends the quantum computer simulation code called QDENSITY. Use of the density matrix was emphasized in QDENSITY, although that code was also applicable to a quantum state description. In the present version, the quantum state version is stressed and made amenable to future extensions to parallel computer simulations. The add-on QCWAVE extends QDENSITY in several ways. The first way is to describe the action of one, two and three-qubit quantum gates as a set of small (2×2, 4×4 or 8×8) matrices acting on the 2nq amplitudes for a system of nq qubits. This procedure was described in our parallel computer simulation QCMPI and is reviewed here. The advantage is that smaller storage demands are made, without loss of speed, and that the procedure can take advantage of message passing interface (MPI) techniques, which will hopefully be generally available in future Mathematica versions.Another extension of QDENSITY provided here is a multiverse approach, as described in our QCMPI paper. This multiverse approach involves using the present slave–master parallel processing capabilities of Mathematica 7.0/8.0 to simulate errors and error correction. The basic idea is that parallel versions of QCWAVE run simultaneously with random errors introduced on some of the processors, with an ensemble average used to represent the real world situation. Within this approach, error correction steps can be simulated and their efficacy tested. This capability allows one to examine the detrimental effects of errors and the benefits of error correction on particular quantum algorithms.Other upgrades provided in this version include circuit-diagram drawing commands, better Dirac form and amplitude display features. These are included in the add-ons QCWave.m and Circuits.m, and are illustrated in tutorial notebooks.In separate notebooks, QCWAVE is applied to sample algorithms in which the parallel multiverse setup is illustrated and error correction is simulated. These extensions and upgrades will hopefully help in both instruction and in application to QC dynamics and error correction studies. Program summaryProgram title: QCWAVECatalogue identifier: ADXH_v3_0Program summary URL:http://cpc.cs.qub.ac.uk/summaries/ADXH_v3_0.htmlProgram obtainable from: CPC Program Library, Queenʼs University, Belfast, N. IrelandLicensing provisions: Standard CPC licence, http://cpc.cs.qub.ac.uk/licence/licence.htmlNo. of lines in distributed program, including test data, etc.: 94 159No. of bytes in distributed program, including test data, etc.: 734 158Distribution format: tar.gzProgramming language: Mathematica 7.0 and 8.0.Computer: Any supporting Mathematica.Operating system: Any operating system that supports Mathematica; tested under Microsoft Windows XP, Macintosh OSX, and Linux FC4.Has the code been vectorised or parallelized?: Utilises Mathematicaʼs (7.0 and 8.0) parallel computing features.Classification: 4.15.Catalogue identifier of previous version: ADXH_v2_0Journal reference of previous version: Comput. Phys. Comm. 180 (2009) 474.Does the new version supersede the previous version?: Yes. This version supersedes all prior versions of QDENSITY.Nature of problem: Simulation of quantum circuits, quantum algorithms, noise and quantum error correction.Solution method: A Mathematica package containing commands to create and analyze quantum circuits is upgraded and extended, with emphasis on state amplitudes. Several Mathematica notebooks containing relevant examples are explained in detail. The parallel computing feature of Mathematica is used to develop a multiverse approach for including noise and forming suitable ensemble averaged density matrix evolution. Error correction is simulated.Reasons for new version: The new version updates QDENSITY to run on Mathematica 7.0 and 8.0 and makes it compatible with our extension QCWAVE. QCWAVE emphasizes wavefunctions with efficient gate operations and also extends the code to use the parallel computing features of Mathematica 7.0–8.0. Circuit diagram and amplitude display are new features. Dirac display of states is also provided.Summary of revisions: The revisions include working with state vectors and the implementation of efficient Op1, Op2 and Op3, one, two, three gate operators. Parallel processing is used to form a multiverse approach for simulating noise effects and error corrections in quantum operations. Drawing circuit diagrams and displaying amplitude evolution has been added. A simple Dirac display feature DForm has also been provided.Running time: The notebooks provided in the distribution package take only a matter of minutes to execute.
Read full abstract