Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BoundsError when calling naive_encoding_circuit and naive_syndrome_circuit #306

Open
royess opened this issue Jul 8, 2024 · 4 comments
Open

Comments

@royess
Copy link
Contributor

royess commented Jul 8, 2024

Reproduce with lp04_7x.txt and lp04_7z.txt by the following code:

using QuantumClifford.ECC

function load_matrix_from_txt(filename)
    open(filename, "r") do io
        num_rows = countlines(io)
        seek(io, 0)
        first_line = readline(io)
        num_cols = length(split(first_line))
        matrix = zeros(Int, num_rows, num_cols)
        row_index = 1
        for line in eachline(io)
            values = parse.(Int, split(line))
            matrix[row_index, 1:num_cols] = values
            row_index += 1
        end
        return matrix
    end
end

# Example usage
hx = load_matrix_from_txt("lp04_7x.txt")
hz = load_matrix_from_txt("lp04_7z.txt")

code = CSS(hx, hz)

naive_encoding_circuit(code)

naive_syndrome_circuit(code)

Error reads

ERROR: LoadError: BoundsError: attempt to access 156-element view(::Vector{UInt8}, 176:331) with eltype UInt8 at index [157]
Stacktrace:
 [1] throw_boundserror(A::SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}, I::Tuple{Int64})
   @ Base ./abstractarray.jl:737
 [2] checkbounds
   @ ./abstractarray.jl:702 [inlined]
 [3] getindex
   @ ./subarray.jl:322 [inlined]
 [4] naive_encoding_circuit(code::CSS; undoperm::Bool)
   @ QuantumClifford.ECC ~/Documents/Repos/QuantumClifford.jl/src/ecc/circuits.jl:53
 [5] naive_encoding_circuit(code::CSS)
   @ QuantumClifford.ECC ~/Documents/Repos/QuantumClifford.jl/src/ecc/circuits.jl:18
 [6] top-level scope
   @ ~/Documents/Repos/qecc-devlog/lifted_product/reproduce_shor_encode_error.jl:26
 [7] include(fname::String)
   @ Base.MainInclude ./client.jl:489
 [8] top-level scope
   @ REPL[1]:1
in expression starting at /home/yuxuan/Documents/Repos/qecc-devlog/lifted_product/reproduce_shor_encode_error.jl:26

Note: The parity-check matrix for the code for reproduction is not full-rank.

@Krastanov
Copy link
Member

If the parity check matrices are not full rank then probably some assumptions get broken (a number of rows somewhere is being assumed to be the rank, etc.)

Probably the error is in this line: https://github.com/QuantumSavory/QuantumClifford.jl/blob/master/src/ecc/circuits.jl#L20

I guess code_k should be fixed for the CSS constructor.

In other locations we have warnings for situations like that:

k == n-s || @warn "`faults_matrix` was called on an ECC that has redundant rows (is rank-deficient). `faults_matrix` corrected for that, however this is a frequent source of mistakes and inefficiencies. We advise you remove redundant rows from your ECC."

@royess
Copy link
Contributor Author

royess commented Jul 9, 2024

I forgot to mention that this code is constructed as CSS code here for easier reproduction. In my tests, I used another code struct with the correct code_k.

function code_k(c::LPCode)
    hx, hz = parity_checks_xz(c)
    code_n(c) - rank(hx) - rank(hz) # redundant rows exist
end

The error is exactly the same for CSS and my LPCode. So, it should not be the wrong code_k that triggers the error.

@Krastanov
Copy link
Member

For now, try out the evaluation methods that do not require encoding (the ones that use just a commutativity check and do not simulate the whole encoding circuit at all)

@Fe-r-oz
Copy link
Contributor

Fe-r-oz commented Jul 9, 2024

Spotted the error, @royess, @Krastanov, It's the same error that occurs that I presented in the above message. I hope this helps!

julia> using QuantumClifford.ECC

