# Abelian varieties attached to newforms¶

class sage.modular.abvar.abvar_newform.ModularAbelianVariety_newform(f, internal_name=False)

A modular abelian variety attached to a specific newform.

endomorphism_ring()

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)


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]


The result is cached:

sage: E is A.endomorphism_ring()
True

factor_number()

Return factor number.

OUTPUT:

int

EXAMPLES:

sage: A = AbelianVariety('43b')
sage: A.factor_number()
1

label()

Return canonical label that defines this newform modular abelian variety.

OUTPUT:

string

EXAMPLES:

sage: A = AbelianVariety('43b')
sage: A.label()
'43b'

newform(names=None)

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


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)


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)