Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Magma padics #39449

Open
wants to merge 9 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 6 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
30 changes: 29 additions & 1 deletion src/sage/ext_data/magma/sage/basic.m
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ intrinsic Sage(X::RngIntRes) -> MonStgElt, BoolElt
return Sprintf("Zmod(%o)", Characteristic(X)), false;
end intrinsic;

/* Approximate fields */
/* Approximate real and complex fields */

intrinsic Sage(X::FldRe) -> MonStgElt, BoolElt
{}
Expand All @@ -147,6 +147,34 @@ intrinsic Sage(X::FldComElt) -> MonStgElt, BoolElt
return Sprintf("%o([%o, %o])", Sage(Parent(X)), Sage(Real(X)), Sage(Imaginary(X))), true;
end intrinsic;

/* p-adic rings and fields */

intrinsic Sage(X::RngPad) -> MonStgElt, BoolElt
{p-adic rings, either free precision model or exact model}
prec := Precision(X);
if Type(prec) eq Infty then
return Sprintf("Zp(%o, %o, 'relaxed')", Sage(Prime(X)), Sage(Precision(X))), false;
else
return Sprintf("Zp(%o, %o, 'capped-rel')", Sage(Prime(X)), Sage(Precision(X))), false;
end if;
fchapoton marked this conversation as resolved.
Show resolved Hide resolved
end intrinsic;

intrinsic Sage(X::FldPad) -> MonStgElt, BoolElt
{p-adic fields, either free precision model or exact model}
prec := Precision(X);
if Type(prec) eq Infty then
return Sprintf("Qp(%o, %o, 'relaxed')", Sage(Prime(X)), Sage(Precision(X))), false;
else
return Sprintf("Qp(%o, %o, 'capped-rel')", Sage(Prime(X)), Sage(Precision(X))), false;
end if;
fchapoton marked this conversation as resolved.
Show resolved Hide resolved
end intrinsic;

intrinsic Sage(X::RngPadRes) -> MonStgElt, BoolElt
{fixed precision model}
return Sprintf("Zp(%o, %o, 'fixed-mod')", Sage(Prime(X)), Sage(Precision(X))), false;
end intrinsic;


/* Polynomials */

intrinsic SageNamesHelper(X::.) -> MonStgElt
Expand Down
39 changes: 39 additions & 0 deletions src/sage/rings/padics/padic_base_leaves.py
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,19 @@
from sage.rings.padics.padic_generic import ResidueLiftingMap
return ResidueLiftingMap._create_(R, self)

def _magma_init_(self, magma):
"""
Conversion to magma.

EXAMPLES::

sage: # optional - magma
sage: F = Qp(5,7,"capped-rel")
sage: magma(F)
5-adic field mod 5^7
"""
return f"pAdicRing({self.prime()},{self.precision_cap()})"

Check warning on line 318 in src/sage/rings/padics/padic_base_leaves.py

View check run for this annotation

Codecov / codecov/patch

src/sage/rings/padics/padic_base_leaves.py#L318

Added line #L318 was not covered by tests


class pAdicRingCappedAbsolute(pAdicRingBaseGeneric, pAdicCappedAbsoluteRingGeneric):
r"""
Expand Down Expand Up @@ -607,6 +620,19 @@
from sage.rings.padics.padic_generic import ResidueLiftingMap
return ResidueLiftingMap._create_(R, self)

def _magma_init_(self, magma):
"""
Conversion to magma.

EXAMPLES::

sage: # optional - magma
sage: F = Zp(5,7,"fixed-mod")
sage: magma(F)
Quotient of the 5-adic ring modulo the ideal generated by 5^7
"""
return f"pAdicQuotientRing({self.prime()},{self.precision_cap()})"

Check warning on line 634 in src/sage/rings/padics/padic_base_leaves.py

View check run for this annotation

Codecov / codecov/patch

src/sage/rings/padics/padic_base_leaves.py#L634

Added line #L634 was not covered by tests


class pAdicFieldCappedRelative(pAdicFieldBaseGeneric, pAdicCappedRelativeFieldGeneric):
r"""
Expand Down Expand Up @@ -719,6 +745,19 @@
from sage.rings.padics.padic_generic import ResidueLiftingMap
return ResidueLiftingMap._create_(R, self)

def _magma_init_(self, magma):
"""
Conversion to magma.

EXAMPLES::

sage: # optional - magma
sage: F = Qp(5,7,"capped-rel")
sage: magma(F)
5-adic field mod 5^7
"""
return f"pAdicField({self.prime()},{self.precision_cap()})"

Check warning on line 759 in src/sage/rings/padics/padic_base_leaves.py

View check run for this annotation

Codecov / codecov/patch

src/sage/rings/padics/padic_base_leaves.py#L759

Added line #L759 was not covered by tests

def random_element(self, algorithm='default'):
r"""
Return a random element of ``self``, optionally using the ``algorithm``
Expand Down
Loading