Feature Rollout
- **Qudit computation**: QuAIRKit now support qudit systems in state evolution, circuit measurement, database generation and training. These covered functionals accept `num_systems` and `system_dim` as inputs.
- argument `num_systems` is aliased with `num_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.
- **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](https://qetlab.com/PartialTrace) and [PartialTranspose](https://qetlab.com/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 by `quairkit.ansatz.comb`.
- **State features**: Add the following properties & methods for flexible usage
- `system_dim`: User now can change the system dimensions of a `State` instance.
- `trace`, `transpose` & `permute`: same as `partial_trace`, `transpose` & `permute_systems`, except there is no need to input data or specify system dimensions.
- `sqrt` & `log`: same as `sqrtm` & `logm`
Stability Update
- **Import regulation**: Add `__init__` to all top-level modules, so that the following commands such as
python
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:
- [Hamiltonian in QuAIRKit](https://github.com/QuAIR/QuAIRKit/blob/main/tutorials/introduction/Hamiltonian.ipynb)
- [Quantum gates and quantum channels](https://github.com/QuAIR/QuAIRKit/blob/main/tutorials/introduction/operator.ipynb)
- [Quantum information tools](https://github.com/QuAIR/QuAIRKit/blob/main/tutorials/introduction/qinfo.ipynb)
- [Training parameterized quantum circuits](https://github.com/QuAIR/QuAIRKit/blob/main/tutorials/introduction/training.ipynb)
- Add 2 feature tutorials, including:
- [Neural network setup customization](https://github.com/QuAIR/QuAIRKit/blob/main/tutorials/feature/custom.ipynb)
- [Introduction to qudit quantum computing](https://github.com/QuAIR/QuAIRKit/blob/main/tutorials/feature/qudit.ipynb)
---
End of Release Notes