Re: question on execution time for qfbsolve
American Citizen <[email protected]>
| Newsgroups | gmane.comp.mathematics.pari.user |
|---|---|
| Message-ID | <[email protected]> |
Bill: Thanks for the comment. I am doing millions of these qfbsolve(), but the numbers <= 1e6 in general, so I won't see much speed increase. At least I can avoid an O^2 execution time bottle neck caused by 2 nest loops, in the brute force method I was using in the past. Randall On 7/3/25 00:20, Bill Allombert wrote: > On Wed, Jul 02, 2025 at 08:14:09PM -0700, American Citizen wrote: >> I ran over the first 100,000 integers >> >> ? for(i=1,100000,qfbsolve(Qfb(1,0,1),i,3)) >> cpu time = 3,394 ms, real time = 3,394 ms. >> ? for(i=1,100000,qfbsolve(Qfb(1,0,1),[i,factor(i)],3)) >> cpu time = 3,348 ms, real time = 3,348 ms. >> >> so it is about the same, not much improvement, 46 milliseconds. > Of course since you are including the time to factor i! > > The point is to avoid factoring i again when its factorization is already > known. > > For example: > > ? # > ? forfactored(i=1,1000000,qfbsolve(Qfb(1,0,1),i,3)) > *** last result computed in 2,767 ms. > ? for(i=1,1000000,qfbsolve(Qfb(1,0,1),i,3)) > *** last result computed in 2,994 ms. > ? for(i=1,1000000,qfbsolve(Qfb(1,0,1),[i,factor(i)],3)) > *** last result computed in 3,131 ms. > > Of course for small numbers, it should not make a lot of difference. > > Cheers, > Bill. >