Skip to content

Commit df90763

Browse files
authored
Merge branch 'dev' into dev
2 parents cbec9b4 + 9c61033 commit df90763

23 files changed

+1419
-786
lines changed

Manifest.toml

Lines changed: 163 additions & 346 deletions
Large diffs are not rendered by default.

ext/JLD2Ext/JLD2Ext.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module JLD2Ext
22

33
import CodingTheory
44

5-
import CodingTheory: TriangularColorCode488, TriangularColorCode666, PlanarSurfaceCode3D, PlanarSurfaceCode3D_X, ToricCode3D, StabilizerCode, set_logicals!
5+
import CodingTheory: TriangularColorCode488, TriangularColorCode666, StabilizerCode, set_logicals!, set_minimum_distance! #PlanarSurfaceCode3D, PlanarSurfaceCode3D_X, ToricCode3D,
66

77
import JLD2
88

ext/JLD2Ext/Quantum/misc_known_codes.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ function CodingTheory.TriangularColorCode488(d::Int)
4040
F = CodingTheory.Oscar.GF(2)
4141
Q = StabilizerCode(CodingTheory.Oscar.matrix(F, S))
4242
set_logicals!(Q, CodingTheory.Oscar.matrix(F, l))
43+
set_minimum_distance!(Q, d)
4344
return Q
4445
end
4546

@@ -82,6 +83,7 @@ function CodingTheory.TriangularColorCode666(d::Int)
8283
F = CodingTheory.Oscar.GF(2)
8384
Q = StabilizerCode(CodingTheory.Oscar.matrix(F, S))
8485
set_logicals!(Q, CodingTheory.Oscar.matrix(F, l))
86+
set_minimum_distance!(Q, d)
8587
return Q
8688
end
8789

@@ -133,7 +135,7 @@ function CodingTheory.PlanarSurfaceCode3D_X(d::Int)
133135
X_logs = load_alist(joinpath(path, "surface3D_9_lx.alist"))
134136
X_meta = load_alist(joinpath(path, "surface3D_9_mx.alist"))
135137
end
136-
F = CodingTheory.Oscar.GF(2)
138+
F = CodingTheory.Oscar.Nemo.Native.GF(2)
137139
return CodingTheory.Oscar.matrix(F, X_stabs), CodingTheory.Oscar.matrix(F, X_logs),
138140
CodingTheory.Oscar.matrix(F, X_meta)
139141
end
@@ -206,7 +208,7 @@ function CodingTheory.ToricCode3D_X(d::Int)
206208
X_logs = load_alist(joinpath(path, "toric3D_13_lx.alist"))
207209
X_meta = load_alist(joinpath(path, "toric3D_13_mx.alist"))
208210
end
209-
F = CodingTheory.Oscar.GF(2)
211+
F = CodingTheory.Oscar.Nemo.Native.GF(2)
210212
return CodingTheory.Oscar.matrix(F, X_stabs), CodingTheory.Oscar.matrix(F, X_logs),
211213
CodingTheory.Oscar.matrix(F, X_meta)
212214
end

src/Classical/linear_code.jl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,10 @@ minimum_distance_upper_bound(C::AbstractLinearCode) = C.u_bound
291291
292292
Return `true` if code is maximum distance separable (MDS).
293293
"""
294-
is_MDS(C::AbstractLinearCode) = ismissing(C.d) ? missing : C.d != Singleton_bound(C.n, C.k)
294+
function is_MDS(C::AbstractLinearCode)
295+
ismissing(C.d) && minimum_distance(C)
296+
return C.d == Singleton_bound(C.n, C.k)
297+
end
295298

296299
"""
297300
number_correctable_errors(C::AbstractLinearCode)

src/Classical/new_codes_from_old.jl

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -517,16 +517,16 @@ function subcode_of_dimension_between_codes(C1::AbstractLinearCode, C2::Abstract
517517
end
518518

519519
"""
520-
expanded_code(C::AbstractLinearCode, K::CTFieldTypes, β::Vector{<:CTFieldElem})
520+
expanded_code(C::AbstractLinearCode, K::CTFieldTypes, β::Vector{FqFieldElem})
521521
522522
Return the expanded code of `C` constructed by exapnding the generator matrix
523523
to the subfield `K` using the basis `β` for `field(C)` over `K`.
524524
"""
525-
function expanded_code(C::AbstractLinearCode, K::CTFieldTypes, β::Vector{<:CTFieldElem})
525+
function expanded_code(C::AbstractLinearCode, K::CTFieldTypes, β::Vector{FqFieldElem})
526526
flag, λ = is_basis(C.F, K, β)
527527
flag || throw(ArgumentError("β is not a basis for the extension"))
528528

529-
# D = _expansiondict(C.F, K, λ)
529+
# D = _expansion_dict(C.F, K, λ)
530530
# m = div(degree(C.F), degree(K))
531531

532532
G = generator_matrix(C)
@@ -552,6 +552,7 @@ function expanded_code(C::AbstractLinearCode, K::CTFieldTypes, β::Vector{<:CTFi
552552
end
553553
H_exp = expand_matrix(H_new, K, λ)
554554
# H_exp = _expandmatrix(H_new, D, m)
555+
return G_exp
555556

556557
C_new = LinearCode(G_exp, H_exp)
557558
C_new.G = change_base_ring(K, C_new.G)

src/CodingTheory.jl

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ module CodingTheory
99
using AutoHashEquals
1010
using Graphs
1111
import Graphs as Grphs
12-
# using Plots
13-
# import Grphs: nv, incidence_matrix, vertices, inneighbors, add_edge!, add_vertex!
1412
using Oscar
1513
using Combinatorics
1614
using .Threads
@@ -33,16 +31,22 @@ import Base: circshift, iseven, show, length, in, zeros, ⊆, /, *, ==, ∩, +,
3331
import Combinatorics: powerset
3432
import DataStructures: capacity
3533

36-
# TODO: don't want this here
37-
# GAP.Packages.load("LINS");
34+
# tilings.jl
35+
LINS_flag_install = Packages.install("LINS")
36+
if LINS_flag_install
37+
LINS_flag = Packages.load("LINS")
38+
LINS_flag || @warn "Unable to load the GAP packages LINS."
39+
else
40+
@warn "Unable to install the GAP packages LINS."
41+
end
3842

3943
#############################
4044
# types.jl
4145
#############################
4246

4347
const CTFieldTypes = FinField
4448
const CTFieldElem = FinFieldElem
45-
const CTMatrixTypes = MatElem{<:CTFieldElem}
49+
const CTMatrixTypes = Union{fpMatrix, FqMatrix} # MatElem{<:CTFieldElem}
4650
const CTPolyRing = PolyRing{<:CTFieldElem}
4751
const CTPolyRingElem = PolyRingElem{<:CTFieldElem}
4852
const CTGroupAlgebra = GroupAlgebraElem{fpFieldElem, GroupAlgebra{fpFieldElem, FinGenAbGroup, FinGenAbGroupElem}}

0 commit comments

Comments
 (0)