Added
- add `quantum.heisenberg_hamiltonian` for hamiltonian generation shortcut
- add `has_aux` parameter in backend methods `grad` and `value_and_grad`, the semantic syntax is the same as jax
- add `optimizer` class on tensorflow and jax backend, so that a minimal and unified backend agnostic optimizer interface is provided
- add `quantum.mutual_information`, add support on mixed state for `quantum.reduced_density_matrix`
- add `jvp` methods for tensorflow, jax, torch backends, and ensure pytree support in `jvp` and `vjp` interfaces for tensorflow and jax backends; also ensure complex support for `jvp` and `vjp`
- add `jacfwd` and `jacrev` for backend methods (experimental API, may have bugs and subject to changes)
Fixed
- fix `matmul` bug on tensornetwork tensorflow backend
Changed
- delete `qcode` IR for `Circuit`, use `qir` instead (breaking changes)
- basic circuit running is ok on pytorch backend with some complex support fixing