rem modulaire
Modérateur : xcasadmin
-
- Messages : 1139
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
rem modulaire
Salut j'ai quelques remarques sur le modulaire:
P:=(2*x^2+1)%7
alors
rem(x^(2^15),P) fait planter mon xcas (32 bits 0.9.1)
(avec les tres grandes valeurs on voit bien que ca n'est pas evalue, mais
rem(x^(2^16),P) donne toujours 1
alors que par powmod on trouve 2.
powmod(x,2^16,7,P%0,x)
powmod attend vraiment des coeff entiers, on doit mettre ce %0, il y a t'il un equivalent pour les objets modulaire?
Fred
y a t'il un powmod pour des poly modulaires?
P:=(2*x^2+1)%7
alors
rem(x^(2^15),P) fait planter mon xcas (32 bits 0.9.1)
(avec les tres grandes valeurs on voit bien que ca n'est pas evalue, mais
rem(x^(2^16),P) donne toujours 1
alors que par powmod on trouve 2.
powmod(x,2^16,7,P%0,x)
powmod attend vraiment des coeff entiers, on doit mettre ce %0, il y a t'il un equivalent pour les objets modulaire?
Fred
y a t'il un powmod pour des poly modulaires?
Re: rem modulaire
salut,
je n'ai pas de réponse satisfaisante à te donner pour le moment. Je pense que le mieux serait de modifier powmod pour accepter un polynôme à coefficients modulaires en 3ème argument, ce qui donnerait
powmod(x,2^16,P)
je n'ai pas de réponse satisfaisante à te donner pour le moment. Je pense que le mieux serait de modifier powmod pour accepter un polynôme à coefficients modulaires en 3ème argument, ce qui donnerait
powmod(x,2^16,P)
Re: rem modulaire
je viens de modifier le source, en fait c'etait simple
comme ca il accepte powmod(x,2^16,P) si P a des coeffs modulaires.
Code : Tout sélectionner
diff usual.cc usual.cc~
3025,3029c3025,3026
< m=findmod(m);
< if (is_zero(m)){
< // find m inside a
< m=findmod(a);
< }
---
> // find m inside a
> m=findmod(a);
-
- Messages : 1139
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: rem modulaire
Oui ca marche. Merci.
en revanche il ne veut pas d'une autre variable que x en argument suivant:
Ex: powmod(y,2^(2^5),Q%7,y)
J'ai aussi remarque cela:
P%7 fonctionne bien comme P % 7
en revanche
p:=7;
P%p donne une erreur de syntaxe il veut P % p
plus genant:
P%nextprime(10^3) plante xcas il faut faire: P % nextprime(10^3)
Fred
en revanche il ne veut pas d'une autre variable que x en argument suivant:
Ex: powmod(y,2^(2^5),Q%7,y)
J'ai aussi remarque cela:
P%7 fonctionne bien comme P % 7
en revanche
p:=7;
P%p donne une erreur de syntaxe il veut P % p
plus genant:
P%nextprime(10^3) plante xcas il faut faire: P % nextprime(10^3)
Fred
Re: rem modulaire
Je regarde demain pour la variable. Par contre pour le % je ne peux plus changer, en fait % peut s'utiliser dans un nom de symbole/commande s'il commence par un caractère alphabétique mais pas numérique, et c'est pour ça que l'espace est obligatoire sauf avant un nombre, il faudra quand même que je regarde pourquoi ça plante.
Re: rem modulaire
Pour la variable, ca donne
Pas eu de plantage pour P%nextprime(10^3), juste une erreur de syntaxe. Par contre, j'ai alors un segfault quand je quitte xcas, mais pas tracable par gdb.
Code : Tout sélectionner
...
bool modafter=false;
p=unmod(m);
m=findmod(m);
if (is_zero(m)){
// find m inside a
m=findmod(a);
}
modafter=!is_zero(m);
a=unmod(a);
if (modafter && s>3)
var=v[3];
if (!modafter && s>3){
p=v[3];
if (is_integer(p)){
p=v[2]; m=v[3];
}
}
if (s>=5)
var=v[4];
...
Re: rem modulaire
Apparamment, c'est la fonction fl_ask de FLTK qui n'aime pas le % dans le message d'erreur, je viens de le supprimer et ca n'a plus l'air de planter. J'update le source.
-
- Messages : 1139
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: rem modulaire
Salut,
J'ai l'impression que la modif de powmod a un effet de bord lorsque P n'est pas unitaire:
P:=(x^5-3)
powmod(x,6,7,P,x) fonctionne
mais avec P:=2*(x^5-3) ca donne: Not invertible Error: Bad Argument Value
alors que powmod(x,6,P % 7) fonctionne
Fred
J'ai l'impression que la modif de powmod a un effet de bord lorsque P n'est pas unitaire:
P:=(x^5-3)
powmod(x,6,7,P,x) fonctionne
mais avec P:=2*(x^5-3) ca donne: Not invertible Error: Bad Argument Value
alors que powmod(x,6,P % 7) fonctionne
Fred
Re: rem modulaire
En effet, il faut rajouter m=v[2] ligne 3033 de usual.cc
Code : Tout sélectionner
...
if (!modafter && s>3){
m=v[2];
p=v[3];
if (is_integer(p)){
...
-
- Messages : 1139
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: rem modulaire
Cette fois ca a l'air de bien marcher.
Fred

Fred