Skip to content

Commit 7a52e9c

Browse files
authored
Runic formatter (#29)
* update format checker * runic format * bump version * delete JuliaFormatter.toml
1 parent 56d6e3b commit 7a52e9c

File tree

12 files changed

+143
-160
lines changed

12 files changed

+143
-160
lines changed

.JuliaFormatter.toml

Lines changed: 0 additions & 1 deletion
This file was deleted.

.github/workflows/FormatCheck.yml

Lines changed: 6 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -8,40 +8,11 @@ on:
88
- 'release-'
99
tags: '*'
1010
pull_request:
11+
branches:
12+
- 'main'
13+
- 'master'
1114

1215
jobs:
13-
build:
14-
runs-on: ${{ matrix.os }}
15-
strategy:
16-
matrix:
17-
version:
18-
- '1' # automatically expands to the latest stable 1.x release of Julia
19-
os:
20-
- ubuntu-latest
21-
arch:
22-
- x64
23-
steps:
24-
- uses: julia-actions/setup-julia@latest
25-
with:
26-
version: ${{ matrix.version }}
27-
arch: ${{ matrix.arch }}
28-
29-
- uses: actions/checkout@v4
30-
- name: Install JuliaFormatter and format
31-
# This will use the latest version by default but you can set the version like so:
32-
#
33-
# julia -e 'using Pkg; Pkg.add(PackageSpec(name="JuliaFormatter", version="0.13.0"))'
34-
run: |
35-
julia -e 'using Pkg; Pkg.add(PackageSpec(name="JuliaFormatter"))'
36-
julia -e 'using JuliaFormatter; format(".", verbose=true)'
37-
- name: Format check
38-
run: |
39-
julia -e '
40-
out = Cmd(`git diff --name-only`) |> read |> String
41-
if out == ""
42-
exit(0)
43-
else
44-
@error "Some files have not been formatted !!!"
45-
write(stdout, out)
46-
exit(1)
47-
end'
16+
formatcheck:
17+
name: "Format Check"
18+
uses: "QuantumKitHub/QuantumKitHubActions/.github/workflows/FormatCheck.yml@main"

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "CategoryData"
22
uuid = "8fccf25a-f50e-468c-8fba-3cb130506274"
33
authors = ["Lukas Devos", "Jacob Bridgeman"]
4-
version = "0.3.2"
4+
version = "0.3.3"
55

66
[deps]
77
Downloads = "f43a241f-c20a-4ad4-852c-f6b1247861c6"

src/aliases.jl

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,38 @@
11
# Rep[Zₙ] ? Vec[Zₙ]
2-
const Z2 = PMFC{2,1,0,1,0,0}
3-
const Z3 = PMFC{3,1,2,1,0,0}
4-
const Z4 = PMFC{4,1,2,1,0,0}
5-
const Z5 = PMFC{5,1,4,1,0,0}
6-
const Z6 = PMFC{6,1,4,1,0,0}
2+
const Z2 = PMFC{2, 1, 0, 1, 0, 0}
3+
const Z3 = PMFC{3, 1, 2, 1, 0, 0}
4+
const Z4 = PMFC{4, 1, 2, 1, 0, 0}
5+
const Z5 = PMFC{5, 1, 4, 1, 0, 0}
6+
const Z6 = PMFC{6, 1, 4, 1, 0, 0}
77

8-
const Z2xZ2 = PMFC{4,1,0,1,0,0}
8+
const Z2xZ2 = PMFC{4, 1, 0, 1, 0, 0}
99

1010
# Rep[Dₙ]
11-
const RepD3 = PMFC{3,1,0,2,0,0}
12-
const RepD4 = PMFC{5,1,0,1,3,0}
13-
const RepD5 = PMFC{4,1,0,3,0,0}
14-
const RepD6 = PMFC{6,1,0,2,0,0}
15-
const RepD7 = PMFC{5,1,0,4,0,0}
11+
const RepD3 = PMFC{3, 1, 0, 2, 0, 0}
12+
const RepD4 = PMFC{5, 1, 0, 1, 3, 0}
13+
const RepD5 = PMFC{4, 1, 0, 3, 0, 0}
14+
const RepD6 = PMFC{6, 1, 0, 2, 0, 0}
15+
const RepD7 = PMFC{5, 1, 0, 4, 0, 0}
1616

1717
# Vec[Dₙ]
18-
const VecD3 = UFC{6,1,2,1,0}
18+
const VecD3 = UFC{6, 1, 2, 1, 0}
1919

2020
# Rep[Sₙ]
2121
const RepS3 = RepD3
22-
const RepS4 = PMFC{5,1,0,6,1,0}
22+
const RepS4 = PMFC{5, 1, 0, 6, 1, 0}
2323

2424
# Vec[Sₙ]
2525
const VecS3 = VecD3
2626

2727
# Haagerup
28-
@objectnames H1 = UFC{4,2,0,1,0} I μ η ν
29-
@objectnames H2 = UFC{6,1,2,8,2} I α α² ρ αρ α²ρ
30-
@objectnames H3 = UFC{6,1,2,8,3} I α α² ρ αρ α²ρ
28+
@objectnames H1 = UFC{4, 2, 0, 1, 0} I μ η ν
29+
@objectnames H2 = UFC{6, 1, 2, 8, 2} I α α² ρ αρ α²ρ
30+
@objectnames H3 = UFC{6, 1, 2, 8, 3} I α α² ρ αρ α²ρ
3131

3232
# Centers
3333
Base.getindex(::CenterTable, ::Type{VecS3}) = ZVecS3
3434
@objectnames ZVecS3 = ZVecS3 A B C F G H D E
3535

3636
# Varia
37-
@objectnames Fib = PMFC{2,1,0,2,0,0} I τ
38-
@objectnames Ising = PMFC{3,1,0,1,1,3} I ψ σ
37+
@objectnames Fib = PMFC{2, 1, 0, 2, 0, 0} I τ
38+
@objectnames Ising = PMFC{3, 1, 0, 1, 1, 3} I ψ σ

src/artifacts.jl

Lines changed: 63 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ function list_fusionrings()
77
m = match(r"FR_(?<R>\d+)_(?<M>\d+)_(?<N>\d+)_(?<I>\d+).txt", file)
88
if !isnothing(m)
99
R, M, N, I = parse.(Int, (m[:R], m[:M], m[:N], m[:I]))
10-
push!(rings, FR{R,M,N,I})
10+
push!(rings, FR{R, M, N, I})
1111
else
1212
try
1313
push!(rings, eval(Meta.parse(splitext(file)[1])))
@@ -26,7 +26,7 @@ function list_fusioncategories()
2626
m = match(r"FR_(?<R>\d+)_(?<M>\d+)_(?<N>\d+)_(?<I>\d+)_(?<D>\d+).txt", file)
2727
if !isnothing(m)
2828
R, M, N, I, D = parse.(Int, (m[:R], m[:M], m[:N], m[:I], m[:D]))
29-
push!(categories, UFC{R,M,N,I,D})
29+
push!(categories, UFC{R, M, N, I, D})
3030
else
3131
try
3232
push!(categories, eval(Meta.parse(splitext(file)[1])))
@@ -42,11 +42,12 @@ function list_braidedcategories()
4242
foldername = joinpath(artifact_path, "Rsymbols")
4343
categories = Vector{Type{<:BraidedCategory}}()
4444
for file in readdir(foldername)
45-
m = match(r"FR_(?<R>\d+)_(?<M>\d+)_(?<N>\d+)_(?<I>\d+)_(?<D1>\d+)_(?<D2>\d+).txt",
46-
file)
45+
m = match(
46+
r"FR_(?<R>\d+)_(?<M>\d+)_(?<N>\d+)_(?<I>\d+)_(?<D1>\d+)_(?<D2>\d+).txt", file
47+
)
4748
if !isnothing(m)
4849
R, M, N, I, D₁, D₂ = parse.(Int, (m[:R], m[:M], m[:N], m[:I], m[:D1], m[:D2]))
49-
push!(categories, PMFC{R,M,N,I,D₁,D₂})
50+
push!(categories, PMFC{R, M, N, I, D₁, D₂})
5051
else
5152
try
5253
push!(categories, eval(Meta.parse(splitext(file)[1])))
@@ -61,9 +62,11 @@ end
6162
# Nsymbols
6263
# --------
6364

64-
function N_artifact(::Type{F}) where {F<:Union{FR,UFC,PMFC}}
65-
return joinpath(artifact_path, "Nsymbols",
66-
"FR_$(rank(F))_$(multiplicity(F))_$(selfduality(F))_$(ring_index(F)).txt")
65+
function N_artifact(::Type{F}) where {F <: Union{FR, UFC, PMFC}}
66+
return joinpath(
67+
artifact_path, "Nsymbols",
68+
"FR_$(rank(F))_$(multiplicity(F))_$(selfduality(F))_$(ring_index(F)).txt"
69+
)
6770
end
6871

6972
const N_format = r"(?<a>\d+) (?<b>\d+) (?<c>\d+) (?<N>\d+)"
@@ -80,7 +83,7 @@ function parse_Nsymbol(line)
8083
return a, b, c, N
8184
end
8285

83-
function extract_Nsymbol(::Type{F}) where {F<:FusionRing}
86+
function extract_Nsymbol(::Type{F}) where {F <: FusionRing}
8487
R = rank(F)
8588
filename = N_artifact(F)
8689
isfile(filename) || throw(LoadError(filename, 0, "Nsymbol file not found for $F"))
@@ -92,8 +95,9 @@ function extract_Nsymbol(::Type{F}) where {F<:FusionRing}
9295
return N_array
9396
end
9497

95-
@generated function TensorKitSectors.Nsymbol(a::Object{F}, b::Object{F},
96-
c::Object{F}) where {F<:FusionRing}
98+
@generated function TensorKitSectors.Nsymbol(
99+
a::Object{F}, b::Object{F}, c::Object{F}
100+
) where {F <: FusionRing}
97101
local N_array
98102
try
99103
N_array = extract_Nsymbol(F)
@@ -110,9 +114,11 @@ end
110114
# Fsymbols
111115
# --------
112116

113-
function F_artifact(::Type{F}) where {F<:Union{UFC,PMFC}}
114-
return joinpath(artifact_path, "Fsymbols",
115-
"FR_$(rank(F))_$(multiplicity(F))_$(selfduality(F))_$(ring_index(F))_$(category_index(F)).txt")
117+
function F_artifact(::Type{F}) where {F <: Union{UFC, PMFC}}
118+
return joinpath(
119+
artifact_path, "Fsymbols",
120+
"FR_$(rank(F))_$(multiplicity(F))_$(selfduality(F))_$(ring_index(F))_$(category_index(F)).txt"
121+
)
116122
end
117123

118124
const F_format = r"(?<a>\d+) (?<b>\d+) (?<c>\d+) (?<d>\d+) (?<α>\d+) (?<e>\d+) (?<β>\d+) (?<μ>\d+) (?<f>\d+) (?<ν>\d+) (?<re>-?\d+(\.\d+)?) (?<im>-?\d+(\.\d+)?)"
@@ -121,17 +127,17 @@ function parse_Fsymbol(line)
121127
m = match(F_format, line)
122128
local labels, val
123129
try
124-
labels = parse.(Int,
125-
(m[:a], m[:b], m[:c], m[:d], m[], m[:e], m[], m[], m[:f],
126-
m[]))
130+
labels = parse.(
131+
Int, (m[:a], m[:b], m[:c], m[:d], m[], m[:e], m[], m[], m[:f], m[])
132+
)
127133
val = complex(parse.(Float64, (m[:re], m[:im]))...)
128134
catch
129135
throw(Meta.ParseError("invalid F pattern: $m"))
130136
end
131137
return labels..., val
132138
end
133139

134-
function extract_Fsymbol(::Type{F}) where {F<:FusionCategory}
140+
function extract_Fsymbol(::Type{F}) where {F <: FusionCategory}
135141
R = rank(F)
136142
M = multiplicity(F)
137143
filename = F_artifact(F)
@@ -146,7 +152,7 @@ function extract_Fsymbol(::Type{F}) where {F<:FusionCategory}
146152
end
147153
return isreal(F_array) ? convert(SparseArray{Float64}, F_array) : F_array
148154
else
149-
F_dict = Dict{Tuple{Int,Int,Int,Int,Int,Int},SparseArray{ComplexF64,4}}()
155+
F_dict = Dict{Tuple{Int, Int, Int, Int, Int, Int}, SparseArray{ComplexF64, 4}}()
150156
for line in eachline(filename)
151157
a, b, c, d, α, e, β, μ, f, ν, val = parse_Fsymbol(line)
152158
if !Base.haskey(F_dict, (a, b, c, d, e, f))
@@ -158,20 +164,21 @@ function extract_Fsymbol(::Type{F}) where {F<:FusionCategory}
158164
end
159165
end
160166

161-
function generate_Farray(::Type{F}, a::Int, b::Int, c::Int, d::Int, e::Int,
162-
f::Int) where {F<:FusionCategory}
163-
a, b, c, d, e, f = Object{F}(a), Object{F}(b), Object{F}(c), Object{F}(d),
164-
Object{F}(e), Object{F}(f)
167+
function generate_Farray(
168+
::Type{F}, a::Int, b::Int, c::Int, d::Int, e::Int, f::Int
169+
) where {F <: FusionCategory}
170+
a, b, c, d, e, f = Object{F}(a), Object{F}(b), Object{F}(c), Object{F}(d), Object{F}(e), Object{F}(f)
165171
N1 = Nsymbol(a, b, e)
166172
N2 = Nsymbol(e, c, d)
167173
N3 = Nsymbol(b, c, f)
168174
N4 = Nsymbol(a, f, d)
169-
return SparseArray{ComplexF64,4}(undef, (N1, N2, N3, N4))
175+
return SparseArray{ComplexF64, 4}(undef, (N1, N2, N3, N4))
170176
end
171177

172-
@generated function TensorKitSectors.Fsymbol(a::Object{F}, b::Object{F}, c::Object{F},
173-
d::Object{F}, e::Object{F},
174-
f::Object{F}) where {F<:FusionCategory}
178+
@generated function TensorKitSectors.Fsymbol(
179+
a::Object{F}, b::Object{F}, c::Object{F},
180+
d::Object{F}, e::Object{F}, f::Object{F}
181+
) where {F <: FusionCategory}
175182
local F_array
176183
try
177184
F_array = extract_Fsymbol(F)
@@ -192,7 +199,7 @@ end
192199
N4 = Nsymbol(a, f, d)
193200

194201
(N1 == 0 || N2 == 0 || N3 == 0 || N4 == 0) &&
195-
return SparseArray{ComplexF64,4}(undef, (N1, N2, N3, N4))
202+
return SparseArray{ComplexF64, 4}(undef, (N1, N2, N3, N4))
196203

197204
return $(F_array)[(a.id, b.id, c.id, d.id, e.id, f.id)]
198205
end
@@ -202,9 +209,11 @@ end
202209
# Rsymbols
203210
# --------
204211

205-
function R_artifact(::Type{F}) where {F<:PMFC}
206-
return joinpath(artifact_path, "Rsymbols",
207-
"FR_$(rank(F))_$(multiplicity(F))_$(selfduality(F))_$(ring_index(F))_$(category_index(F))_$(braid_index(F)).txt")
212+
function R_artifact(::Type{F}) where {F <: PMFC}
213+
return joinpath(
214+
artifact_path, "Rsymbols",
215+
"FR_$(rank(F))_$(multiplicity(F))_$(selfduality(F))_$(ring_index(F))_$(category_index(F))_$(braid_index(F)).txt"
216+
)
208217
end
209218

210219
const R_format = r"(?<a>\d+) (?<b>\d+) (?<c>\d+) (?<μ>\d+) (?<ν>\d+) (?<re>-?\d+(\.\d+)?) (?<im>-?\d+(\.\d+)?)"
@@ -221,7 +230,7 @@ function parse_Rsymbol(line)
221230
return labels..., val
222231
end
223232

224-
function extract_Rsymbol(::Type{F}) where {F<:BraidedCategory}
233+
function extract_Rsymbol(::Type{F}) where {F <: BraidedCategory}
225234
R = rank(F)
226235
filename = R_artifact(F)
227236
isfile(filename) || throw(LoadError(filename, 0, "Rsymbol file not found for $F"))
@@ -235,7 +244,7 @@ function extract_Rsymbol(::Type{F}) where {F<:BraidedCategory}
235244
end
236245
return isreal(R_array) ? convert(SparseArray{Float64}, R_array) : R_array
237246
else
238-
R_dict = Dict{Tuple{Int,Int,Int},SparseArray{ComplexF64,2}}()
247+
R_dict = Dict{Tuple{Int, Int, Int}, SparseArray{ComplexF64, 2}}()
239248
for line in eachline(filename)
240249
a, b, c, μ, ν, val = parse_Rsymbol(line)
241250
if !Base.haskey(R_dict, (a, b, c))
@@ -247,15 +256,16 @@ function extract_Rsymbol(::Type{F}) where {F<:BraidedCategory}
247256
end
248257
end
249258

250-
function generate_Rarray(::Type{F}, a::Int, b::Int, c::Int) where {F<:BraidedCategory}
259+
function generate_Rarray(::Type{F}, a::Int, b::Int, c::Int) where {F <: BraidedCategory}
251260
a, b, c = Object{F}(a), Object{F}(b), Object{F}(c)
252261
N1 = Nsymbol(a, b, c)
253262
N2 = Nsymbol(b, a, c)
254-
return SparseArray{ComplexF64,2}(undef, (N1, N2))
263+
return SparseArray{ComplexF64, 2}(undef, (N1, N2))
255264
end
256265

257-
@generated function TensorKitSectors.Rsymbol(a::Object{F}, b::Object{F},
258-
c::Object{F}) where {F<:BraidedCategory}
266+
@generated function TensorKitSectors.Rsymbol(
267+
a::Object{F}, b::Object{F}, c::Object{F}
268+
) where {F <: BraidedCategory}
259269
local R_array
260270
try
261271
R_array = extract_Rsymbol(F)
@@ -275,7 +285,7 @@ end
275285
N2 = Nsymbol(b, a, c)
276286

277287
(N1 == 0 || N2 == 0) &&
278-
return SparseArray{ComplexF64,2}(undef, (N1, N2))
288+
return SparseArray{ComplexF64, 2}(undef, (N1, N2))
279289

280290
return $(R_array)[(a.id, b.id, c.id)]
281291
end
@@ -287,9 +297,11 @@ end
287297

288298
const fusionformat = r"(?<a>\d+) (?<b>\d+) (?<c>\d+) (?<m1>\d+) (?<m2>\d+) (?<m3>\d+) (?<μ>\d+) (?<re>-?\d+(\.\d+)?) (?<im>-?\d+(\.\d+)?)"
289299

290-
function fusiontensor_artifact(::Type{F}) where {F<:PMFC}
291-
return joinpath(artifact_path, "fusiontensors",
292-
"FR_$(rank(F))_$(multiplicity(F))_$(selfduality(F))_$(ring_index(F))_$(category_index(F))_$(braid_index(F)).txt")
300+
function fusiontensor_artifact(::Type{F}) where {F <: PMFC}
301+
return joinpath(
302+
artifact_path, "fusiontensors",
303+
"FR_$(rank(F))_$(multiplicity(F))_$(selfduality(F))_$(ring_index(F))_$(category_index(F))_$(braid_index(F)).txt"
304+
)
293305
end
294306

295307
function parse_fusiontensor(line)
@@ -304,11 +316,11 @@ function parse_fusiontensor(line)
304316
return labels..., val
305317
end
306318

307-
function extract_fusiontensor(::Type{F}) where {F<:BraidedCategory}
319+
function extract_fusiontensor(::Type{F}) where {F <: BraidedCategory}
308320
filename = fusiontensor_artifact(F)
309321
isfile(filename) || throw(LoadError(filename, 0, "fusiontensor file not found for $F"))
310322

311-
fusiontensor_dict = Dict{Tuple{Int,Int,Int},SparseArray{ComplexF64,4}}()
323+
fusiontensor_dict = Dict{Tuple{Int, Int, Int}, SparseArray{ComplexF64, 4}}()
312324
for line in eachline(filename)
313325
a, b, c, m1, m2, m3, μ, val = parse_fusiontensor(line)
314326

@@ -323,18 +335,20 @@ function extract_fusiontensor(::Type{F}) where {F<:BraidedCategory}
323335
return fusiontensor_dict
324336
end
325337

326-
function generate_fusiontensor_array(::Type{F}, a::Int, b::Int,
327-
c::Int) where {F<:BraidedCategory}
338+
function generate_fusiontensor_array(
339+
::Type{F}, a::Int, b::Int, c::Int
340+
) where {F <: BraidedCategory}
328341
a, b, c = Object{F}(a), Object{F}(b), Object{F}(c)
329342
da = dim(a)
330343
db = dim(b)
331344
dc = dim(c)
332345
N = Nsymbol(a, b, c)
333-
return SparseArray{ComplexF64,4}(undef, (da, db, dc, N))
346+
return SparseArray{ComplexF64, 4}(undef, (da, db, dc, N))
334347
end
335348

336-
@generated function TensorKitSectors.fusiontensor(a::Object{F}, b::Object{F},
337-
c::Object{F}) where {F<:BraidedCategory}
349+
@generated function TensorKitSectors.fusiontensor(
350+
a::Object{F}, b::Object{F}, c::Object{F}
351+
) where {F <: BraidedCategory}
338352
local Fdict
339353
try
340354
Fdict = extract_fusiontensor(F)
@@ -351,7 +365,7 @@ end
351365
db = dim(b)
352366
dc = dim(c)
353367
N = Nsymbol(a, b, c)
354-
N == 0 && return SparseArray{ComplexF64,4}(undef, (da, db, dc, N))
368+
N == 0 && return SparseArray{ComplexF64, 4}(undef, (da, db, dc, N))
355369
return $(Fdict)[(a.id, b.id, c.id)]
356370
end
357371
end

0 commit comments

Comments
 (0)