Overview#

This manual introduces all concepts and syntax necessary to use the QLEO to its fullest capabilities.

QLEO (by MIMIQ) is a quantum circuit simulator. It allows to numerically calculate the effect of applying quantum operations on quantum objects like qubits. Mathematically, this is a linear algebra problem where a complex vector representing the quantum state of qubits is sequentially updated through multiplication with matrices that represent operations.

The manual starts by introducing the central object of this framework: the Circuit (see circuit page).

A Circuit is essentially a vector of Instruction objects to be applied to qubits. An Instruction contains information about the quantum operation to be applied and the desired targets of the operation. We call the targets registers, and there are three types:

  • Quantum Registers represent the qubits (|0⟩ or |1⟩). They are indexed from 1 to N, and their state representation depends on the simulator backend chosen.

  • Classical Registers represent boolean information (0 or 1) used to store the result of qubit measurements. They are represented as a vector of Bool values.

  • Z Registers represent complex number information that can be used to store the result of mathematical calculations on the quantum state such as expectation values. They are represented by a vector of Complex numbers.

The framework supports many different types of quantum operations to apply to these registers. Some of these operations correspond to physical operations one could performon a real quantum computer, whereas other operations are mathematical operations only possible in a simulation framework.

The manual introduces the following types of operations:

  • Unitary Gates correspond to transformations of the quantum state that preserve the norm (i.e. unitary matrices), and are usually the basis of quantum algorithms.

  • Non-unitary Operations reset operations that project the quantum state and are physically implementable, as well as more general operators, i.e. linear transformations, which are only mathematical tools. We include also conditional logic (if statements) in this category.

  • Noise is a type of non-unitary operation describing the effect of the environment on the qubits. We discuss it separately because it has its own intricacies (Kraus operators).

  • Statistical Operations correspond to all mathematical operations that are only possible inside the simulation framework (e.g. expectation values, entanglement measures…), which however do not change the quantum state of the qubits.

  • Special Operations such as more complex composite gates (e.g. QFT, oracles…) or custom gate declarations.

Until here, all these tools allow the user to define a circuit. In order to simulate the circuit QLEO offers a State Vector (SV) simulator.

QLEO uses MIMIQ own Protobuf based format to export and import circuits defined through. However, it also allows to import and execute circuits from files written in OpenQASM format. This is all discussed in the import-export.

The last section discuss some special topics such as bitstrings.