Skip to main content

Variational synthesis of quantum circuits

Project description

CPFlow

Implementation of the synthesis algorithms for quantum circuits described in ... Distributed under the MIT licence.

Installation

CPFlow is available via pip. It is highly recommended to install the package in a new virtual environment.

pip install cpflow

A feature that allows to decompose sythesized circuits into Clifford+T basis requires yet experimental qiskit branch that can be installed through

pip install git+https://github.com/LNoorl/qiskit-terra@d2e0dc1185ccc3b0c9957e3d7d9bc610dede29d4

Basic example

Decomposing the CCZ gate with linear qubit connectivity 0-1-2. Can be executed in python console but intended for use with Jupyter notebooks.

import numpy as np
from cpflow import *

u_target = np.diag([1, 1, 1, 1, 1, 1, 1, -1])  # CCZ gate
layer = [[0, 1], [1, 2]]  # Linear connectivity
decomposer = Synthesize(layer, target_unitary=u_target, label='ccz_chain')
options = StaticOptions(num_cp_gates=12, accepted_num_cz_gates=10, num_samples=10)

results = decomposer.static(options)

d = results.decompositions[3]  # This turned out to be the best decomposition.
d.refine()
print(d)
d.circuit.draw()

Output:

< ccz_chain| Rational | loss: 1.1920928955078125e-07  | CZ count: 8 | CZ depth: 8  >

image

More features

For further examples we encourage to explore a tutorial notebook interactively. For motivation and background see the original paper link_to_paper.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cpflow-0.0.3.tar.gz (28.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page