| Karim.Belabas on Tue, 6 Feb 2001 19:32:27 +0100 (MET) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: finite field |
On Thu, 21 Dec 2000, Gerhard Niklasch wrote:
> .... f=polcyclo(7);factormod(f,2);
> g=%[1,1];xi0=Mod(x,g)*Mod(1,2);
> (23:25) gp > xi_pwr=vector(7,j,xi0^j);
> (23:27) gp > xi_dlg=vector(7,j,0);
> (23:27) gp > xi_idx(y)=subst(lift(lift(y)),x,2);
> (23:30) gp > xi_idx(xi0)
> %14 = 2
> ...
> (23:35) gp > xi_idx(xi0^4)
> %25 = 6
> ...
> (23:35) gp > xi_pwr[2]
> %27 = Mod(Mod(1, 2)*x^2, Mod(1, 2)*x^3 + Mod(1, 2)*x + Mod(1, 2))
> (23:35) gp > for(j=1,7,xi_dlg[xi_idx(xi_pwr[j])=j);
> *** expected character: ']' instead of: ...i_dlg[xi_idx(xi_pwr[j])=j);
> ^--
>
> (rats, too late in the night to get my brackets right... %^)
>
> (23:37) gp > for(j=1,7,xi_dlg[xi_idx(xi_pwr[j])]=j);
> *** expected character: ',' instead of: xi_dlg[xi_idx(xi_pwr[j])]=j);
[...]
> It seems that gp, whilst the parser was bailing out from my syntax
> error in the input line following %25, had alzheimered away the
> definition of my function xi_idx.
[...]
> On a hunch, the first syntax error may be setting some flag in gp's
> symbol table marking xi_idx as about-to-be-redefined, without yet
> removing the existing definition.
Nice analysis. The fix happens to be quite trivial: I had forgotten to
initialize the corresponding global flag...
Karim.
Index: anal.c
===================================================================
RCS file: /home/megrez/cvsroot/pari/src/language/anal.c,v
retrieving revision 1.48
diff -c -r1.48 anal.c
*** anal.c 2001/02/02 16:43:04 1.48
--- anal.c 2001/02/06 18:17:34
***************
*** 199,205 ****
if (foreignExprHandler && *t == foreignExprSwitch)
return (*foreignExprHandler)(t);
! check_new_fun=NULL; skipping_fun_def=0;
mark.start = analyseur = t;
br_status = br_NONE;
--- 199,207 ----
if (foreignExprHandler && *t == foreignExprSwitch)
return (*foreignExprHandler)(t);
! redefine_fun = NULL;
! check_new_fun = NULL;
! skipping_fun_def = 0;
mark.start = analyseur = t;
br_status = br_NONE;
--
Karim Belabas email: Karim.Belabas@math.u-psud.fr
Dep. de Mathematiques, Bat. 425
Universite Paris-Sud Tel: (00 33) 1 69 15 57 48
F-91405 Orsay (France) Fax: (00 33) 1 69 15 60 19
--
PARI/GP Home Page: http://www.parigp-home.de/