julia> function load_matrix_from_txt(filename)
           open(filename, "r") do io
               num_rows = countlines(io)
               seek(io, 0)
               first_line = readline(io)
               num_cols = length(split(first_line))
               matrix = zeros(Int, num_rows, num_cols)
               row_index = 1
               for line in eachline(io)
                   values = parse.(Int, split(line))
                   matrix[row_index, 1:num_cols] = values
                   row_index += 1
               end
               return matrix
           end
       end

julia> hx = load_matrix_from_txt("lp04_7x.txt");

julia> hz = load_matrix_from_txt("lp04_7z.txt");

julia> code = CSS(hx, hz)
CSS(Bool[0 1 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 0], Bool[0 1 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 0])

julia> using QuantumClifford: Stabilizer

julia> code_s = Stabilizer(code)


julia> using QuantumClifford.ECC: code_n, code_k

julia> n = code_n(code_s)
175

julia> k = code_k(code_s)
7

Please see the sizes of the actual stabilizer of the code and what's the `stabilizerview, S` has  that's why there is bounds error

julia> using QuantumClifford: MixedDestabilizer

julia> md, r, permx, permz = MixedDestabilizer(code_s, undoperm=false, reportperm=true);

julia> using QuantumClifford: MixedDestabilizer, logicalxview, logicalzview, stabilizerview

julia> S = stabilizerview(md)
+ X__________________________________________________________________________⋯X_____________XX_X___XX_X___XX_X_XXX__X_XXX___XX_XX___XXX__XX_XX___XXXX___XX
+ _X_________________________________________________________________________⋯X_______________XXX____XXX____XXX___X_X____X____X_X___X____X__XX___X__X___X_
+ __X________________________________________________________________________⋯_____________XX_XX__XX_XX__XX_XX__XX_XX__XX_X__X__XXXX_X___XXXXXXXX_X_XXXX_X
+ ___X_______________________________________________________________________⋯XX______________XXX____XXX____XXXX__X_X_X__X__X_X_X_X_X____X__XX_X_X__X_X_X_
+ ____X______________________________________________________________________⋯_X____________XX__X__XX__X__XX__X_X_X____X_X____X___X__X____X____X__X___X__X
+ _____X_____________________________________________________________________⋯______________X_XX___X_XX___X_XX_XX__XX_XX__X_X___X__XXX___XXXXX__XXX_X__XXX
+ ______X____________________________________________________________________⋯_X________________X______X______X___________________________________________
+ _______X___________________________________________________________________⋯__XXX_________XX_X__XX_X_____XX_XXXX__XXXX__XX_XXXX___XXX___X_____XXXXXX___X
+ ________X__________________________________________________________________⋯____X___________XXX___XXX_X____XX___X_X___X_XX____X___X_X____X____X____X___X
+ _________X_________________________________________________________________⋯___X_________XX_XX_XX_XX____XX_XX_XX_XX_XX_XXX_XX_XXXX_XX_____XXXX_X_X_XXXX_
+ __________X________________________________________________________________⋯___XXX__________XXX___XXX_X____XXX__X_XX__X_XX____X_X_X_X___XX__X_X____X_X_X
+ ___________X_______________________________________________________________⋯__XX_X________XX__X_XX__X_X__XX___X_X___X_X____X____X__X_____X__X__X_X___X__
+ ____________X______________________________________________________________⋯__X___________X_XX__X_XX_____X_XXXX__XXXX__XXX_X__X__XXXX___X_X__XXX_X_X__XX
+ _____________X_____________________________________________________________⋯_____X____________X_____X_X_________________________________________________
+ ______________X____________________________________________________________⋯______XXX_____XX_X_XX_X___X_X___XXXX__XXX__X_X_X_XX___XX___X_XX__XXXX__XXXX_
+ _______________X___________________________________________________________⋯________X_______XXX__XXX___XXX______X_X__X_X__XX__X___X__________X__X__X__X_
 ⋮
