All Projects → msoeken → Cirkit

msoeken / Cirkit

Licence: mit
A circuit toolkit

Projects that are alternatives of or similar to Cirkit

Yao.jl
Extensible, Efficient Quantum Algorithm Design for Humans.
Stars: ✭ 514 (+703.13%)
Mutual labels:  quantum-computing
Pennylane
PennyLane is a cross-platform Python library for differentiable programming of quantum computers. Train a quantum computer the same way as a neural network.
Stars: ✭ 800 (+1150%)
Mutual labels:  quantum-computing
Qiskit Vscode
Simplifying Qiskit to make developing quantum circuits and applications faster
Stars: ✭ 52 (-18.75%)
Mutual labels:  quantum-computing
Cs Video Courses
List of Computer Science courses with video lectures.
Stars: ✭ 27,209 (+42414.06%)
Mutual labels:  quantum-computing
Qusimpy
A Multi-Qubit Ideal Quantum Computer Simulator
Stars: ✭ 688 (+975%)
Mutual labels:  quantum-computing
Qutip
QuTiP: Quantum Toolbox in Python
Stars: ✭ 985 (+1439.06%)
Mutual labels:  quantum-computing
Strawberryfields
Strawberry Fields is a full-stack Python library for designing, simulating, and optimizing continuous variable (CV) quantum optical circuits.
Stars: ✭ 505 (+689.06%)
Mutual labels:  quantum-computing
Quipper Language
Quipper: embedded, scalable functional programming language for quantum computing (unofficial fork)
Stars: ✭ 59 (-7.81%)
Mutual labels:  quantum-computing
Projectq
ProjectQ: An open source software framework for quantum computing
Stars: ✭ 688 (+975%)
Mutual labels:  quantum-computing
Jsquil
Quantum computer instructions for JavaScript developers
Stars: ✭ 43 (-32.81%)
Mutual labels:  quantum-computing
Openqasm
Gate and operation specification for quantum circuits
Stars: ✭ 582 (+809.38%)
Mutual labels:  quantum-computing
Awesome Quantum Software
Curated list of open-source quantum software projects.
Stars: ✭ 647 (+910.94%)
Mutual labels:  quantum-computing
Docs
D-Wave Ocean Documentation
Stars: ✭ 41 (-35.94%)
Mutual labels:  quantum-computing
Quantumcomputing
This is an implementation of IBM's Quantum Experience in simulation; a 5-qubit quantum computer with a limited set of gates. Please cite me if you end up using this academically.
Stars: ✭ 534 (+734.38%)
Mutual labels:  quantum-computing
Black Stone
Specification and Implementation of Quantum Common Lisp, for gate-model quantum computers
Stars: ✭ 55 (-14.06%)
Mutual labels:  quantum-computing
Qiskit Aqua
Quantum Algorithms & Applications in Python
Stars: ✭ 514 (+703.13%)
Mutual labels:  quantum-computing
Awesome Ai Books
Some awesome AI related books and pdfs for learning and downloading, also apply some playground models for learning
Stars: ✭ 855 (+1235.94%)
Mutual labels:  quantum-computing
Openfermion Psi4
OpenFermion plugin to interface with the electronic structure package Psi4.
Stars: ✭ 63 (-1.56%)
Mutual labels:  quantum-computing
Openfermion
The electronic structure package for quantum computers.
Stars: ✭ 1,099 (+1617.19%)
Mutual labels:  quantum-computing
Quantumflow Dev
QuantumFlow: A Quantum Algorithms Development Toolkit
Stars: ✭ 43 (-32.81%)
Mutual labels:  quantum-computing

Build Status Build status License: MIT

CirKit (version 3)

CirKit is a logic synthesis and optimization framework. It is implemented based on various EPFL logic sythesis libraries.

Clone

CirKit depends on submodules, so make sure to clone recursively:

git clone --recursive https://github.com/msoeken/cirkit.git

If you update the repository, then also update the submodules:

git pull origin cirkit3
git submodule update --recursive

Installation (shell interface)

mkdir build
cd build
cmake ..
make cirkit
cli/cirkit

Installation (Python library)

python3 setup.py install

But you can also use the Makefile to build the Python library in a virtual environment:

make devbuild

With custom compiler

CirKit is implemented using C++-17 features and therefore a recent compiler is required (e.g., GCC ≥ 7.3.0 and Clang ≥ 7.0.0). If your recent compiler is not on the PATH prefix, extend the cmake command as follows:

cmake -DCMAKE_CXX_COMPILER=/path/to/c++-compiler ..

and prefix the python3 command as follows:

CC=/path/to/c++-compiler python3 setup.py install

Example (stand-alone application)

$ cirkit
read_aiger --aig file.aig
ps
cut_rewrite
lut_mapping
collapse_mapping
ps
write_bench file.bench

Example (Python interface)

import cirkit
cirkit.read_aiger(aig=True, filename="file.aig")
cirkit.ps(aig=True)
cirkit.cut_rewrite(aig=True)
cirkit.lut_mapping(aig=True)
cirkit.collapse_mapping(aig=True)
cirkit.ps(lut=True)
cirkit.write_bench(lut=True, filename="file.bench")

RevKit 3.1

RevKit 3.1 is a Python library without a stand-alone interface as in CirKit. It can be found at the RevKit repository.

CirKit and RevKit 2.0

The 2.0 versions of CirKit and RevKit can be found in the develop branch.

EPFL logic sythesis libraries

CirKit and Revkit are based on the EPFL logic synthesis libraries. The libraries and several examples on how to use and integrate the libraries can be found in the logic synthesis tool showcase.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].