Martin Lukac Website (Undergoing Repairs)


Portland Quantum Logic Group

Portland Quantum Logic Group Benchmarks

On this page you can find a collection of benchmarks for Quantum circuits (QC) synthesis originally designed within the framework of the PQLG (Portland Quantum Logic Group). This collection is open source and can be used for comparison and evaluation goals.

Bellow multiple file-tables can be found. Each represents a category of problems so as details of the found solution. Each file is a set of gates represented by unitary matrices that can be easilyread into a qunatum register and manipulated.

Table with links to simple benchmark files:

Input Rotation Set -> An example of input data format (old version) Complete set CS-1; New version Complete set CS-1;

Full set of NMR Pulses for (+/-[Pi, Pi/2, Pi/3, Pi/4, Pi/5]) and Phase

values for the same value of rotations (only 2-I/O gates so as only

closest neighbor gates) here; New version here;

Full input set (new format) of synthesis based only on single qubit

rotations, and on two qubit (single controlled gates) such as CNOT, CV

and CVt here

The set of ternary gates as well as Boolean gates embedded in the ternary logic: New version Complete set;
Output matrices Fredkin: ;Toffoli: ;Margolus: ;Miller: ;FullAdder: ;rb53: ;
Octave Matrix File - required for calculating matrices generated by the here

Each benchmark file contains matrices for gates:

  • First line in the file is the total number of gates

  • First line before the matrix is the number of inputs/outputs I/O

  • Second line (optional) is the cost of each gate

  • 1 - I/O gate costs 1
  • 2 - I/O gate costs 2

Quantum Logic Synthesis

EpiG - Genetic Quantum-Logic Synthesizer


Genetic sythesizer used at Portland State University for quantum

circuit synthesis can be downloaded below. In the package basic example

files are provided. Send feedback to

Multiple versions are so far provided, however the path of

the software development is going to be to provide only a single

modular-like algorithm for all variations of constraints.

The available software categories:

  • The CUDA accelerated Evolutionary synthesizer for both Quantum Logic Circuits Synthesis and for the synthesis of Quantum 1 - way Finite State Machines right now acceleration is only partial but soon a completely accelerated search will be available. Works up to 9 qubits.

    February 16 2012

    An update version of the EPIG software is now available here

    May 13 2011

    New version is here. More code cleaning, accelerating. The compilation is now self explanatory, ternary embedding is specified during install. The config script is improved and new parameters for runtime are added in the input/paramters.par. It is cleaned and tested on CUDA 3.2 and the latest GSL.

    This is the 2.7 version and can be downloaded from here HERE - source code

    April 7 2010

    New version is here. More code cleaning, accelerating. All matrix operations can be forced to be executed on CUDA. The pure happiness!!!!.

    Error messages have been added to prevent running if not enough memory is on the CUDA device

    this is the 2.6 version. Get it HERE - source code

    January 26 2010

    The new 2.5 version is out!!. Many changes and optimizations available. Get it HERE - source code

    October 26 2009

    This version (v.2.4) has improved compilation and more bugs are removed. Download it HERE - source code

  • (Updated - edit the scripts to read the usage) A perl script allowing

    to run the GA for many generations and another one that allows to

    extract and shows statisctics from a given output directory

    Excutioner and Analyzer

    run GA programm


  • Upcomming is the publication of the latest of Portland Quantum Logic

    Group software for quantum synthesis; the Exhaustive Quantum

    Synthesizer. It is a highly controllable exhaustive synthesizer

    allowing a easy and fast synthesis of quantum circuits, their

    classification and visualization for analysis.

    Reversible Logic Synthesis

    Reversible Logic Circuit Synthesizer based on Cube Reordering

    The synthesizer algorithm works on very simple principles and is efficient when dealing with functions that have many don't cares - incompletely defined functions. For details about the algorithm check the Reed-Muller 2011 paper on the publication page.

    May 13 2011

    To run the synthesizer you must have installed the GSL, CUDA and the SDK - this is not yet required but this version is only a prerelease and needs to be cleaned. run sh and provide a parameter a .pla circuit file. You can grab one from

    This is the 0.9 version and can be downloaded from here HERE - source code

    Common Robotic Language

    CRL Scripts templates and examples:

    Common Robotic IDE

    Common Robotic IDE:

    Night Working Release:

    Documentation, How-to's and Manuals

    High Performance Computing

    Remote Job Scheduler in Prl

    Not really HPC, but this is a control interface allowing to access through a single server many different single machines allowing to run specified applications and retrieve results

    Demon/Client Beta Release (Version 0.3):

    A lot of changes: the compute servers are now populated by these PRE daemons, allowing to communicate and handle files using sockets. It is completely not compatible with the previous versions

    A lot of changes: The client was redesigned so as to allow a completely uncontrolled and controlled job submission. The code is cleaned. All functionality is not in a single file for easy usage. Of course no external dependencies other than php standard - MySQL, etc.

    Everything is now in a single package.


    • First you have to edit the .inc.php file to set up your preferences.
    • You have to modify the PRE_daemon/daemon-original file (with data similar to above). You need a database user with database access.
    • To install the compute demons,copy the PRE_Daemon subdirectory (once you edited the source for preferences) to compute machines of your specifications. Then remove it from the client tree (if used as web interface).
    • To initialize the system, you have to open in a webbrowser the initiate.php page. This will create all the required databse and table structure for executioner to properly function. Note that all clients/demons must have acces to the same/comon database.
    • for more information about how to setup the system have a look at the readme.txt file

    Still buggy - if problems let me know

    (02/04/2008) - Tarball file

    SSH-Based release Release (Version 0.2):

    Automated Selection Mechanism

    Automated Selection Mechanism:

    Algorithm Selection Platform allows to provide improved results for the Semantic Segmentation of images that contain multiple segmented objects

    Github of the Project


    Variable Sifting for Reversible Circuits and SWAP gates insertion:

    This is the project page of the analytical variable sifting algorithm

    Github page in preparation

    Live-Feeling Communication

    Seamless Human-Machine Interaction: