Skip to content

Commit fbaf715

Browse files
committed
Refactor latexname
1 parent 4afccce commit fbaf715

File tree

2 files changed

+15
-44
lines changed

2 files changed

+15
-44
lines changed

src/sage/rings/function_field/drinfeld_modules/drinfeld_module.py

Lines changed: 13 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
from sage.categories.drinfeld_modules import DrinfeldModules
2828
from sage.categories.homset import Hom
2929
from sage.misc.latex import latex
30+
from sage.misc.latex import latex_variable_name
3031
from sage.misc.lazy_string import _LazyString
3132
from sage.rings.integer import Integer
3233
from sage.rings.polynomial.ore_polynomial_element import OrePolynomial
@@ -174,13 +175,6 @@ class DrinfeldModule(Parent, UniqueRepresentation):
174175
sage: phi(1) # phi_1
175176
1
176177
177-
One can give a LaTeX name to be used for LaTeX representation::
178-
179-
sage: sigma = DrinfeldModule(A, [z, 1, 1], latexname='\sigma')
180-
...
181-
sage: latex(sigma)
182-
\sigma
183-
184178
.. RUBRIC:: The category of Drinfeld modules
185179
186180
Drinfeld modules have their own category (see class
@@ -507,7 +501,7 @@ class DrinfeldModule(Parent, UniqueRepresentation):
507501
"""
508502

509503
@staticmethod
510-
def __classcall_private__(cls, function_ring, gen, name='t', latexname=None):
504+
def __classcall_private__(cls, function_ring, gen, name='t'):
511505
"""
512506
Check input validity and return a ``DrinfeldModule`` or
513507
``FiniteDrinfeldModule`` object accordingly.
@@ -523,9 +517,6 @@ def __classcall_private__(cls, function_ring, gen, name='t', latexname=None):
523517
- ``name`` (default: ``'t'``) -- the name of the Ore polynomial
524518
ring gen
525519
526-
- ``latexname`` (default: ``None``) -- the LaTeX name of the Drinfeld
527-
module
528-
529520
OUTPUT:
530521
531522
A DrinfeldModule or FiniteDrinfeldModule.
@@ -586,10 +577,6 @@ def __classcall_private__(cls, function_ring, gen, name='t', latexname=None):
586577
base_field_noext.has_coerce_map_from(function_ring.base_ring())):
587578
raise ValueError('function ring base must coerce into base field')
588579

589-
# Check LaTeX name
590-
if latexname is not None and type(latexname) is not str:
591-
raise ValueError('LaTeX name should be a string')
592-
593580
# Build the category
594581
T = function_ring.gen()
595582
if isinstance(base_field_noext, RingExtension_generic):
@@ -613,10 +600,10 @@ def __classcall_private__(cls, function_ring, gen, name='t', latexname=None):
613600
# Instantiate the appropriate class
614601
if base_field.is_finite():
615602
from sage.rings.function_field.drinfeld_modules.finite_drinfeld_module import FiniteDrinfeldModule
616-
return FiniteDrinfeldModule(gen, category, latexname)
617-
return cls.__classcall__(cls, gen, category, latexname)
603+
return FiniteDrinfeldModule(gen, category)
604+
return cls.__classcall__(cls, gen, category)
618605

619-
def __init__(self, gen, category, latexname=None):
606+
def __init__(self, gen, category):
620607
"""
621608
Initialize ``self``.
622609
@@ -634,9 +621,6 @@ def __init__(self, gen, category, latexname=None):
634621
- ``name`` (default: ``'t'``) -- the name of the Ore polynomial
635622
ring gen
636623
637-
- ``latexname`` (default: ``None``) -- the LaTeX name of the Drinfeld
638-
module
639-
640624
TESTS::
641625
642626
sage: Fq = GF(25)
@@ -656,8 +640,6 @@ def __init__(self, gen, category, latexname=None):
656640
True
657641
sage: phi._morphism == Hom(A, ore_polring)(phi._gen)
658642
True
659-
sage: phi._latexname is None
660-
True
661643
662644
::
663645
@@ -666,7 +648,6 @@ def __init__(self, gen, category, latexname=None):
666648
self._base = category.base()
667649
self._function_ring = category.function_ring()
668650
self._gen = gen
669-
self._latexname = latexname
670651
self._morphism = category._function_ring.hom([gen])
671652
self._ore_polring = gen.parent()
672653
self._Fq = self._function_ring.base_ring() # Must be last
@@ -776,8 +757,8 @@ def _latex_(self):
776757
r"""
777758
Return a LaTeX representation of the Drinfeld module.
778759
779-
If a LaTeX name was given at initialization, we use it.
780-
Otherwise, we create a representation.
760+
If a representation name is given with meth:`rename`, it is
761+
taken into account for LaTeX representation.
781762
782763
EXAMPLES::
783764
@@ -791,20 +772,13 @@ def _latex_(self):
791772
792773
::
793774
794-
sage: psi = DrinfeldModule(A, [p_root, z12^3, z12^5], latexname='\psi')
795-
...
796-
sage: latex(psi)
797-
\psi
798-
799-
::
800-
801-
sage: psi = DrinfeldModule(A, [p_root, z12^3, z12^5], latexname=1729)
802-
Traceback (most recent call last):
803-
...
804-
ValueError: LaTeX name should be a string
775+
sage: phi.rename('phi')
776+
sage: latex(phi)
777+
\phi
778+
sage: phi.reset_name()
805779
"""
806-
if self._latexname is not None:
807-
return self._latexname
780+
if hasattr(self, '__custom_name'):
781+
return latex_variable_name(getattr(self, '__custom_name'))
808782
else:
809783
return f'\\phi: {latex(self._function_ring.gen())} \\mapsto ' \
810784
f'{latex(self._gen)}'

src/sage/rings/function_field/drinfeld_modules/finite_drinfeld_module.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ class FiniteDrinfeldModule(DrinfeldModule):
116116
True
117117
"""
118118

119-
def __init__(self, gen, category, latexname=None):
119+
def __init__(self, gen, category):
120120
"""
121121
Initialize `self`.
122122
@@ -134,9 +134,6 @@ def __init__(self, gen, category, latexname=None):
134134
- ``name`` (default: `'t'`) -- the name of the Ore polynomial
135135
ring gen
136136
137-
- ``latexname`` (default: ``None``) -- the LaTeX name of the Drinfeld
138-
module
139-
140137
TESTS::
141138
142139
sage: Fq = GF(25)
@@ -152,7 +149,7 @@ def __init__(self, gen, category, latexname=None):
152149
# NOTE: There used to be no __init__ here (which was fine). I
153150
# added one to ensure that FiniteDrinfeldModule would always
154151
# have _frobenius_norm and _frobenius_trace attributes.
155-
super().__init__(gen, category, latexname)
152+
super().__init__(gen, category)
156153
self._frobenius_norm = None
157154
self._frobenius_trace = None
158155

0 commit comments

Comments
 (0)