Graphix

Latest version: v0.2.14

Safety actively analyzes 630450 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

0.2.12

Added

- Transpiled circuits can now have "measure" gates, introduced with
the `circ.m(qubit, plane, angle)` method. The measured qubit cannot
be used in any subsequent gate.
- Added `gflow.find_pauliflow`, `gflow.verify_pauliflow` and `pauliflow_from_pattern` methods (117)
- Pauli-flow finding algorithm (117)
- workflow for isort, codecov (148, 147)

Fixed
- Fix output node order sorting bug in Pauli preprocessing `measure_pauli` (145)

Changed

- The transpiler now returns a `TranspileResult` dataclass: the
pattern is available in the `pattern` field, and the field
`classical_outputs` contains the index where the classical measures
can be found in the `results` array of the simulator.
- The circuit simulator now returns a `SimulateResult` dataclass: the
state vector is available in the `statevec` field, and the field
`classical_measures` contains the results of the measure gates.
- Patterns are now allowed to measure all their nodes, and have an
empty output set.
- Completely migrated to pytest, no `unittest` usage remains (134)

0.2.11

Added

- Added flow and gflow verifiers ([99](https://github.com/TeamGraphix/graphix/issues/99)).
- Added `gflow.flow_from_pattern` method.
- Added noisy MBQC simulation backend.
- `sim.density_matrix` module added for density matrix simulation backend, which is incorporated into the `simulator.PatternSimulator` interface.
- `noise_models` module, containing abstractclass `NoiseModel` and a simplified model (no noise) `NoiseLessNoiseModel`, to define operaion-specfic channels (e.g. 'N' and 'E' commands have separate noise models expressed by Kraus channels).
- `channels` module, defining `KrausChannel` class.
- `random_objects` and `linalg_validations` module for math support: random state, random unitary, random maps, matrix validations for channel definition.


Fixed

- Fixed bug in index permutation within `linalg.MatGF2` and `gflow.find_gflow`.
- Fixed `gflow.gflow_from_pattern` method.

Changed

- Renamed methods; `gflow.flow` and `gflow.gflow` are now `gflow.find_flow` and `gflow.find_gflow`, respectively.
- `Pattern.seq` is renamed into a private field `Pattern.__seq` and
`Pattern.Nnode` is now a read-only property. `Pattern` constructor
now only takes an optional list of `input_nodes`, and can only be
updated via `add` and `extend`. `Pattern` are now iterable and `len`
is now defined for patterns: we should write `for command in pattern:`
instead of `for command in pattern.seq:` and `len(pattern)` instead
of `len(pattern.seq)`. `N` commands are no longer added by `Pattern`
constructor and should be added explicitly after the instantiation.
- Changed the behavior of visualization in the `GraphVisualizer` class.
Prepared a `visualize` method that visualizes based on the graph only,
and a `visualize_from_pattern` that visualizes based on the pattern.
Both search for gflow or flow, and if found, plot them. If not found,
in the case of from the graph, only the graph is drawn, and in the case
of from the pattern, both the graph and all correction sets are drawn.
- Removed `paddle` from benchmarks following github dependabot alert.
- `PatternSimulator` takes optional argument noise_model during init, to specify noise model for `densitymatrix` simualtion.

0.2.10

Added

- Added `rustworkx` as a backend for the graph state simulator
- Only `networkx` backend was available for pattern optimization.
By setting the `use_rustworkx` option to True while using `Pattern.perform_pauli_measurements()`,
graphix will run pattern optimization using `rustworkx` (98)
- Added `.ccx` and `.swap` methods to `graphix.Circuit`.

Fixed

- Fixed gflow-based graph visualization (107)

0.2.9

Added

- internal updates of gflow and linear algebra functionalities:
- A new option `mode` in `gflow.gflow`, specifying whether to obtain all possible maximally delayed gflow or not (80)
- New `MatGF2` class that computes elementary operations and Gauss-Jordan elimination on GF2 field, for faster gflow-finding (80)

Changed

- Removed `z3-solver` and added `galois` and `sympy` in `requirements.txt` (80)

Removed

- Removed `timeout` optional arguments from `gflow.flow` and `gflow.gflow`.

Fixed

- Bugfix conditional branch in `gflow.gflowaux` (80)

0.2.8

Added

- Add support for python 3.11

0.2.7

Added

- Visualization tool of resource state for a pattern, with flow or gflow structures (78)
- Visualize the resource state by calling `Pattern.draw_graph()`
- Tool to extract fusion network from the resource state of a pattern (87).

Changed

Fixed

Page 1 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.