On Thu, Sep 17, 2009 at 6:28 AM, Jason Grout
<jason-s...@creativetrax.com> wrote:
> I tried generating lots of normally distributed values after applying
> the patch.  It seems that scipy was the winner by far for speed:
>
> sage: a=RealDistribution('gaussian', 2)
> sage: %timeit [a.get_random_element() for _ in range(1000)]
> 100 loops, best of 3: 2.87 ms per loop
> sage: import scipy.stats
> sage: %timeit scipy.stats.norm.rvs(0,2,size=1000)
> 1000 loops, best of 3: 252 µs per loop
> sage: %timeit r.rnorm(1000,0,2).sage()
> 10 loops, best of 3: 37 ms per loop
>
> Can we make get_random_element take an argument to get more than one
> element?
>
> a.get_random_element(1000) would return a list of 1000 random elements.

We can but I can't get it as fast as scipy:

sage: a=RealDistribution('gaussian', 2)
sage: %timeit [a.get_random_element() for _ in range(1000)]
100 loops, best of 3: 2.6 ms per loop
sage:
sage: %timeit a.get_random_element_testing(1000)
1000 loops, best of 3: 374 µs per loop
sage:
sage: import scipy.stats
sage: %timeit scipy.stats.norm.rvs(0,2,size=1000)
1000 loops, best of 3: 275 µs per loop

Close, but no sausage.

-- 
Carlo Hamalainen
http://carlo-hamalainen.net

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to