+ _ZZ_ZZ_ZZZZ______ZZ___Z_Z___Z_Z_ZZ__ZZ__ZZ_ZZ_Z__Z___Z_Z__ZZZ__ZZ___Z___ZZZ⋯__________________________________________Z________________Z_ZZZ_ZZ_Z_ZZ__ZZ
+ _____Z___ZZ_Z_ZZ___Z__Z_____Z____Z_ZZZ_ZZZZ__ZZ_Z_______________Z___Z___ZZZ⋯___________________________________________Z_______________ZZZ_Z_Z_ZZ___Z__Z
+ ZZZ____ZZZZ_Z__Z_ZZ____Z_____ZZ___Z_ZZ_Z_ZZZZ_ZZ________________Z___Z___ZZZ⋯____________________________________________Z______________Z_ZZZ_Z___Z_____Z
+ _ZZ____ZZ_________ZZ___ZZ____ZZ___ZZ________ZZ__ZZ_________________________⋯_____________________________________________Z______________Z_________Z_Z___
+ __Z_____Z__________Z____Z_____Z____Z_________Z___Z_________________________⋯______________________________________________Z_____________Z__________ZZ___
+ _ZZZ___ZZZ____ZZ_ZZZ___ZZZ____ZZ___ZZ_____ZZZZ___ZZ__Z_Z__ZZZ__Z___________⋯_______________________________________________Z______________Z_______ZZ_ZZ_
+ _ZZZZ__ZZZZ____Z_ZZZ___ZZZZ___ZZZ__ZZZ__Z_ZZZZ___ZZZ_Z_Z__ZZZ__Z___________⋯________________________________________________Z_____________Z_______ZZ____
+ Z______Z______Z______Z_____________________________________________________⋯_________________________________________________Z__________________________
+ ZZZZ_Z_ZZZZ_Z_ZZZZ_Z_ZZZZ_Z_ZZZZ_ZZZZZ_ZZZZZ_ZZZZZ_ZZZZZZZZZZZZZ_ZZ_ZZ_ZZ_Z⋯__________________________________________________Z_________________________
+ __Z______Z______Z______Z______________________________Z__Z__Z__ZZ__Z__Z__Z_⋯___________________________________________________Z________________________
+ __ZZZ____ZZZ____ZZZ____ZZZ__ZZ_ZZ_ZZ_ZZ_ZZ_ZZ_ZZ_ZZ__Z__Z__Z__Z___Z__Z__Z__⋯____________________________________________________Z_______________________
+ __Z__Z___Z__Z___Z__Z___Z__Z_ZZ___ZZZ___ZZZ___ZZZ___ZZZ_ZZ_ZZ_ZZ_Z_ZZ_ZZ_ZZ_⋯_____________________________________________________Z______________________
+ ZZ_Z_Z_ZZ_Z_Z_ZZ_Z_Z_ZZ_Z_Z___ZZ_Z__ZZ_Z__ZZ_Z__ZZ_ZZ__Z__Z__Z__ZZZZZZZZZZZ⋯______________________________________________________Z_____________________
+ Z_Z_ZZ_Z_Z_ZZ_Z_Z_ZZ_Z_Z_ZZ__Z__ZZ_Z__ZZ_Z__ZZ_Z__ZZZ_ZZ_ZZ_ZZ_ZZZ_ZZ_ZZ_ZZ⋯_______________________________________________________Z____________________
+ ZZZ_____ZZZ_____ZZZ__Z_Z_Z___ZZ_____ZZ_____ZZ__Z__Z_____________Z___Z___ZZZ⋯________________________________________________________Z______Z_Z__Z_______

