Welcome to the MIMIQ Circuits Documentation


Welcome to the MIMIQ Circuits documentation, your comprehensive guide. MIMIQ Circuits is a quantum computing framework and high performance simulator developed by QPerfect that allows you to develop and run your quantum algorithms beyond the limits of today's noisy intermediate scale quantum (NISQ) computers.

About MIMIQ Circuits

MIMIQ Circuits uses highly efficient compression schemes to exactly simulate large quantum circuits with hundreds of qubits and provides approximate simulations for high entanglement circuits exceeding NISQ performance. It is ideal for learning how to design more complex quantum algorithms, optimizing quantum protocols to take full advantage of next generation hardware and for moving towards a quantum advantage in your quantum applications.

Computing Paradigm

At QPerfect, we strive to seamlessly integrate with your existing workflows. We provide user-friendly Julia libraries that enable you to construct quantum circuits and connect to our remote services. Regardless of whether you prefer scripting, Jupyter notebooks, or Pluto notebooks, our approach ensures a fast and frictionless experience.

How It Works

Using MIMIQ Circuits is a straightforward process. You can leverage our open-source libraries to connect to our remote services and unlock the full potential of quantum circuit simulations. Here's a high-level overview of the process:

  • Circuit Design: Leverage our comprehensive libraries to construct intricate quantum circuits effortlessly. Our libraries offer a set of functions and tools for defining and manipulating quantum circuits.

  • Job Request: Once your circuit is ready, submit a job request to our remote services using the Julia libraries. This request contains the circuit information along with any specific simulation parameters.

  • Simulation and Execution: Our robust remote infrastructure takes charge and performs the quantum circuit simulation using powerful cloud based computational resources.

  • Result Retrieval: After the simulation completes, you can retrieve the results through the Julia libraries or via a web interface.

Beta Stage: Start your Quantum Computing Journey with MIMIQ Circuits

MIMIQ Circuits is currently in the beta stage and open to early adopters. We are continuously refining and enhance our tools so we value any feedback you may have to ensure that MIMIQ Circuits meets and exceeds your expectations. If you want access to MIMIQ Circuits, we encourage you register on our website.

Embark on this quantum computing journey with us during the beta stage of MIMIQ Circuits, and take part in the large scale quantum revolution!

Getting Started

To get started please refer to the subsequent sections of this documentation. We provide in-depth explanations, code examples, and tutorials to help you fully leverage the capabilities of our quantum circuit simulator. Whether you're a quantum researcher, a software developer, or a quantum computing enthusiast, this documentation serves as your primary resource for using MIMIQ Circuits.

Here is a quick primer that will allow people already confident with the Python programming language to start using MIMIQ Circuits in few seconds:

julia> using Pkg

julia> pkg"registry add https://github.com/qperfect-io/QPerfectRegistry.git"

julia> pkg"add MimiqCircuits"

julia> using MimiqCircuits

julia> # initialize an empty circuit

julia> circuit = Circuit()
empty circuit

julia> # build a circuit with 4 Hadamard gates on different qubits

julia> for x in 1:4
           push!(circuit, GateH(), x)

julia> # print out the circuit

julia> circuit
4-qubits circuit with 4 gates:
├── H @ q1
├── H @ q2
├── H @ q3
└── H @ q4

julia> # start a connection to our remote services

julia> # be aware: this will open a browser window

julia> connection = connect()
[ Info: Listening on:, thread id: 1
[ Info: Please login in your browser at
[ Info: Server on closing
├── url: https://mimiq.qperfect.io/api
└── status: open

julia> # send an execution request to our remote services

julia> # you can check the status of your job at https://mimiq.qperfect.io

julia> job = execute(connection, circuit)
└── ••••••••••••••••••••••••

julia> # this will wait for the job to finish before getting the results

julia> res = getresults(connection, job)
Results of execution Execution
├── ••••••••••••••••••••••••:
├── fidelity: 1.0
├── sampled 16 bitstrings
└── returned amplitudes of 0 bitstrings