| Karim Belabas on Thu, 17 May 2012 11:46:23 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: "Unknown function" message for compiled function |
* Ewan Delanoy [2012-05-17 11:31]:
> I have a function below (called "polforcedshrink") that does not work (whenever I call it I get the error message " *** unknown function or error in formal parameters: "), although the interpreter remains silent at compile time.
>
> Can anyone tell me what's wrong with the code ?
>
> Thanks in advance,
>
> Ewan
>
> The code :
>
> polforcedshrink(paul,var,a,b,l)=
> {
> local(local_runner,local_c,local_adj,answer);
> answer=[];
> local_runner=paul;
> for(k=1,length(l),\
> local_c=l[k];\
> answer=concat([subst(local_runner,var,local_c)],answer);\
> local_adj=1-2*(local_c==b);\
> local_runner=local_adj*((local_runner-subst(local_runner,var,local_c))/(var-local_c));\
> );
> return(answer);
> }
> ? test1=paulforcedshrink(g1,x,0,1,[1,0,0,0,0])
^^^^ replace by pol, it will work :-)
Cheers,
K.B.
P.S: Some minor comments:
- you don't need the trailing \ (since the multi-line text is already enclosed
within braces { })
- why the 'local_' prefix in your (indeed, local) variable names; (to my
taste) it makes the script a little harder to read.
- I am not too fond of (valid) cryptic constructs like
local_adj=1-2*(local_c==b);
(ab)using boolean truth values as integers. Why not
local_adj = if (local_c==b, -1, 1);
?
- any particular reason to stick to pari-2.3.2 ?
--
Karim Belabas, IMB (UMR 5251) Tel: (+33) (0)5 40 00 26 17
Universite Bordeaux 1 Fax: (+33) (0)5 40 00 69 50
351, cours de la Liberation http://www.math.u-bordeaux1.fr/~belabas/
F-33405 Talence (France) http://pari.math.u-bordeaux1.fr/ [PARI/GP]
`