Wolfram Library Archive

Courseware Demos MathSource Technical Notes
All Collections Articles Books Conference Proceedings

QCWAVE – A Mathematica quantum computer simulation update

Frank Tabakin
Organization: University of Pittsburgh
Department: Physics and Astronomy
URL: http://www.physicsandastronomy.pitt.edu/people/frank-tabakin
Bruno Julia-Diaz
Organization: University of Pittsburgh
Department: Physics and Astronomy
URL: http://www.pitt.edu/
Journal / Anthology

Computer Physics Communications
Year: 2011
Volume: 182
Issue: 8
Page range: 1693-1707

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.