@@ -105,16 +105,17 @@ All paramaters are aligned with their respective papers.
105105- `r` - used for `:Cohen`
106106- `improve_cycles` - used for `IBM`
107107- `remove_and_improve_cycles` - used for `IBM`, supersedes previous parameter
108+ - `log_checking` - set to false to intentionally use an `L` that isn't a logical
108109"""
109110function homological_measurement(S:: AbstractStabilizerCodeCSS , L:: CTMatrixTypes ; style:: Symbol =
110111 :Xanadu, r:: Int = 1 , max_iters:: Int = 50000 , cellulate:: Bool = false , improve_cycles:: Bool =
111- true , remove_and_improve_cycles:: Bool = false )
112+ true , remove_and_improve_cycles:: Bool = false , log_checking :: Bool = true )
112113
113114 is_positive(r) || throw(DomainError(r, " Must be a positive integer." ))
114115 is_positive(max_iters) || throw(DomainError(max_iters, " Must be a positive integer." ))
115116 L_red = _remove_empty(L, :rows)
116117 nrows(L_red) == 1 || throw(ArgumentError(" Requires a single logical of the code." ))
117- is_logical(S, L_red) || throw(ArgumentError(" The input matrix is not a logical of the code." ))
118+ is_logical(S, L_red) || ! log_checking || throw(ArgumentError(" The input matrix is not a logical of the code." ))
118119 F = field(S)
119120 Int(order(F)) == 2 || throw(ArgumentError(" Only defined for binary codes." ))
120121 n = length(S)
@@ -164,19 +165,10 @@ function homological_measurement(S::AbstractStabilizerCodeCSS, L::CTMatrixTypes;
164165 end
165166
166167 r = ceil(Int, 1 / Cheeger_constant(_Flint_matrix_to_Julia_int_matrix(HX)))
167-
168- if type == :X
169- return _thickened_cone(S, HX, HZ, f1, f0, type, r)
170- else
171- return _thickened_cone(S, HZ, HX, f1, f0, type, r)
172- end
168+ return _thickened_cone(S, HX, HZ, f1, f0, type, r)
173169 elseif style == :Cohen
174170 HZ = zero_matrix(F, 0 , size(HX, 2 ))
175- if type == :X
176- return _thickened_cone(S, HX, HZ, f1, f0, type, r)
177- else
178- return _thickened_cone(S, HZ, HX, f1, f0, type, r)
179- end
171+ return _thickened_cone(S, HX, HZ, f1, f0, type, r)
180172 else
181173 throw(ArgumentError(" Unknown `style` parameter $style " ))
182174 end
0 commit comments