Bill Allombert on Thu, 16 Feb 2012 01:35:26 +0100


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

Re: Question on subst(), deferred evaluation and trap()


On Wed, Feb 15, 2012 at 04:19:05PM -0800, Jack Brennen wrote:
> On 2/15/2012 12:25 PM, Bill Allombert wrote:
> >>So far, the best I've come up with is:
> >>
> >>   V=[1/(x-1),1/(x-2),1/(x-3)];
> >>
> >>And then instead of a simple subst() on V, I use:
> >>
> >>   N=3;vector(#V,j,trap(,0,subst(V[j],x,N)))
> >>
> >>However, for cases where the trap is not taken, my method is about
> >>10 times slower than just doing subst(V,x,N).
> >
> >So your problem boils down to performance.
> >What is your OS and PARI/GP version ?
> >
> >I ask because it seems trap is much slower on your system than on our test systems.
> >
> 
> Yeah, it's just a performance issue.  My solution works, but
> 10x slowdown is hard to take.
> 
> That particular timing number was from 2.3.5-release, on FreeBSD
> 8.2-RELEASE, Intel i3-550 @ 3.2 GHz.
> 
> Karim's response about a potential solution in 2.5 may prompt me
> to update to the latest PARI.

You should in any case, even though I do not think using apply to be any faster than 
vector.

What you can do is to replace setjmp by _setjmp and longjmp by _longjmp everywhere in
the PARI code and see if it is faster on FreeBSD.

Cheers,
Bill.