Abelian varieties attached to newforms¶
- class sage.modular.abvar.abvar_newform.ModularAbelianVariety_newform(f, internal_name=False)[source]¶
- Bases: - ModularAbelianVariety_modsym_abstract- A modular abelian variety attached to a specific newform. - endomorphism_ring()[source]¶
- Return the endomorphism ring of this newform abelian variety. - EXAMPLES: - sage: A = AbelianVariety('23a') sage: E = A.endomorphism_ring(); E Endomorphism ring of Newform abelian subvariety 23a of dimension 2 of J0(23) - >>> from sage.all import * >>> A = AbelianVariety('23a') >>> E = A.endomorphism_ring(); E Endomorphism ring of Newform abelian subvariety 23a of dimension 2 of J0(23) - We display the matrices of these two basis matrices: - sage: E.0.matrix() [1 0 0 0] [0 1 0 0] [0 0 1 0] [0 0 0 1] sage: E.1.matrix() [ 0 1 -1 0] [ 0 1 -1 1] [-1 2 -2 1] [-1 1 0 -1] - >>> from sage.all import * >>> E.gen(0).matrix() [1 0 0 0] [0 1 0 0] [0 0 1 0] [0 0 0 1] >>> E.gen(1).matrix() [ 0 1 -1 0] [ 0 1 -1 1] [-1 2 -2 1] [-1 1 0 -1] - The result is cached: - sage: E is A.endomorphism_ring() True - >>> from sage.all import * >>> E is A.endomorphism_ring() True 
 - factor_number()[source]¶
- Return factor number. - OUTPUT: int - EXAMPLES: - sage: A = AbelianVariety('43b') sage: A.factor_number() 1 - >>> from sage.all import * >>> A = AbelianVariety('43b') >>> A.factor_number() 1 
 - label()[source]¶
- Return canonical label that defines this newform modular abelian variety. - OUTPUT: string - EXAMPLES: - sage: A = AbelianVariety('43b') sage: A.label() '43b' - >>> from sage.all import * >>> A = AbelianVariety('43b') >>> A.label() '43b' 
 - newform(names=None)[source]¶
- Return the newform that this modular abelian variety is attached to. - EXAMPLES: - sage: f = Newform('37a') sage: A = f.abelian_variety() sage: A.newform() q - 2*q^2 - 3*q^3 + 2*q^4 - 2*q^5 + O(q^6) sage: A.newform() is f True - >>> from sage.all import * >>> f = Newform('37a') >>> A = f.abelian_variety() >>> A.newform() q - 2*q^2 - 3*q^3 + 2*q^4 - 2*q^5 + O(q^6) >>> A.newform() is f True - If the a variable name has not been specified, we must specify one: - sage: A = AbelianVariety('67b') sage: A.newform() Traceback (most recent call last): ... TypeError: You must specify the name of the generator. sage: A.newform('alpha') q + alpha*q^2 + (-alpha - 3)*q^3 + (-3*alpha - 3)*q^4 - 3*q^5 + O(q^6) - >>> from sage.all import * >>> A = AbelianVariety('67b') >>> A.newform() Traceback (most recent call last): ... TypeError: You must specify the name of the generator. >>> A.newform('alpha') q + alpha*q^2 + (-alpha - 3)*q^3 + (-3*alpha - 3)*q^4 - 3*q^5 + O(q^6) - If the eigenform is actually over \(\QQ\) then we don’t have to specify the name: - sage: A = AbelianVariety('67a') sage: A.newform() q + 2*q^2 - 2*q^3 + 2*q^4 + 2*q^5 + O(q^6) - >>> from sage.all import * >>> A = AbelianVariety('67a') >>> A.newform() q + 2*q^2 - 2*q^3 + 2*q^4 + 2*q^5 + O(q^6)