Karim Belabas on Fri, 09 Jul 2004 22:48:45 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: complex arithmetic


* Kerl, John [2004-07-06 18:57]:
> A starting point might be omega_n = Mod(x, polcyclo(N)) ...
>
>> I'd like to do exact arithmetic in Q[e^(Pi*I/n)]. for 
>> example, in GAP I would 
>> type "E(24) * E(24)" and it would output "E(12)"  (E(n) is 
>> e^(Pi*I/n) or 
>> somesuch in GAP). This is fine; however, GAP is woefully 
>> slow, and I want to 
>> use libPari, which is speedy. n is fixed before any 
>> computation starts. is 
>> there any way of doing this in Pari? thanks

I speed is of the essence, use Mod(x, x^N - 1), and reduce modulo
polcyclo(N) whenever equality tests are required. 

[ If you program in libpari, dump POLMODs as soon as possible and use
integer polynomial arithmetic. See src/modules/aprcl.c for some ideas... ]

Using complex or p-adic approximations is also often worth considering.

Cheers,

    Karim.
-- 
Karim Belabas                     Tel: (+33) (0)1 69 15 57 48
Dep. de Mathematiques, Bat. 425   Fax: (+33) (0)1 69 15 60 19
Universite Paris-Sud              http://www.math.u-psud.fr/~belabas/
F-91405 Orsay (France)            http://pari.math.u-bordeaux.fr/  [PARI/GP]