Release 0.2.0
New features since last release
-
The Jet interpreter for XIR scripts now accepts a
dimension
option for CV circuits. (#47) -
The Jet interpreter for XIR programs now supports a
probabilities
output. (#44) -
The
Circuit
class now supports taking the expected value of an observable. (#46) -
The Jet interpreter for XIR scripts now handles gate definitions. (#37)
-
CudaTensor now supports
Transpose
calls. (#42) -
Full and sliced contractions can now be run with
TaskBasedContractor
on the GPU using theCudaTensor
class. (#29) -
The
TaskBasedCpuContractor
class has been renamed toTaskBasedContractor
. (#29) -
An
XIRProgram
which declares the gates supported by Jet is now bundled with thejet
Python package. (#34) -
The
jet
Python package now includes an interpreter for XIR programs. (#24) -
Gates may now be instantiated by name using the
GateFactory
Python class. (#23) -
Quantum circuit and state models have been added to the
jet
Python package. (#21) -
Quantum gate models have been added to the
jet
Python package. (#16) -
Python bindings are now available for the
TaskBasedCpuContractor
class. (#19) -
Python bindings now include a factory method which accepts a
dtype
parameter. (#18) -
Running
make build
from thepython
directory now creates a Python distribution package. (#13) -
A new intermediate representation (IR) is added, including a parser, IR representation program, and a Strawberry Fields interface. (#11)
-
Python bindings are now available for the
TensorNetworkSerializer
class. (#5) -
Python bindings are now available for the
TensorNetwork
andPathInfo
classes (#7) -
Python bindings are now available for the
Tensor
class. (#2) -
Running CMake with
-DBUILD_PYTHON=ON
now generates Python bindings within ajet
package. (#1)
Improvements
-
The Jet interpreter for XIR programs now uses the task-based contractor. (#44)
-
CudaTensor
SliceIndex
calls now avoid intermediate CPU transfer operations. (#42) -
A Python (Ubuntu) test report is now generated alongside the C++ (Ubuntu) test report. (#39)
-
Tensor transposes are now significantly faster when all the dimensions are powers of two. (#12)
-
Use camel case for type aliases. (#17)
-
Exceptions are now favoured in place of
std::terminate
withException
being the new base type for all exceptions thrown by Jet. (#3) -
TaskBasedCpuContractor
now storesTensor
results. (#8) -
Tensor
class now checks data type at compile-time. (#4)
Breaking Changes
-
The Jet interpreter for XIR scripts now requires an amplitude state to be specified as an array. (#45)
-
The Jet interpreter for XIR scripts is now case-sensitive with respect to gate names. (#36)
-
Python bindings for
complex<float>
andcomplex<double>
specializations are now suffixed withC64
andC128
, respectively. (#15) -
Indices are now specified in row-major order. (#10)
Bug Fixes
-
The Jet and XIR Python packages can now be installed from a source distribution. (#38)
-
An issue with the
CudaTensor
indices was fixed when converting between the CPUTensor
class. (#29) -
The Jet versions returned by
Jet::Version()
(C++) andjet.Version()
(Python) are now correct. (#26) -
The documentation build no longer emits any Doxygen warnings. (#25)
-
Running
make build
in thepython
directory now correctly uses the virtual environment. (#31) -
The output of
TensorNetwork::Contract()
andTaskBasedCpuContractor::Contract()
now agree with external packages. (#12) -
TaskBasedCpuContractor::AddReductionTask()
now handles the reduction of non-scalar tensors. (#19) -
The output of
TensorNetwork::Contract()
andTaskBasedCpuContractor::Contract()
now agree with one another. (#6) -
PathInfo
now correctly names intermediary tensors in a sliced tensor network (#22).
Documentation
-
The "Using Jet" section of the Sphinx documentation now has Python code snippets. (#43)
-
The Sphinx documentation now includes API documentation for the
jet
Python package. (#40) -
The "Using Jet" section of the Sphinx documentation website now compiles with the latest Jet headers. (#26)
-
The license comment headers at the top of the IR source files have been removed. (#14)
Contributors
This release contains contributions from (in alphabetical order):
Mikhail Andrenkov, Jack Brown, Theodor Isacsson, Josh Izaac, Lee J. O'Riordan, Antal Száva, Trevor Vincent.