Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Well, if you want to change the representation of the objects, so when you type Integers(6)(5) it returns -1, I think that it is not implemented in sage.

However, if computing the symmetric representant of an element in Integers(n) can be done with the following code:

I use this function in some multimodular algorithms.

def lift_pm(p):  
"""
Compute a representative of the element p mod n in [-n/2 , n/2]

INPUT: 

- ``p`` an integer mod n

OUTPUT:

- An integer r such that  -n/2 < r <= n/2

EXAMPLES::

    sage: p = Mod(2,4)
    sage: lift_pm(p)
    2
    sage: p = Mod(3,4)
    sage: lift_pm(p)
    -1
"""
r = p.lift()
if r*2 > p.modulus():
    r -= p.modulus()
return r