Skip to main content

Quantum circuits on top of tensor network

Project description

TENSORCIRCUIT

This project is partially inspired by mpsim which builds the quantum circuit model on top of tensornetwork setups instead of directly matrix manipulations.

With TensorNetwork project announced by Google, such setup may gain benefits from swift implementation to auto differentiation abilities.

This is only a toy project at very early stage and it may always be at this stage. There might be not only sharp edges but also essential bugs in the project. Try it on your own risk.

Baisc Usage

import tensorcircuit as tc
c = tc.Circuit(2)
c.H(0)
c.CNOT(0,1)
print(c.perfect_sampling())
print(c.wavefunction())
print(c.measure(1))
print(c.expectation(tc.gates.z(), 1))

Runtime behavior changing:

tc.set_backend("tensorflow")
tc.set_dtype("complex128")
tc.set_contractor("greedy")

Auto differentiations with jit (tf and jax supported):

@tc.backend.jit
def forward(theta):
    c = tc.Circuit(2)
    c.R(0, theta=theta, alpha=0.5, phi=0.8)
    return tc.backend.real(c.expectation(tc.gates.z(), 0))

g = tc.backend.grad(forward)
g = tc.backend.jit(g)
theta = tc.gates.num_to_tensor(1.0)
print(g(theta))

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

tensorcircuit-0.0.1.tar.gz (8.5 kB view hashes)

Uploaded Source

Built Distribution

tensorcircuit-0.0.1-py3-none-any.whl (10.2 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