Skip to main content

A library for writing imperative quantum computing programs in Cirq.

Project description

blqs_cirq: Taking the pain out of writing Cirq programs

Blqs_cirq is a library that uses blqs to make it easier to write Cirq programs.

Here is the creation of a simple circuit in Cirq

import cirq
circuit = cirq.Circuit()
q0, q1 = cirq.LineQubit.range(2)
circuit.append(cirq.H(q0))
circuit.append(cirq.CX(q0, q1))
circuit.append(measure(q0, key='a'))

Blqs_cirq makes it so that you can write this more like a normal imperative program

import blqs_cirq as bc
from blqs_cirq import CX, H, measure

# Write the function imperatively.
@bc.build
def my_circuit():
    H(0)
    CX(0, 1)
    measure(q0, key='a')

# To create the circuit we simply call the function.
circuit = my_circuit()

Blqs provides supports for all the gates in Cirq, along with all the various ways to use these gates to create operations.

But wait, there is more. Blqs_cirq supports

  • Simplification of qubit specification. Instead of creating LineQubit or NamedQubit, etc., one can simply use integers (converted to LineQubits), 2-tuples or 2-lists (converted to GridQubits) or strings (converted to NamedQubits). Custom conversions are also possible.

  • Simplification of control flow primitives. For example Cirq currently supports a subcircuit which can be repeated. For example here we repeat a small circuit within our circuit:

@bc.build
def my_circuit():
    H(1)
    with Repeat(repetitions=10):
        H(0)
        CX(0, 1)

As more control operations are added to Cirq these will be added to blqs_cirq.

  • Simple building of Moments. For example, the code below builds two moments:
@bc.build
def my_circuit():
    with Moment():
        bc.H(0)
    with Moment():
        bc.H(1)
  • Support for Cirq's insertion strategies:
@bc.build
def my_circuit():
    with bc.InsertStrategy(cirq.InsertStrategy.NEW):
        H(0)
        H(1)

Installation

To install blqs_cirq one can simply pip install the appropriate package

pip install blqs_cirq

Note that installing blqs_cirq will also install blqs and cirq.

Documentation

A good place to start is with the introduction, followed by a look at the important features. For a quick intro via a jupyter notebook, see hello blqs_cirq.

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

blqs_cirq-0.1.0.tar.gz (19.7 kB view hashes)

Uploaded Source

Built Distribution

blqs_cirq-0.1.0-py3-none-any.whl (34.5 kB view hashes)

Uploaded Python 3

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