# HG changeset patch
# User William Stein <wstein@gmail.com>
# Date 1248891557 25200
# Node ID f308b030e411a6fb46519f7d8015a9f069a87de1
# Parent 76300afe4ef3e9b04aead99088cf8616fa083d37
trac #6635 -- more work on "implement more critical Hecke algebra functionality: index in saturation, discriminant"
diff -r 76300afe4ef3 -r f308b030e411 sage/modular/abvar/abvar.py
a
|
b
|
|
3409 | 3409 | return self.decomposition()[i:j] |
3410 | 3410 | |
3411 | 3411 | |
| 3412 | def hecke_index_in_saturation(self): |
| 3413 | """ |
| 3414 | Let T' be the saturation in End(self) of the Hecke algebra T |
| 3415 | associated to self. Return the invariants of the finite group |
| 3416 | T'/T. |
| 3417 | """ |
| 3418 | S = self.modular_symbols(sign=0) |
| 3419 | T = S.hecke_algebra() |
| 3420 | return T._index_in_saturation(range(1, S.sturm_bound()+1), self.dimension()).invariants() |
| 3421 | |
| 3422 | |
3412 | 3423 | |
3413 | 3424 | class ModularAbelianVariety(ModularAbelianVariety_abstract): |
3414 | 3425 | def __init__(self, groups, lattice=None, base_field=QQ, is_simple=None, newform_level=None, |
… |
… |
|
4380 | 4391 | self.__brandt_module[p] = V |
4381 | 4392 | return V |
4382 | 4393 | |
4383 | | |
4384 | 4394 | def sqrt_poly(f): |
4385 | 4395 | """ |
4386 | 4396 | Return the square root of the polynomial `f`. |
diff -r 76300afe4ef3 -r f308b030e411 sage/modular/abvar/homspace.py
a
|
b
|
|
673 | 673 | |
674 | 674 | return [ Mf * self._get_matrix(e) * Mg for e in ls ] |
675 | 675 | |
676 | | # NOTE/WARNING/TODO: Below in the __init__, etc. we do *not* check |
677 | | # that the input gens are give something that spans a sub*ring*, as apposed |
678 | | # to just a subgroup. |
| 676 | # NOTE/WARNING/TODO: Below in the __init__, etc. we do *not* check |
| 677 | # that the input gens give something that spans a sub*ring*, as |
| 678 | # apposed to just a subgroup. |
679 | 679 | class EndomorphismSubring(Homspace, Ring): |
680 | 680 | |
681 | 681 | def __init__(self, A, gens=None): |