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