Skip to content

Commit 0db5404

Browse files
authored
Print index of character/class values (#283)
1 parent 6ea611b commit 0db5404

File tree

6 files changed

+87
-85
lines changed

6 files changed

+87
-85
lines changed

docs/src/book.md

+16-16
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,14 @@ Generic character of SL3.n1
4141
n ∈ {1,…, q - 1} except n ∈ (q - 1)ℤ
4242
of degree q^2 + q + 1
4343
with values
44-
q^2 + q + 1
45-
q + 1
46-
1
47-
(q + 1)*E(q - 1)^(a*n) + E(q - 1)^(-2*a*n)
48-
E(q - 1)^(a*n) + E(q - 1)^(-2*a*n)
49-
E(q - 1)^(a*n) + E(q - 1)^(b*n) + E(q - 1)^(-a*n - b*n)
50-
E(q - 1)^(a*n)
51-
0
44+
1: q^2 + q + 1
45+
2: q + 1
46+
3: 1
47+
4: (q + 1)*E(q - 1)^(a*n) + E(q - 1)^(-2*a*n)
48+
5: E(q - 1)^(a*n) + E(q - 1)^(-2*a*n)
49+
6: E(q - 1)^(a*n) + E(q - 1)^(b*n) + E(q - 1)^(-a*n - b*n)
50+
7: E(q - 1)^(a*n)
51+
8: 0
5252
```
5353

5454
With these generic characters, we can compute norms, scalar products, and more.
@@ -58,14 +58,14 @@ julia> h = T[2] * T[2]
5858
Generic character of SL3.n1
5959
of degree q^4 + 2*q^3 + q^2
6060
with values
61-
q^4 + 2*q^3 + q^2
62-
q^2
63-
0
64-
q^2 + 2*q + 1
65-
1
66-
4
67-
0
68-
1
61+
1: q^4 + 2*q^3 + q^2
62+
2: q^2
63+
3: 0
64+
4: q^2 + 2*q + 1
65+
5: 1
66+
6: 4
67+
7: 0
68+
8: 1
6969
```
7070

7171
We may now attempt to decompose this character type `h` by computing its scalar product with the irreducible character types.

docs/src/characters.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -48,21 +48,21 @@ Generic character of GL2
4848
k ∈ {1,…, q - 1}, l ∈ {1,…, q - 1} except -l + k ∈ (q - 1)ℤ
4949
of degree q + 1
5050
with values
51-
(q + 1)*E(q - 1)^(i*l + i*k)
52-
E(q - 1)^(i*l + i*k)
53-
E(q - 1)^(i*l + j*k) + E(q - 1)^(i*k + j*l)
54-
0
51+
1: (q + 1)*E(q - 1)^(i*l + i*k)
52+
2: E(q - 1)^(i*l + i*k)
53+
3: E(q - 1)^(i*l + j*k) + E(q - 1)^(i*k + j*l)
54+
4: 0
5555
5656
julia> ct = g[3]
5757
Generic character of GL2
5858
with parameters
5959
k ∈ {1,…, q - 1}, l ∈ {1,…, q - 1} except -l + k ∈ (q - 1)ℤ
6060
of degree q + 1
6161
with values
62-
(q + 1)*E(q - 1)^(i*l + i*k)
63-
E(q - 1)^(i*l + i*k)
64-
E(q - 1)^(i*l + j*k) + E(q - 1)^(i*k + j*l)
65-
0
62+
1: (q + 1)*E(q - 1)^(i*l + i*k)
63+
2: E(q - 1)^(i*l + i*k)
64+
3: E(q - 1)^(i*l + j*k) + E(q - 1)^(i*k + j*l)
65+
4: 0
6666
6767
julia> ct[1]
6868
(q + 1)*E(q - 1)^(i*l + i*k)

docs/src/classes.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,10 @@ Generic conjugacy class of GL2
6868
i ∈ {1,…, q - 1}
6969
of order 1
7070
with values
71-
E(q - 1)^(2*i*k)
72-
q*E(q - 1)^(2*i*k)
73-
(q + 1)*E(q - 1)^(i*l + i*k)
74-
(q - 1)*E(q - 1)^(i*k)
71+
1: E(q - 1)^(2*i*k)
72+
2: q*E(q - 1)^(2*i*k)
73+
3: (q + 1)*E(q - 1)^(i*l + i*k)
74+
4: (q - 1)*E(q - 1)^(i*k)
7575
7676
julia> cl[1]
7777
E(q - 1)^(2*i*k)

src/GenericCharacter.jl

+36-35
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ Generic character of GL2
1818
kt1 ∈ {1,…, q - 1}, kt2 ∈ {1,…, q - 1}
1919
of degree q
2020
with values
21-
q*E(q - 1)^(2*i*kt1 + 2*i*kt2)
22-
0
23-
E(q - 1)^(i*kt1 + i*kt2 + j*kt1 + j*kt2)
24-
-E(q - 1)^(i*kt1 + i*kt2)
21+
1: q*E(q - 1)^(2*i*kt1 + 2*i*kt2)
22+
2: 0
23+
3: E(q - 1)^(i*kt1 + i*kt2 + j*kt1 + j*kt2)
24+
4: -E(q - 1)^(i*kt1 + i*kt2)
2525
```
2626
"""
2727
function tensor_product(char1::GenericCharacter, char2::GenericCharacter)
@@ -70,9 +70,9 @@ julia> tensor_product(g[1],g[2])
7070
Generic character of GL3
7171
of degree -q^6 - 2*q^5 - 2*q^4 + 2*q^2 + 2*q + 1
7272
with values
73-
-q^6 - 2*q^5 - 2*q^4 + 2*q^2 + 2*q + 1
74-
2*q + 1
75-
1
73+
1: -q^6 - 2*q^5 - 2*q^4 + 2*q^2 + 2*q + 1
74+
2: 2*q + 1
75+
3: 1
7676
```
7777
"""
7878
function tensor_product(
@@ -113,10 +113,10 @@ Generic character of GL2
113113
k ∈ {1,…, q - 1}
114114
of degree 1
115115
with values
116-
E(q - 1)^(2*i*k)
117-
(q^2 - 1)*E(q - 1)^(2*i*k)
118-
(q^2 + q)*E(q - 1)^(i*k + j*k)
119-
(q^2 - q)*E(q - 1)^(i*k)
116+
1: E(q - 1)^(2*i*k)
117+
2: (q^2 - 1)*E(q - 1)^(2*i*k)
118+
3: (q^2 + q)*E(q - 1)^(i*k + j*k)
119+
4: (q^2 - q)*E(q - 1)^(i*k)
120120
121121
```
122122
"""
@@ -152,9 +152,9 @@ julia> omega(g[1])
152152
Generic character of GL3
153153
of degree 1
154154
with values
155-
1
156-
2*q^2 - q - 1
157-
q^3 - 2*q^2 + q
155+
1: 1
156+
2: 2*q^2 - q - 1
157+
3: q^3 - 2*q^2 + q
158158
```
159159
"""
160160
function omega(char::SimpleGenericCharacter{T}) where {T<:NfPoly}
@@ -185,10 +185,10 @@ Generic character of GL2
185185
kl1 ∈ {1,…, q - 1}, kl2 ∈ {1,…, q - 1}
186186
of degree q + 5
187187
with values
188-
5*E(q - 1)^(2*i*kl1) + q*E(q - 1)^(2*i*kl2)
189-
5*E(q - 1)^(2*i*kl1)
190-
E(q - 1)^(i*kl2 + j*kl2) + 5*E(q - 1)^(i*kl1 + j*kl1)
191-
-E(q - 1)^(i*kl2) + 5*E(q - 1)^(i*kl1)
188+
1: 5*E(q - 1)^(2*i*kl1) + q*E(q - 1)^(2*i*kl2)
189+
2: 5*E(q - 1)^(2*i*kl1)
190+
3: E(q - 1)^(i*kl2 + j*kl2) + 5*E(q - 1)^(i*kl1 + j*kl1)
191+
4: -E(q - 1)^(i*kl2) + 5*E(q - 1)^(i*kl1)
192192
```
193193
"""
194194
function linear_combination(coeffs::Vector{<:RingElement}, chars::Vector{<:GenericCharacter})
@@ -256,9 +256,9 @@ julia> linear_combination([5,1],[g[1],g[2]])
256256
Generic character of GL3
257257
of degree 4*q^3 + 10*q^2 + 10*q + 6
258258
with values
259-
4*q^3 + 10*q^2 + 10*q + 6
260-
10*q + 6
261-
6
259+
1: 4*q^3 + 10*q^2 + 10*q + 6
260+
2: 10*q + 6
261+
3: 6
262262
```
263263
"""
264264
function linear_combination(
@@ -407,10 +407,10 @@ Generic character of GL2
407407
k ∈ {1,…, q - 1}
408408
of degree 1
409409
with values
410-
E(q - 1)^(2*i*k)
411-
E(q - 1)^(2*i*k)
412-
E(q - 1)^(i*k + j*k)
413-
E(q - 1)^(i*k)
410+
1: E(q - 1)^(2*i*k)
411+
2: E(q - 1)^(2*i*k)
412+
3: E(q - 1)^(i*k + j*k)
413+
4: E(q - 1)^(i*k)
414414
415415
julia> q,(i,j,l,k) = parameters(g);
416416
@@ -420,10 +420,10 @@ Generic character of GL2
420420
k ∈ {1,…, q - 1}, substitutions: i = q
421421
of degree 1
422422
with values
423-
E(q - 1)^(2*k)
424-
E(q - 1)^(2*k)
425-
E(q - 1)^(j*k + k)
426-
E(q - 1)^k
423+
1: E(q - 1)^(2*k)
424+
2: E(q - 1)^(2*k)
425+
3: E(q - 1)^(j*k + k)
426+
4: E(q - 1)^k
427427
428428
```
429429
"""
@@ -558,10 +558,10 @@ Generic character of GL2
558558
k ∈ {1,…, q - 1}, l ∈ {1,…, q - 1} except -l + k ∈ (q - 1)ℤ
559559
of degree q + 1
560560
with values
561-
(q + 1)*E(q - 1)^(i*l + i*k)
562-
E(q - 1)^(i*l + i*k)
563-
E(q - 1)^(i*l + j*k) + E(q - 1)^(i*k + j*l)
564-
0
561+
1: (q + 1)*E(q - 1)^(i*l + i*k)
562+
2: E(q - 1)^(i*l + i*k)
563+
3: E(q - 1)^(i*l + j*k) + E(q - 1)^(i*k + j*l)
564+
4: 0
565565
566566
julia> [g[3]]
567567
1-element Vector{GenericCharacterTables.GenericCharacter}:
@@ -582,8 +582,9 @@ function show(io::IO, ::MIME"text/plain", c::AbstractGenericCharacter)
582582
end
583583
println(io, "of degree ", degree(c))
584584
print(io, "with values", Indent())
585-
for val in c.values
586-
print(io, "\n", val)
585+
pad = ndigits(length(c))
586+
for (i, val) in enumerate(c)
587+
print(io, "\n", lpad(i, pad), ": ", val)
587588
end
588589
end
589590

src/GenericConjugacyClasses.jl

+15-14
Original file line numberDiff line numberDiff line change
@@ -347,10 +347,10 @@ Generic conjugacy class of GL2
347347
i ∈ {1,…, q - 1}
348348
of order 1
349349
with values
350-
E(q - 1)^(2*i*k)
351-
q*E(q - 1)^(2*i*k)
352-
(q + 1)*E(q - 1)^(i*l + i*k)
353-
(q - 1)*E(q - 1)^(i*k)
350+
1: E(q - 1)^(2*i*k)
351+
2: q*E(q - 1)^(2*i*k)
352+
3: (q + 1)*E(q - 1)^(i*l + i*k)
353+
4: (q - 1)*E(q - 1)^(i*k)
354354
355355
julia> q,(i,j,l,k) = parameters(g);
356356
@@ -360,10 +360,10 @@ Generic conjugacy class of GL2
360360
i ∈ {1,…, q - 1}, substitutions: i = q
361361
of order 1
362362
with values
363-
E(q - 1)^(2*k)
364-
q*E(q - 1)^(2*k)
365-
(q + 1)*E(q - 1)^(l + k)
366-
(q - 1)*E(q - 1)^k
363+
1: E(q - 1)^(2*k)
364+
2: q*E(q - 1)^(2*k)
365+
3: (q + 1)*E(q - 1)^(l + k)
366+
4: (q - 1)*E(q - 1)^k
367367
```
368368
"""
369369
function specialize(class::GenericConjugacyClass, var::UPoly, expr::RingElement)
@@ -499,10 +499,10 @@ Generic conjugacy class of GL2
499499
i ∈ {1,…, q - 1}, j ∈ {1,…, q - 1} except i - j ∈ (q - 1)ℤ
500500
of order q^2 + q
501501
with values
502-
E(q - 1)^(i*k + j*k)
503-
E(q - 1)^(i*k + j*k)
504-
E(q - 1)^(i*l + j*k) + E(q - 1)^(i*k + j*l)
505-
0
502+
1: E(q - 1)^(i*k + j*k)
503+
2: E(q - 1)^(i*k + j*k)
504+
3: E(q - 1)^(i*l + j*k) + E(q - 1)^(i*k + j*l)
505+
4: 0
506506
507507
julia> [conjugacy_class_type(g, 3)]
508508
1-element Vector{GenericCharacterTables.GenericConjugacyClass}:
@@ -523,8 +523,9 @@ function show(io::IO, ::MIME"text/plain", c::AbstractGenericConjugacyClass)
523523
end
524524
println(io, "of order ", order(c))
525525
print(io, "with values", Indent())
526-
for val in c
527-
print(io, "\n", val)
526+
pad = ndigits(length(c))
527+
for (i, val) in enumerate(c)
528+
print(io, "\n", lpad(i, pad), ": ", val)
528529
end
529530
end
530531

src/Types.jl

+8-8
Original file line numberDiff line numberDiff line change
@@ -234,10 +234,10 @@ Generic character of GL2
234234
k ∈ {1,…, q - 1}
235235
of degree 1
236236
with values
237-
E(q - 1)^(2*i*k)
238-
E(q - 1)^(2*i*k)
239-
E(q - 1)^(i*k + j*k)
240-
E(q - 1)^(i*k)
237+
1: E(q - 1)^(2*i*k)
238+
2: E(q - 1)^(2*i*k)
239+
3: E(q - 1)^(i*k + j*k)
240+
4: E(q - 1)^(i*k)
241241
```
242242
"""
243243
struct GenericCharacter <: AbstractGenericCharacter
@@ -310,10 +310,10 @@ julia> g[1]
310310
Generic character of uniGL2
311311
of degree q
312312
with values
313-
q
314-
0
315-
1
316-
-1
313+
1: q
314+
2: 0
315+
3: 1
316+
4: -1
317317
```
318318
"""
319319
struct SimpleGenericCharacter{T} <: AbstractGenericCharacter

0 commit comments

Comments
 (0)