In the process of investigating how rings are defined in sage I've found
some
inconsistencies: the function multiplicative_order is not consistently
defined
for all rings.

Applying this function to a rational
integer which is not a unit raises an exception:

sage: a=ZZ(3)
sage: a.multiplicative_order()
---------------------------------------------------------------------------
<type 'exceptions.ArithmeticError'>       Traceback (most recent call last)

/hdc1/pablo.hdc1/sage/sage/<ipython console> in <module>()

/hdc1/pablo.hdc1/sage/sage/integer.pyx in
integer.Integer.multiplicative_order()

<type 'exceptions.ArithmeticError'>: no power of 3 is a unit

(and so does for example the ring ComplexDouble)

However, for complex numbers, things are different: (gives +infinity)

 b= 2+3*I
sage: type(b)
<type 'sage.rings.complex_number.ComplexNumber'>
sage: b.multiplicative_order()
+Infinity

Which should be the correct behaviour? (I like more the one that answers
+infinity)

Another problem that i've found is that calling ComplexNumber (for example
by)

ComplexNumber(2,3)

causes a segmentation fault.
(using sage-2.4.1.2)

Pablo

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~----------~----~----~----~------~----~------~--~---

Reply via email to