Bill Allombert on Sun, 29 Mar 2020 13:17:08 +0200


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

Re: aide pour optimiser un bout de code


On Sun, Mar 29, 2020 at 10:04:43AM +0200, Frédéric Chapoton wrote:
> Bonjour,
> 
> j'aimerais bien un coup de main pour optimiser le petit bout de code
> ci-joint. Ca calcule des sortes de "MZV de type impair" en evaluant des
> "polylog de type impair" en sqrt(2) - 1.
> 
> La reference mathematique est le preprint
> https://arxiv.org/pdf/1903.03747.pdf par Kaneko et Tsumura. C'est Kaneko qui
> m'a envoyé le bout de code que je cherche à optimiser.

Did you look at the PARI function zetamultconvert() ?

Some advices:
- Replace local() by my().
- Avoid using multiple concat:
 instead of
idtowd(ls)=
  {local(r,res);
 r=length(ls);res=[];for(j=1,r,res=concat(res,concat([1],vector(ls[j]-1))));res}

do
idtowd(ls)=concat(vector(#ls,j,vector(ls[j],i,i==1)))

- leftpart can be written as
leftpart(v,r)=v[1..r]

> est-ce que j'ai plutot interet à definir x = 2.*k ou bien x = 2*k dans
>  la fonction Tmpl ?

Use x = 2*k.
As long as k has less digits than the current precision, there is
nothing to gain to use floating points.

> j'ai uniquement besoin de la fonction Tmpl en son argument z = sqrt(2)-1.
> Est-ce que ca serait pertinent de precalculer une table des puissances
> de sqrt(2) - 1 ?

Yes. You can use powers() for that.

> Par ailleurs, je n'arrive pas à me servir du script compilé en sage.
> Comment faire ?

Did you try
pari.read('T_values.gp.run')
(You might want to use 
gp2c -p gp2c_
to avoid symbol clash with sage)

Cheers,
Bill.