You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
bpmethod ∈ (nothing, :productsum, :minsum, :minsumlog) ||error(lazy"PyBeliefPropDecoder got an unknown belief propagation method argument. `bpmethod` must be one of :productsum, :minsum, :minsumlog.")
bpmethod ∈ (nothing, :productsum, :minsum) ||error(lazy"PyBeliefPropDecoder got an unknown belief propagation method argument. `bpmethod` must be one of :productsum, :minsum.")
bpmethod ∈ (nothing, :productsum, :minsum, :minsumlog) ||error(lazy"PyBeliefPropDecoder got an unknown belief propagation method argument. `bpmethod` must be one of :productsum, :minsum, :minsumlog.")
bpmethod ∈ (nothing, :productsum, :minsum) ||error(lazy"PyBeliefPropOSDecoder got an unknown belief propagation method argument. `bpmethod` must be one of :productsum, :minsum.")
isnothing(osdmethod) || osdmethod ∈ (:zeroorder, :exhaustive, :combinationsweep) ||error(lazy"PyBeliefPropOSDecoder got an unknown OSD method argument. `osdmethod` must be one of :zeroorder, :exhaustive, :combinationsweep.")
#elseif size(stab,1)==size(stab,2) # TODO be able to work with squara tableaux (by reversing all row operations)
48
50
# destab = tab(Destabilizer(stab))
49
51
# new{typeof(destab.phases),typeof(destab.xzs)}(destab) # TODO be smarter about type signatures here... there should be a better way
@@ -114,7 +116,7 @@ function _apply_nonthread!(stab::AbstractStabilizer, c::CliffordOperator; phases
114
116
nqubits(stab)==nqubits(c) ||throw(DimensionMismatch("The tableau and the Clifford operator need to act on the same number of qubits. Consider specifying an array of indices as a third argument to the `apply!` function to avoid this error."))
@@ -127,7 +129,7 @@ function _apply!(stab::AbstractStabilizer, c::CliffordOperator; phases::Val{B}=V
127
129
nqubits(stab)==nqubits(c) ||throw(DimensionMismatch("The tableau and the Clifford operator need to act on the same number of qubits. Consider specifying an array of indices as a third argument to the `apply!` function to avoid this error."))
128
130
s_tab =tab(stab)
129
131
c_tab =tab(c)
130
-
threadlocal=zero(c_tab[1])::PauliOperator# typeassert for JET
132
+
threadlocal= c.buffer
131
133
@inboundsfor row_stab ineachindex(s_tab)
132
134
zero!(threadlocal) # a new stabrow for temporary storage
0 commit comments