Releases: QuAIR/QuAIRKit
QuAIRKit 0.3.0 Release Note
Feature Rollout
- Probabilistic computation: internally supported parallel (pure & mixed state) computations for probabilistic outcomes generated by measurements or quasi-sampling:
Circuit.collapse
: renamed asCircuit.measure
. Whendesired_result
is None, calling this attribute would store all mid-circuit measurement outcomes and the corresponding probability distribution.Measure
: same as above.Circuit.locc
: add one-way LOCC (unitary) protocol to the circuit. Detailed tutorials will be released in the next version.State.index_select
: replaced byState.prob_select
, which can be called to selet the particular outcome.
- Controlled operation: QuAIRKit now support multi-control unitaries:
Circuit.control_oracle
: can inputs multi-control indices and customized projections.
For example,cir.control_oracle(u, [[0, 1], 2], P)
is equivalent to inserting the unitary
- Quantum information functions: Advanced the quairkit.qinfo module with the following changes:
mutual_information
: compute the the mutual information of a bipartite stategeneral_state_fidelity
: compute the fidelity of two subnormalized states.Nkron
: now supports trivial inputs, and has an alias namenkron
Stability Update
- All matrix and channel representation functions are compatitble with NumPy inputs and outcomputs.
- Add code examples in docstrings of functions in
database
. - Improve the efficiency and interfaces of PQCombNet, which is now imported by
quairkit.application
. - Add bug fixes.
End of Release Notes
QuAIRKit 0.2.0 Release Note
Feature Rollout
- Qudit computation: QuAIRKit now support qudit systems in state evolution, circuit measurement, database generation and training. These covered functionals accept
num_systems
andsystem_dim
as inputs.- argument
num_systems
is aliased withnum_qubits
- argument
system_dim
accepts both interger or a list of integers, representing the dimensions of all systems. Defaults to 2, i.e., all systems are qubits.
- argument
- Quantum information functions: Advanced the quairkit.qinfo module with the following changes:
partial_trace
&partial_transpose
: The interfaces of these two functions are aligned with PartialTrace and PartialTranspose in QETLAB. Moreover, these functions support qudit computations.transpose_2
is now removed from quairkit.partial_trace_discontiguous
remains unchanged, but only supports qubit systems.
is_povm
&is_pvm
: Check whether the input set of matrices form a POVM or PVM.mana_state
&mana_channel
: Compute the mana of input state/channel.stab_nullity
&stab_renyi
: Compute the stabilizer nullity/Renyi entropy of input state- Almost all functions in quairkit.qinfo support batched array inputs.
- Training: Add training net
PQCombNet
for quantum circuit architectural search, can be imported byquairkit.ansatz.comb
. - State features: Add the following properties & methods for flexible usage
system_dim
: User now can change the system dimensions of aState
instance.trace
,transpose
&permute
: same aspartial_trace
,transpose
&permute_systems
, except there is no need to input data or specify system dimensions.sqrt
&log
: same assqrtm
&logm
Stability Update
- Import regulation: Add
__init__
to all top-level modules, so that the following commands
from quairkit.database import *
from quairkit.loss import *
from quairkit.qinfo import *
would not import some unexpected variables.
- GPU speedup: Significantly improve GPU performances on batch computations.
- Add
quairkit.print_info
function that can print all packages and hardware information for sanity check. - Add bug fixes and API improvements.
Tutorials
- Rewrite 4 old tutorials to improve readability.
- Add 4 new introduction tutorials, including:
- Add 2 new feature tutorials, including:
End of Release Notes
QuAIRKit 0.1.0 Release Note
QuAIRKit absorbs the features and semantics of Paddle Quantum v2.4.0, while making the following improvements:
Technical Improvements
-
Backend Transition: transitioned the computational backend from Paddle Paddle to PyTorch, improving both stability and compatibility with existing packages.
-
Modular Codebase: refactored the codebase into five discrete modules to streamline the user experience. This modular approach facilitates easier maintenance, scalability, and collaborative development.
-
Batch Computation: internally supported batch computation for
- quantum (noisy) circuit simulation;
- expectations and measurement
Basic broadcasting rule in QuAIRKit:
Batched shape for operations | Batched shape for input states | Batched shape for output results |
---|---|---|
None | None | None |
None | n | n |
n | None | n |
n | n | n |
n | m | Error |
- Pure & Mixed Auto-transition: there is no longer needed to specify the backend
state_vector
ordensity_matrix
. QuAIRKit supports implicit backend transition between pure state and mixed state simulators.
Feature Rollout
-
Random Seed Initialization: introduced
quairkit.set_seed
to initialize a random seed across all random functionals within the platform. -
Quantum computing data: Expanded the quairkit.database module with the following data:
phase
&shift
: phase and shift operators in quantum information.universal_qudit
: a parameterized universal qudit gate, based on parameterization with respect to Gell-Mann matrices.Uf
&Of
: two quantum query models for Boolean functions.- A collection of set-based data, including:
std_basis
&qft_basis
: two quantum state bases for identity & QFT matrices, respectively.bell_basis
: a two-qubit Bell basis.heisenberg_weyl
: a set of Heisenberg-Weyl operators.phase_space_point
: a set of phase-space point operators in discrete phase space.gell_mann
: a set of Gell-Mann matrices.
-
Quantum information functions: Expanded the quairkit.qinfo module with the following functions:
is_linear
: ascertains the linearity of a given function.create_matrix
: constructs the matrix representation of a linear map between two vector spaces.create_choi_repr
: constructs the Choi representation of a linear map between two operator spaces.trace_norm
&p_norm
: Schatten norm functions.trace
: Trace of input tensor along a specified axis.hessian
&gradient
: The Hessian and general gradient of input functions.decomp_1qubit
&decomp_ctrl_1qubit
: Decomposition of (controlled) qubit-unitary operations.
Resolved Issues
- Bug Fix: corrected various typos and inaccuracies previously present in the database.
- Controlled qubit-unitary: controlled qubit-unitary operations now require parameterization from 3 to 4 parameters.
Dependencies Update
- The minimum requirement for the Python environment has been changed to Python 3.8.
- Add
pytest-xdist
for unit tests.
Tutorials
Added four tutorials for feature introductions of QuAIRKit:
- circuit: quantum circuit & basic machine learning
- measure: quantum measurement
- state: quantum state
- batch: batch computation
End of Release Notes