Hi,

I want to ask you some questions concerning the arithmetic of number
fields in Sage.

Does Sage currently support factoring in Gaussian integers (i.e. in the ring

Z[I] of complex numbers with integral real/imaginary parts)?
I thing this would be a nice feature to have.

In pari/gp for example this works:

? factor(5*I)
%1 =
[2 + I 1]

[1 + 2*I 1]

in sage

factor(5*I)
gives an error.

Obviously factoring depends on the ring in which we are working on,
so that for example the factorization of 5 would be different in the ring
Z  or in the ring Z[I]

Currently Z[I] seems not to be a supported ring in sage, even though
you can create a quadratic field

F=QuadraticFiled(-1,'a')
(number field in a with defining polynomial x^2+1)

and after doing
a= F.gen()

'a' behaves algebraically as the complex number I (i.e. a^2=-1)
[ Mathematically 'a' is not the complex number 'I', as it could be also the
complex
number '-I' wich is also a root of  the same minimal polynomial x^2+1 ;
however there exists the function complex_imbedding() that
gives the corresponding complex number:

sage: a.complex_embedding()
1.00000000000000*I

assuming that a=I)

but there seems to be no implementation of factorization in
quadratic fields (of course in those fields in wich  there is a unique
decomposition into primes), nor a notion of the subring of
algebraic integers.

 My question is: what would be the best way to implement this?

Perphaps the best way would be creating a new
ring sage.ring.complex_integer representing gaussian_integers
for representing Gaussian integers

I see that currently a complex number like

2+3*I

is represented in sage, by using float point representation.

z=2+3*I
sage: type(z)
<type 'sage.rings.complex_number.ComplexNumber'>
sage: z.real()
2.00000000000000
sage: type(z.real())
<type 'sage.rings.real_mpfr.RealNumber'>
sage:

and this could lead to rounding errors. It would be better to do
exact integer arithmetic, when dealing with Gaussian integers.

best
regards

Pablo

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
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