Package: quantum-jet
Jetis a cross-platform C++ and Python
library for simulating quantum circuits using tensor network contractions.FeaturesRuns on a variety of systems, from single-board machines to massively parallel
supercomputers.Accelerates tensor contractions using a novel task-based parallelism approach.Models quantum systems with an arbitrary number of basis states.To get started with Jet, read one of ourtutorial walkthroughsor
browse the fullAPI documentation.InstallationC++The Jet C++ library requiresTaskflow,
a BLAS library with a CBLAS interface, and a C++ compiler with C++17 support.
To use Jet, add#include <Jet.hpp>to the top of your header file and link
your program with the CBLAS library.For example, assuming that the Taskflow headers can be found in yourg++include path and OpenBLAS is installed on your system, you can compile thehellojet.cppprogram below#include<array>#include<complex>#include<iostream>#include<Jet.hpp>intmain(){usingTensor=Jet::Tensor<std::complex<float>>;Tensorlhs({"i","j","k"},{2,2,2});Tensorrhs({"j","k","l"},{2,2,2});lhs.FillRandom();rhs.FillRandom();Tensorres=Tensor::ContractTensors(lhs,rhs);for(constauto&datum:res.GetData()){std::cout<<datum<<std::endl;}std::cout<<"You have successfully used Jet version "<<Jet::Version()<<std::endl;return0;}by runninggitclonehttps://github.com/XanaduAI/jetg++--std=c++17-O3-Ijet/includehellojet.cpp-lopenblasThe output of this program should resemble$ ./hellojet
(-0.936549,0.0678852)
(-0.0786964,-0.771624)
(2.98721,-0.657124)
(-1.90032,1.58051)
You have successfully used Jet version 0.2.1For more detailed instructions, see thedevelopment guide.PythonThe Jet Python package requires Python version 3.7 and above. Installation of Jet,
as well as all dependencies, can be done using pip:pipinstallquantum-jetTo build the Jet Python distribution locally, a BLAS library with a CBLAS
interface and a C++ compiler with C++17 support is required.  Simply runmakedistpipinstalldist/*.whlTo verify that Jet is installed, you can run thehellojet.pyprogram belowimportjetlhs=jet.Tensor(["i","j","k"],[2,2,2])rhs=jet.Tensor(["j","k","l"],[2,2,2])lhs.fill_random()rhs.fill_random()res=jet.contract_tensors(lhs,rhs)fordatuminres.data:print(f"{datum:.5f}")print("You have successfully used Jet version",jet.version())The output of this program should resemble$ python hellojet.py
1.96289+0.25257j
-0.16588-1.44652j
-1.43005+0.49516j
1.66881-1.67099j
You have successfully used Jet version 0.2.1Contributing to JetWe welcome new contributions - simply fork the Jet repository and make apull requestcontaining your contribution.  All contributers to Jet will be listed as authors
on the releases.  See ourchangelogfor more
details.We also encourage bug reports, suggestions for new features and enhancements,
and even links to cool projects or applications built using Jet. Visit thecontributions pageto
learn more about sharing your ideas with the Jet team.SupportSource Code:https://github.com/XanaduAI/jetIssue Tracker:https://github.com/XanaduAI/jet/issuesIf you are having issues, please let us know by posting the issue on our GitHub
issue tracker.AuthorsJet is the work ofmany contributors.If you are doing research using Jet, please cite our paper:Trevor Vincent, Lee J. O’Riordan, Mikhail Andrenkov, Jack Brown, Nathan Killoran, Haoyu Qi, and Ish Dhand.Jet: Fast quantum circuit simulations with parallel task-based tensor-network contraction.2021.arxiv:2107.09793LicenseJet isfreeandopen source, released under theApache License, Version 2.0.Jet contains a copy ofJSON for Modern C++from Niels Lohmann which is licenced under theMIT License.