julia> code_s
+ _X___________________________X___________________________X_________________⋯______________X______X______X_______________________________________________
+ __X___________________________X___________________________X________________⋯_______________X______X______X______________________________________________
+ ___X___________________________X___________________________X_______________⋯________________X______X______X_____________________________________________
+ ____X___________________________X___________________________X______________⋯_________________X______X______X____________________________________________
+ _____X___________________________X___________________________X_____________⋯__________________X______X______X___________________________________________
+ ______X___________________________X___________________________X____________⋯___________________X______X______X__________________________________________
+ _______X___________________________X___________________________X___________⋯_____________X____________X_X_______________________________________________
+ ________X___________________________X___________________________X__________⋯______________X_____X________X______________________________________________
+ _________X___________________________X___________________________X_________⋯_______________X_____X________X_____________________________________________
+ __________X___________________________X___________________________X________⋯________________X_____X________X____________________________________________
+ ___________X___________________________X___________________________X_______⋯_________________X_____X________X___________________________________________
+ ____________X___________________________X___________________________X______⋯__________________X_____X________X__________________________________________
+ _____________X___________________________X___________________________X_____⋯___________________X_____X_X________________________________________________
+ ______________X___________________________X___________________________X____⋯_____________X___________X_____X____________________________________________
+ _______________X___________________________X___________________________X___⋯X_____________X___________X_____X___________________________________________
+ ________________X___________________________X___________________________X__⋯_X_____________X____X____________X__________________________________________
 ⋮
+ ___________________________________________________________________________⋯_Z_________Z________Z______________________Z________________________Z_______
+ ___________________________________________________________________________⋯__Z_________Z________Z______________________Z_________________Z_____________
+ ___________________________________________________________________________⋯___Z__Z_______________Z______________________Z_________________Z____________
+ ___________________________________________________________________________⋯____Z__Z_______________Z______________________Z_________________Z___________
+ ___________________________________________________________________________⋯_____Z__Z_______________Z______________________Z_________________Z__________
+ ___________________________________________________________________________⋯_________Z_______________Z_______________Z________________________Z_________
+ ___________________________________________________________________________⋯Z_________Z_______________Z_______________Z________________________Z________
+ ___________________________________________________________________________⋯__Z____Z___________________Z______________________Z________________________Z
+ ___________________________________________________________________________⋯___Z____Z___________________Z______________________Z_________________Z______
+ ___________________________________________________________________________⋯____Z____Z___________________Z______________________Z_________________Z_____
+ ___________________________________________________________________________⋯_____Z____Z___________________Z______________________Z_________________Z____
+ ___________________________________________________________________________⋯___________Z___________________Z______________________Z_________________Z___
+ ___________________________________________________________________________⋯Z___________Z___________________Z_______________Z________________________Z__
+ ___________________________________________________________________________⋯_Z____Z__________________________Z_______________Z________________________Z_
+ ___________________________________________________________________________⋯____________________________________________________________________________

same issue that is the last some rows are truncated because they end up 0

julia> size(S)
(156, 175)

julia> size(code_s)
(168, 175)

If you see the last some rows (168 - 156), they are all zero, so they don't appear in `stabiizerview` after `MixedDestabilizer` in `naive_encoding_circuit `performs` canonicalize`, But since the stabilizer of the `code` we are sending has n and k parameters that are expected to be 168 and 175, there is an error because the S only has rows up to 156 since all the rest disappeared. 

julia> H =  stab_to_gf2(canonicalize!(parity_checks(code_s)))
168×350 Matrix{Bool}:
 1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  …  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  …  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  …  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  …  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 ⋮              ⋮              ⋮              ⋮              ⋮              ⋮  ⋱  ⋮              ⋮              ⋮              ⋮              ⋮           
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  1  0  1  1  1  1  0  0  1  0  1  0  1  1  1  0  0  0  1  0  1  1  1  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     1  0  0  0  0  1  1  0  1  0  0  1  1  1  0  0  1  0  1  0  0  0  1  1  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     1  0  1  1  0  0  1  1  0  1  0  1  0  0  0  1  1  0  1  0  1  1  1  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     1  1  1  1  1  1  1  1  1  1  1  0  0  0  0  0  0  0  1  1  1  1  1  1  1
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  …  1  1  1  1  0  0  0  0  0  0  0  1  1  1  1  1  1  1  1  1  1  1  1  1  1
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  …  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  …  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

julia> H[156:168, 1:175]
13×175 Matrix{Bool}:
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  …  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  …  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  …  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

All these last rows end up to 0. Please have a look.
julia> show(H[156:168, 1:175])
Bool[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants