Skip to content

Commit 1c5a535

Browse files
committed
brought in _Flint_matrix functions from dev, used them for WR
1 parent 98aaa2f commit 1c5a535

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

src/Quantum/weight_reduction.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -633,8 +633,8 @@ function coning(H_X::T, H_Z::T, row_indices::AbstractVector{Int}; rng::AbstractR
633633

634634
issubset(row_indices, 1:n_Z) || throw(DomainError(row_indices, "Choice of Z stabilizers is out of bounds."))
635635

636-
hx = Int.(data.(H_X))
637-
hz = Int.(data.(H_Z))
636+
hx = _Flint_matrix_to_Julia_int_matrix(H_X)
637+
hz = _Flint_matrix_to_Julia_int_matrix(H_Z)
638638
f1_all = Matrix{Int}[]
639639
f0_all = Matrix{Int}[]
640640
p1_all = Matrix{Int}[]

src/utils.jl

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,21 @@ function FpmattoJulia(M::CTMatrixTypes)
275275
end
276276
FpmattoJulia(M::fpMatrix) = data.(M)
277277

278+
_Flint_matrix_element_to_Julia_int(x::fpMatrix, i::Int, j::Int) = ccall((:nmod_mat_get_entry,
279+
Oscar.Nemo.libflint), Int, (Ref{fpMatrix}, Int, Int), x, i - 1 , j - 1)
280+
281+
_Flint_matrix_element_to_Julia_int(x::FqMatrix, i::Int, j::Int) = ccall((:nmod_mat_get_entry,
282+
Oscar.Nemo.libflint), Int, (Ref{FqMatrix}, Int, Int), x, i - 1 , j - 1)
283+
284+
_Flint_matrix_to_Julia_int_matrix(A) = [ _Flint_matrix_element_to_Julia_int(A, i, j) for i in
285+
1:nrows(A), j in 1:ncols(A)]
286+
287+
# function _Flint_matrix_to_Julia_int_vector(A)
288+
# # (nr == 1 || nc == 1) || throw(ArgumentError("Cannot cast matrix to vector"))
289+
# return _Flint_matrix_element_to_Julia_int(A, 1, 1)
290+
# end
291+
_Flint_matrix_to_Julia_int_vector(A) = vec(_Flint_matrix_to_Julia_int_matrix(A))
292+
278293
function _non_pivot_cols(A::CTMatrixTypes, type::Symbol=:nsp)
279294
type [:sp, :nsp]
280295
if type == :sp

0 commit comments

Comments
 (0)