Introducing roqoqo
This release marks a major breaking change in qoqo.
The fundamental quantum-circuit-representation library has been ported to rust and renamed roqoqo.
qoqo has become the python interface of roqoqo.
Qoqo can still be obtained from pip and used as a python library in a pure python context without the need for a rust toolchain. (For targets built with github CI).
Roqoqo can also be used as a stand-alone rust crate without python integration.
Further breaking changes in the design include the following:
- Operations are designed immutable, internal fields cannot be overwritten, substitute_parameters and remap_qubits return clones of the original Operation with the corresponding substitution applied
- The same applies to substitute_parameters and remap_qubits for the Circuit module
- The Define Operation has been split into DefinitionBit, DefinitionFloat and DefinitionComplex
- All Two-Qubit-Gates use control and target to denote the two involved qubits
- Constructing MeasurementInputs has been streamlined, Pauli products and expectation values can be added one by one
- Support for non-linear expectation values has been added
- Support for measurements that only return the classical register has been added
- Regression: The definition of a base class for quantum devices has been temporarily removed to allow a more general redesign of device descriptions