Skip to main content

Quantum Cat Logo

Introduction

quantumcat is a platform-independent, open-source, high-level quantum computing library, which allows the quantum community to focus on developing platform-independent quantum applications without much effort.

It is based on two principles:

  1. Write once and execute on any supported quantum provider using one syntax

  2. quantumcat should enable researchers and developers to create quantum applications using high-level programming in the future so that they can focus on developing quantum applications instead of learning low-level concepts such as gates and circuits

Write once

from quantumcat.utils import providers  
num_of_qubits = 2
qc = QCircuit(num_of_qubits)
qc.h_gate(0)
qc.cx_gate(0, 1)

# To execute on Google Cirq
result = qc.execute(provider=providers.GOOGLE_PROVIDER, repetitions=1024) 
# To execute on IBM Qiskit
result = qc.execute(provider=providers.IBM_PROVIDER, repetitions=1024)
# To execute on Amazon Braket
result = qc.execute(provider=providers.AMAZON_PROVIDER, repetitions=1024)

Compare the results of all the supported providers with a single line of code

# Execute on All providers in one go
circuit.compare_results(plot=True)

Compare Results

Execute on real IBM quantum hardware with quantumcat

from quantumcat.utils import providers  
  
result = qc.execute(provider=providers.IBM_PROVIDER,
api='API KEY from IBM Quantum dashboard', 
device='IBM DEVICE NAME such as ibmq_manila or ibmq_quito')  
# Copy API and Device name from https://quantum-computing.ibm.com/  

Installation

pip install quantumcat

Platforms Supported

  • Google Cirq
  • IBM Qiskit
  • Amazon Braket
  • IonQ (Via Braket)
  • Rigetti (Via Braket)

Gates Supported

Click here to view gates supported

Examples

Circuit Creation

from quantumcat.circuit import QCircuit  
  
num_of_qubits = 3  
qc = QCircuit(num_of_qubits)  

Single-Qubit Gate

qc.x_gate(0) # applies X gate on qubit 0  

Two-Qubit Gate

qc.cx_gate(0, 1) # control qubit, target qubit  

Multi-Qubit Gate

qc.mct_gate([0, 1], 2) # control qubits array, target qubit  

Draw Circuit

from quantumcat.utils import providers  
  
qc.draw_circuit(provider=providers.GOOGLE_PROVIDER)

High-Level Functions

Superposition

qc.superposition(0) 
# puts qubit 0 in superposition  

Entanglement

qc.entangle(0, 1) 
# entangles qubit 0 with qubit 1  

Phase Kickback

qc.phase_kickback(0) 
# applies |-> to qubit 0  

High-Level Applications

Random Number Generator

from quantumcat.utils import providers, constants  
from quantumcat.applications.generator import RandomNumber  
  
random_number = RandomNumber(length=2, output_type=constants.DECIMAL).execute(provider=providers.GOOGLE_PROVIDER)
print(random_number)  

# To generate random number on actual IBM device  
random_number = RandomNumber(length=2, output_type=constants.DECIMAL)
	.execute(provider=providers.IBM_PROVIDER, repetitions=1024, api='API KEY from IBM Quantum dashboard'
		 device='IBM DEVICE NAME such as ibmq_manila or ibmq_quito')
print(random_number)

Password Generator

from quantumcat.applications.generator import Password  
  
password = Password(8).generate()  
print(password)  
# Length should be between 5 - 20  
# Password is generated in hexadecimal format using QRNG@ANU JSON API

OTP Generator

from quantumcat.applications.generator import OTP  
  
otp = OTP().generate()  
print(otp)  
# 5 digits OTP is generated using QRNG@ANU JSON API  

Visualization

Histogram

circuit = QCircuit(1)
circuit.superposition(0)
counts = circuit.execute(provider=providers.GOOGLE_PROVIDER, repetitions=1024)
circuit.histogram(counts) 

Histogram

Bloch Multivector

circuit = QCircuit(1)
circuit.superposition(0)
state = circuit.execute(provider=providers.GOOGLE_PROVIDER, 
			simulator_name=constants.STATEVECTOR_SIMULATOR)
circuit.bloch_multivector(state) 

Bloch Multivector

QSphere

circuit = QCircuit(1)
circuit.superposition(0)
state = circuit.execute(provider=providers.GOOGLE_PROVIDER, 
			simulator_name=constants.STATEVECTOR_SIMULATOR)
circuit.state_qsphere(state) 

QSphere

License

Apache License 2.0

Metadata

Release files for quantumcat 0.1.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for quantumcat 0.1.8
File Size Uploaded
quantumcat-0.1.8.tar.gz 33.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for quantumcat 0.1.8
File Interpreter ABI Platform
quantumcat-0.1.8-py3-none-any.whl Python 3 none any Details

Total release size: 106.9 kB

Release files / quantumcat-0.1.8.tar.gz

Download URL quantumcat-0.1.8.tar.gz
Size 33.3 kB
Tags Source
SHA-256 checksum
How to use checksums
47b8b916b1735ebf4d298e50d957f8d2a53cdcb293358ed7c82a62310f3f88a9
BLAKE2b-256 checksum
How to use checksums
e228c1d0795c8e3da4d5c8596edff08ac5b5b898e6dcee2fc9758b954c772ba9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

Release files / quantumcat-0.1.8-py3-none-any.whl

Download URL quantumcat-0.1.8-py3-none-any.whl
Size 73.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
981b848c95140ad3c19e33679a802ee90c1fbf8f3279d60b32e47ce5e56453e5
BLAKE2b-256 checksum
How to use checksums
4cd26025cd050a3bcf1f19d431495eb40447331c2baeae0a9da296c46957cc85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

Release history Release notifications | RSS feed

This release

0.1.8 This release

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page