| 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.