Tensorcircuit

Latest version: v0.12.0

Safety actively analyzes 681775 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 6

0.12.0

Added

- Add translation of r gate from qiskit

- Add `det` method at backends

- Add fermion Gaussian state simulator in `fgs.py`

- Add `partial_transpose` and `entanglement_negativity` method in `quantum.py`

- Add `reduced_wavefunction` method in `quantum.py` to get reduced pure state

Changed

- move ensemble module to applications/ai (breaking changes)

- tc2qiskit now record qiskit measure with incremental clbit from 0

Fixed

- Support degenerate eigenvalue for jax backend `eigh` method when using AD

- Fixed `cu` gate translation from qiskit to avoid qiskit bug

- Fixed jax refactoring (0.4.24) where SVD and QR return a namedtuple instead of a tuple

- Fix qiskit<1.0 and tf<2.16

0.11.0

Added

- Add multiple GPU VQE examples using jax pmap

- Add `with_prob` option to `general_kraus` so that the probability of each option can be returned together

- Add benchmark example showcasing new way of implementing matrix product using vmap

- Add keras3 example showcasing integration with tc

- Add circuit copy method that avoid shallow copy issue `Circuit.copy()`

- Add end to end infrastructures and methods for classical shadow in `shadows.py`

- Add classical shadow tutorial

- Add NN-VQE tutorial

Fixed

- improve the `adaptive_vmap` to support internal jit and pytree output

- fix `pauli_gates` dtype unchange issue when set new dtype (not recommend to use this attr anymore)

- fix rem `apply_correction` bug when non-numpy backend is set

- fix tf warning for `cast` with higher version of tf

Changed

- The static method `BaseCircuit.copy` is renamed as `BaseCircuit.copy_nodes` (breaking changes)

0.10.0

Added

- `c.measure_instruction(*qubits)` now supports multiple ints specified at the same time

- `c.expectation_ps()` now also supports `ps` argument directly (pauli structures)

- Add tc version print in `tc.about()` method

- tc now supports fancy batch indexing for gates, e.g. `c.rxx([0, 1, 2], [1, 2, 3], theta=K.ones([3]))`

- Task management via group tag (when `submit_task` and `list_tasks`)

- `batch_expectation_ps` now supports local device without topology and thus unify the interface for numerical exact simulation, numerical simulation with measurement shots and QPU experiments

- introduce two stage compiling for `batch_expectation_ps` to save some compiling overhead

- Add experimental support for ODE backend pulse level control simulation/analog quantum computing

- make the pulse level control support differentiating the end time

- Add new qem module with qem methods: zne, dd and rc

Fixed

- `tc.results.counts.plot_histogram` now can dispatch kws to corresponding qiskit method

- New implementation for `c.inverse()` to partially avoid unrecognized gate name issue

- Fixed bug for `batch_expectation_ps` for jax backend

- Partially fix the SVD numerical stability bug on tf backend when using `MPSCircuit`

- List syntax for gate now supports range

0.9.1

Added

- Add `tc.TorchHardwarLayer` for shortcut layer construction of quantum hardware experiments

- Add cotengra contractor setup shortcut

- Add simplecompiler module to assite qiskit compile for better performance when targeting rz native basis

Changed

- Add compiler and cloud namespace to the global tensorcircuit namespace

- Refactor composed compiler pipeline interface to include simple_compiler, using `DefaultCompiler` for now (breaking)

- Refactor `batch_submit_template` wrapper to make it a standard abstraction layer between tc cloud infras and `batch_expectation_ps` abstraction, providing another way to adpot other cloud providers with only `batch_submit_template` implemented

Fixed

- `submit_task` return (list of dict vs dict) follows the data type of provided circuit instead of the number of circuits

- Fix qubit mapping related bug when using `batch_expectation_ps` or `simple_compile`

0.9.0

Added

- Cloud module for Tencent QCloud is now merged into the master branch and ready to release

- Add `tc.about()` to print related software versions and configs

- Torch support is upgraded to 2.0, and now support native vmap and native functional grad, and thus `vvag`. Still jit support is conflict with these functional transformations and be turned off by default

- Add `torch_interfaces_kws` that support static keyword arguments when wrapping with the interface

- Add `gpu_memory_share` function and enable it by default

- Add `scan` methods for backends

- Add example demontrating how jax compiling time can be accelerated by `jax.lax.scan`

Fixed

- Add tests and fixed some missing methods for cupy backend, cupy backend is now ready to use (though still not guaranteed)

- Fix adjoint gate numpy conversion for fixed gate case

- Sometime, tf just return IndexedSlice instead of tensor from gradient API, partially fix this in tc backend methods

Changed

- Upgraded black and mypy==1.2.0 (breaking change for developers)

0.8.0

Added

- Add `initial_mapping` circuit method to return a new circuit with given `logical_physical_mapping`

- Add `get_positional_logical_mapping` circuit method to return the mapping when only part of the qubits are measured

- `results.rem.ReadoutMit` class now support three layers of abstraction on qubits: positional, logical, and physical

- Add an example script demonstrating how tc can use external contraction path finder wirtten in Julia

- Add `cals_from_api` method for `ReadoutMit` class which can acquire the readout error information from the api

- Add experimental compiler module

- Make the compiler infra more ready for a pipeline compling

- When translating to qiskit, multicontrol gate is manipulated specifically instead of a general unitary

- Add qft blocks in template module

- Add Tensorcircuit MacOS (univerisal) installation guide

- Add KerasLayer without jit (quantum hardware compatible)

- Add regularizer support for KerasLayer

- Add methods in quantum module for translating ps list and xyz argument dict

- Add `templates.ensemble.bagging` module for bagging ensemble method

- The speed of Pauli string sum Hamiltonian generation is improved by a divide-and-conquer sum

Fixed

- Circuit nosify in noise model now support all circuit attributes apart from qubit number

- Some string warnings are fixed by using r-string

- Fix bug in `tc.quantum.quimb2qop` when mps is the input

- Fix bug in translation.py when qiskit is not installed

- Rem results after `apply_correction` is now sorted

- Fix `KerasLayer` so that it supports null weights

- Fix tf optimizer bug and optimizer compatibility issue with tf2.11

Page 1 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.