pyrauli 0.3.0__tar.gz → 0.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyrauli-0.3.0 → pyrauli-0.3.1}/PKG-INFO +1 -1
- {pyrauli-0.3.0 → pyrauli-0.3.1}/pyproject.toml +1 -1
- {pyrauli-0.3.0 → pyrauli-0.3.1}/src/pyrauli/__init__.py +2 -2
- {pyrauli-0.3.0 → pyrauli-0.3.1}/tests/test_truncator.py +14 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/.clang-format +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/.github/workflows/benchmark.yml +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/.github/workflows/ci.yml +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/.github/workflows/doc.yml +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/.github/workflows/pypi.yml +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/.gitignore +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/CMakeLists.txt +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/LICENSE +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/README.md +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/benchmarks/test_benchmark_circuit.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/benchmarks/test_benchmark_observable.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/benchmarks/test_benchmark_qiskit.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/docs/.gitignore +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/docs/Makefile +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/docs/_static/.gitkeep +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/docs/_templates/.gitkeep +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/docs/conf.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/docs/explanation/theory.rst +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/docs/guides/how_to_circuit.rst +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/docs/guides/how_to_complexity.rst +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/docs/guides/how_to_noise.rst +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/docs/guides/how_to_observables.rst +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/docs/guides/how_to_qiskit.rst +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/docs/index.rst +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/docs/make.bat +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/docs/reference/api.rst +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/docs/requirements.txt +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/docs/tutorials/getting_started.rst +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/examples/qiskit_backend.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/src/pyrauli/_core/bindings.cpp +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/src/pyrauli/backend.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/src/pyrauli/converters.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/src/pyrauli/estimator.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/tests/snippets/test_basic_circuit.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/tests/snippets/test_observable_evolution.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/tests/snippets/test_qiskit_backend_usage.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/tests/snippets/test_readme.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/tests/test_backend.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/tests/test_circuit.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/tests/test_circuit_qiskit.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/tests/test_noise_model.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/tests/test_observable.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/tests/test_observable_qiskit.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/tests/test_pauli.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/tests/test_policies.py +0 -0
- {pyrauli-0.3.0 → pyrauli-0.3.1}/tests/test_pyrauli.py +0 -0
@@ -5,7 +5,7 @@ build-backend = "scikit_build_core.build"
|
|
5
5
|
|
6
6
|
[project]
|
7
7
|
name = "pyrauli"
|
8
|
-
version = "0.3.
|
8
|
+
version = "0.3.1"
|
9
9
|
description = "A very fast and easy to use Quantum circuit simulator relying on Pauli propagation. Compatible with qiskit."
|
10
10
|
readme = "README.md"
|
11
11
|
requires-python = ">=3.9"
|
@@ -8,7 +8,7 @@ simulation, powered by the C++ `propauli` library.
|
|
8
8
|
from ._core import (
|
9
9
|
PauliEnum, PauliGate, CliffordGate, UnitalNoise, QGate, Pauli, PauliTerm,
|
10
10
|
Observable, Noise, NoiseModel, Truncator, CoefficientTruncator,
|
11
|
-
WeightTruncator, NeverTruncator, LambdaTruncator, MultiTruncator,
|
11
|
+
WeightTruncator, KeepNTruncator, NeverTruncator, LambdaTruncator, MultiTruncator,
|
12
12
|
SchedulingPolicy, NeverPolicy, AlwaysBeforeSplittingPolicy,
|
13
13
|
AlwaysAfterSplittingPolicy, Circuit, OperationType, Timing,
|
14
14
|
SimulationState, CompressionResult, LambdaPolicy,
|
@@ -17,7 +17,7 @@ from ._core import (
|
|
17
17
|
__all__ = [
|
18
18
|
"PauliEnum", "PauliGate", "CliffordGate", "UnitalNoise", "QGate", "Pauli",
|
19
19
|
"PauliTerm", "Observable", "Noise", "NoiseModel", "Truncator",
|
20
|
-
"CoefficientTruncator", "WeightTruncator", "NeverTruncator",
|
20
|
+
"CoefficientTruncator", "WeightTruncator", "KeepNTruncator", "NeverTruncator",
|
21
21
|
"LambdaTruncator", "MultiTruncator", "SchedulingPolicy", "NeverPolicy",
|
22
22
|
"AlwaysBeforeSplittingPolicy", "AlwaysAfterSplittingPolicy", "Circuit",
|
23
23
|
"OperationType", "Timing", "SimulationState", "CompressionResult",
|
@@ -6,6 +6,7 @@ from pyrauli import (
|
|
6
6
|
Circuit,
|
7
7
|
CoefficientTruncator,
|
8
8
|
WeightTruncator,
|
9
|
+
KeepNTruncator,
|
9
10
|
LambdaTruncator,
|
10
11
|
MultiTruncator,
|
11
12
|
AlwaysAfterSplittingPolicy
|
@@ -37,6 +38,19 @@ def test_weight_truncator_on_observable():
|
|
37
38
|
assert len(obs) == 1
|
38
39
|
assert obs[0] == PauliTerm("IIII", 0.5)
|
39
40
|
|
41
|
+
def test_keepn_truncator_on_observable():
|
42
|
+
"""Tests that terms with high Pauli weight are removed."""
|
43
|
+
obs = Observable([PauliTerm("IIII", 0.5), PauliTerm("ZYXI", 0.11), PauliTerm("YYYY", -0.5), PauliTerm("IXYZ", 0.1)])
|
44
|
+
|
45
|
+
truncator = KeepNTruncator(2)
|
46
|
+
|
47
|
+
removed_count = obs.truncate(truncator)
|
48
|
+
|
49
|
+
assert removed_count == 2
|
50
|
+
assert len(obs) == 2
|
51
|
+
assert obs[0] == PauliTerm("IIII", 0.5)
|
52
|
+
assert obs[1] == PauliTerm("YYYY", -0.5)
|
53
|
+
|
40
54
|
def test_lambda_truncator_on_observable_def():
|
41
55
|
"""Tests truncation based on a custom Python function."""
|
42
56
|
# This predicate removes any term containing a 'Y'
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|