List of files:
--------------
config.dbl The 10 qubit static imperfections used in quant-ph/0407262
in a binary format which is used by the program.
config.txt The same as human readable file
husimi-initial.dbl Binary Husimi distribution of the initial state in the chaotic regime,
generated by the program. Such files can be converted into graphic files
using the mathematica notebook plot.nb.
plot.nb A mathematica 5.1 notebook. Converts binary Husimis into graphics and plots
fidelity files.
husimi-initial.eps The resulting Husimi *.eps file.
fidelity.txt Calculation of the fidelity without error correction, gives the lowest curve
in the left plot of figure 3 in quant-ph/0407262.
readme.txt This file...
parec.cpp The main program file
qregbase.cpp Contains the main object
qregbase.h
gatelist.cpp Contains the quantum algorithms Sawtooth map and Tent map
gatelist.h
This package contains a program which does the calculations presented in quant-ph/0407262.
It uses the NAG Fortran Library to generate random numbers, but this could easily be changed.
To compile it type:
g++ parec.cpp gatelist.cpp qregbase.cpp -lnag -lg2c
whereas -lnag and -lg2c is needed for the NAG-Library.
Program overview:
-----------------
The basic object is qregbase. It contains a quantum register with a certain number of qubits
and all necessary functions like quantum gates. It is initialized like
qregbase reg(10, "/home/user/");
where 10 would be the number of qubits and the path tells where to save and load files.
A member of qregbase is the gatelist object gl which is defined in gatelist.h.
It is a list of one and two qubit quantum gates
(Single qubit gates: Not, Hadamard, Phase )
(Two qubit gates: CNot, CPhase, Swap )
which can be set to contain a certain
quantum algorithm, e.g.
reg.gl.tent(1.7, 2.*pi/dim);
for the tent map with parameters as in quant-ph/0407262.
x iterations of such a algorithm can than be simulated with
reg.sim_g(x);
For the PAREC - method a quantum algorithm has to be translated into a set of gates
as in equation (5) in quant-ph/0407262.
This is done by
reg.convgl();
which generates a list of such gates in the qregbase member object hverlauf which is of type thverlauf.
Finally such a list is simulated with PAREC correction by the command
reg.sim_parec_h(x, ngeff);
where ngeff gives the number of Hamiltonian gates after which a PAREC step is applied.
(This last point is different from quant-ph/0407262 -- where corrections steps have been applied after
ngeff translated standard gates -- but somehow more logical.)
If you have any questions don't hesitate to ask the author:
oliver.kern@physik.tu-darmstadt.de
Oliver Kern, Darmstadt, 8 Dec. 2005