From 14e25e20a5f000993fb354e7ea82c6d76b5b9242 Mon Sep 17 00:00:00 2001 From: "Michael A. Perlin" Date: Wed, 18 Feb 2026 14:19:11 -0500 Subject: [PATCH 1/3] version bump to v0.2.8 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 2680f3464..42aa9f0b0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "qLDPC" -version = "0.2.7" +version = "0.2.8" description = "Tools for constructing and analyzing quantum low density parity check (qLDPC) codes." readme = "README.md" license = "Apache-2.0" From 7595cddb37c50a66118344a5442f6e260f929787 Mon Sep 17 00:00:00 2001 From: "Michael A. Perlin" Date: Wed, 18 Feb 2026 14:25:44 -0500 Subject: [PATCH 2/3] type fix --- src/qldpc/abstract.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/qldpc/abstract.py b/src/qldpc/abstract.py index 4c2bac1a7..686b8bf1c 100644 --- a/src/qldpc/abstract.py +++ b/src/qldpc/abstract.py @@ -1042,9 +1042,12 @@ def _split_by_pivots(self, *, allow_non_units: bool = True) -> tuple[RingArray, for col in np.argwhere(pivot_cols): row = np.argwhere(self_as_bool[:, col])[0][0] pivot_rows[row] = allow_non_units or self[row, col][0].inverse() - pivot_matrix = self[pivot_rows].view(RingArray) - non_pivot_matrix = self[~pivot_rows].view(RingArray) - return pivot_matrix, non_pivot_matrix[np.any(non_pivot_matrix, axis=1)] + pivot_matrix = self[pivot_rows] + non_pivot_matrix = self[~pivot_rows] + return ( + pivot_matrix.view(RingArray), + non_pivot_matrix[np.any(non_pivot_matrix, axis=1)].view(RingArray), + ) def _remove_linearly_dependent_rows(self) -> RingArray: """Remove rows that can be expressed as ring-linear combinations of others. From 3ae1bc0c0e365e7c4f9667e46959e76a7a12e672 Mon Sep 17 00:00:00 2001 From: "Michael A. Perlin" Date: Wed, 18 Feb 2026 14:28:08 -0500 Subject: [PATCH 3/3] type fixes --- src/qldpc/codes/common.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/qldpc/codes/common.py b/src/qldpc/codes/common.py index c4ba91927..12c4690e5 100644 --- a/src/qldpc/codes/common.py +++ b/src/qldpc/codes/common.py @@ -770,7 +770,7 @@ def get_logical_error_rate(error_rate: float) -> tuple[float, float]: " max_error_rate." ) probs = _get_error_probs_by_weight(len(self), error_rate, max_error_weight) - return 1 - probs @ fidelities, np.sqrt(probs**2 @ variances) + return 1 - float(probs @ fidelities), float(np.sqrt(probs**2 @ variances)) return get_logical_error_rate @@ -1946,7 +1946,7 @@ def get_logical_error_rate(error_rate: float) -> tuple[float, float]: " max_error_rate." ) probs = _get_error_probs_by_weight(len(self), error_rate, max_error_weight) - return 1 - probs @ fidelities, np.sqrt(probs**2 @ variances) + return 1 - float(probs @ fidelities), float(np.sqrt(probs**2 @ variances)) return get_logical_error_rate @@ -3033,7 +3033,7 @@ def get_logical_error_rate(error_rate: float) -> tuple[float, float]: " max_error_rate." ) probs = _get_error_probs_by_weight(len(self), error_rate, max_error_weight) - return 1 - probs @ fidelities, np.sqrt(probs**2 @ variances) + return 1 - float(probs @ fidelities), float(np.sqrt(probs**2 @ variances)) return get_logical_error_rate