Releases: CQCL/pytket-cutensornet
v0.10.0
What's Changed
- New API:
GeneralBraOpKet
for exact calculation of arbitrary<bra|op|ket>
values. Can be used to calculate inner products, expectation values and arbitrary matrix elements. - New feature: both
GeneralState
andGeneralBraOpKet
admit circuits with parameterised gates. - New feature:
GeneralState
has a new methodget_amplitude
to obtain the amplitude of computational basis states. - New feature:
GeneralState
andCuTensorNetShotsBackend
now support RNG seeds for sampling. - Docs: three tutorials added to the documentation.
- Deprecated
TensorNetwork
object. It is still available for the sake of backwards compatibility, but it has been removed from doc pages.
Full Changelog: v0.9.0...v0.10.0
v0.9.0
pytket-cutensornet 0.8.0
-
API breaking changes
- Removed
use_kahypar
option fromConfig
. It can still be set via thesimulate
optioncompilation_params
.
- Removed
-
New feature:
simulate
now accepts pytket circuits withMeasure
,Reset
,Conditional
,ClassicalExpBox
and more classical operations. You can now retrieve classical bit values usingget_bits
. -
When calling
simulate
, the gates on the circuit are no longer sorted by default. Usecompilation_params["sort_gates"] = True
to recover this behaviour, which is now deprecated. -
StructuredState
now supports simulation of single qubit circuits. -
Some bugfixes on
MPSxMPO
relating to measurement and relabelling qubits. The bug was caused due to these functions not guaranteeing the MPO was applied before their action. -
Documentation fixes:
apply_qubit_relabelling
now appears in the documentation.add_qubit
removed from documentation ofMPSxMPO
, since it is not currently supported.
pytket-cutensornet 0.7.1
- New official documentation site.
- Backend methods can now be given a
scratch_fraction
argument to configure the amount of GPU memory allocated to cuTensorNet contraction. Users can also configure the values of theStateAttribute
andSamplerAttribute
from cuTensornet via the backend interface. - Fixed a bug causing the logger to fail displaying device properties.
pytket-cutensornet 0.7.0
-
API breaking changes
- Renamed
CuTensorNetBackend
toCuTensorNetStateBackend
. - Moved
get_operator_expectation_value
andget_circuit_overlap
frombackends
submodule togeneral_state
submodule. - Warning
TensorNetwork
object will soon be deprecated in favour of the newGeneralState
.
- Renamed
-
New API:
GeneralState
for exact simulation of circuits via contraction-path optimisation. Currently supportsget_statevector()
,expectation_value()
andsample()
. -
New feature:
CuTensorNetShotsBackend
for simulation of circuit shots. -
New feature: MPS algorithms
MPSxGate
andMPSxMPO
now support simulation of two-qubit gates acting on non-adjacent qubits. -
New feature:
add_qubit
to add fresh qubits at specified positions in anMPS
. -
New feature: added an option to
measure
to toggle destructive measurement on/off. Currently only supported forMPS
. -
New feature: a seed can now be provided to
Config
objects, providing reproducibility acrossStructuredState
simulations. -
New feature:
apply_unitary
both forMPS
andTTN
to apply an arbitrary unitary matrix, rather than apytket.Command
. -
New feature:
apply_qubit_relabelling
both forMPS
andTTN
to change the name of their qubits. This is now used withinsimulate
to take into account the action of implicit SWAPs in pytket circuits (no additional SWAP gates are applied). -
Updated pytket version requirement to 1.30.
pytket-cutensornet 0.6.1
- When using
simulate
withTTNxGate
algorithm, the initial partition is obtained using NetworkX instead of KaHyPar by default. This makes setup easier and means thatTTNxGate
can now be used when installing from PyPI. KaHyPar can still be used ifuse_kahypar
fromConfig
is set to True. - Updated pytket version requirement to 1.27.
pytket-cutensornet 0.6.0
What's changed
-
New feature: Tree Tensor Network (TTN) simulator, supporting both fixed
chi
andtruncation_fidelity
. Calculation of single amplitudes is supported byget_amplitude
and inner products byvdot
. Measurement and postselection are not yet supported. -
New API: both
MPS
andTTN
share a common interface:StructuredState
. Import paths have changed, multiple classes have been renamed:ConfigMPS
is nowConfig
,ContractionAlg
is nowSimulationAlgorithm
. Documentation has been updated accordingly. -
Canonicalisation of MPS is now always applied before a two-qubit gate. We found that this tends to reduce runtime due to canonicalisation decreasing virtual bond dimension.
-
Two-qubit gates are now decomposed (SVD) before applying them to remove null singular values (e.g. in
XXPhase
gates). -
Fixed a bug on copying an
MPS
iftruncation_fidelity
was set. -
Fixed a bug on
CuTensorNetHandle
that would prevent it from working when the device set was different from the default one (dev=0
) and when usingcuTensorNet>=2.3.0
. -
Fixed a bug on
TensorNetwork
due to unsupportedCreate
operation. -
Updated pytket version requirement to 1.26.
v0.5.4
What's Changed
- Main by @cqc-melf in #68
- Bump actions/deploy-pages from 4.0.1 to 4.0.2 by @dependabot in #70
- update copyright 2024 by @cqc-melf in #71
- Bump actions/deploy-pages from 4.0.2 to 4.0.3 by @dependabot in #72
- Update python support to 3.10, 3.11 and 3.12 by @sjdilkes in #73
- Release 0.5.4 by @cqc-melf in #75
New Contributors
Full Changelog: v0.5.3...v0.5.4
pytket-cutensornet 0.5.3
- Updated pytket version requirement to 1.23.
pytket-cutensornet 0.5.2
- Hotfix of release workflow.