Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions src/AlgAss/Ramification.jl
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,20 @@ function schur_index(A::AbstractAssociativeAlgebra{<: NumFieldElem})
return e
end

# Can the following be done without computing the center? Not clear, since the algebra
# might have locally different Schur indicies over places lying over the same place
function schur_index_over_center(A::AbstractAssociativeAlgebra)
C, = StructureConstantAlgebra(A)
B, = _as_algebra_over_center(C)
return schur_index(B)
end

function schur_index_over_center(A::AbstractAssociativeAlgebra, p)
C, = StructureConstantAlgebra(A)
B, = _as_algebra_over_center(C)
return schur_index(B, p)
end

################################################################################
#
# Eichler condition
Expand Down
1 change: 1 addition & 0 deletions src/exports.jl
Original file line number Diff line number Diff line change
Expand Up @@ -824,6 +824,7 @@ export scale_row!
export scale_row_right!
export scales
export schur_index
export schur_index_over_center
export semi_global_minimal_model
export set_assertion_level
export set_var!
Expand Down
19 changes: 19 additions & 0 deletions test/AlgAss/Ramification.jl
Original file line number Diff line number Diff line change
Expand Up @@ -168,4 +168,23 @@
P = real_embeddings(K)[1]
@test Hecke.n_positive_roots(f, P) == 21
end

# Schur index over center
let
K, = quadratic_field(2)
A = Hecke.QuaternionAlgebra(K, K(-1), K(-1))
@test schur_index(A) == 2
AA, = restrict_scalars(A, QQ)
@test schur_index_over_center(AA) == 2
c = infinite_places(K)[1]
@test schur_index_over_center(AA, c) == 2

K, = quadratic_field(-1)
A = Hecke.QuaternionAlgebra(K, K(-1), K(-1))
@test schur_index(A) == 1
AA, = restrict_scalars(A, QQ)
@test schur_index_over_center(AA) == 1
c = infinite_places(K)[1]
@test schur_index_over_center(AA, c) == 1
end
end
Loading