| Ilya Zakharevich on Sun, 28 May 2006 00:18:56 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: 2.2.10 four times slower than 2.2.8 |
On Sat, May 27, 2006 at 04:38:06PM +0200, Karim Belabas wrote:
> 2) whenever intnum is used intensively using intnuminit() often helps.
I do not understand why intnuminit(0,1) could be ever needed. Could
not the tables for simple (=non-parametric) end types be memorized
when first calculated, like bernuilli numbers?
Or do they change as time goes?
Cannot say that documentation of intnum() is very helpful. Should not
one put a sentence like
tab may be 0 (default), a number m, or a table of ...
in beginning (if it is correct)? Otherwise m is used without
indicating what it is. And something like
m used in the calculation may be found by calling intnumstep() after
the calculation. Before the first call to intnum() or friends, m
returns ???
BTW, it is not clear whether intnum() tries to increase m during the
calculation (if tab=0). Does it? If it does, should not a
multidimensional integral over rectangles be implemented internally,
so that the old values may be reused (if possible)? (This would not
help the integration in my example, since it is over a
high-dimensional simplex.)
> P.S: The following script implements Marsaglia's method, as described in Bach
> and Peralta ( Math Comp. 65 (216), 1996, 1701-1715 ) and is orders of
> magnitude faster than direct numerical integration
>
> rho(u) =
> { local(n, N, C0, C);
Thanks, I will try it.
Yours,
Ilya