On Wed, Mar 14, 2012 at 8:34 AM, Laurent <moky.m...@gmail.com> wrote:
> #! /usr/bin/sage -python
> # -*- coding: utf8 -*-
>
> from sage.all import *
> from scipy import stats
> import numpy
>
> X=stats.norm.rvs(size=300)
> K=((heaviside(x+1)-heaviside(x-1))).function(x)
>
> f = sum( [   K(  (Xi-x) ) for Xi in X ] )
> print f
>
> pts=numpy.linspace(0,3)
> for x in pts:
>    print numerical_approx(f(x=x))      # One second each !
>
> Of course, each needs 600 calls to heaveside...
>
> An idea to speed up the process ?

Don't know whether you're still interested, but
the following should do the same thing slightly faster.

#! /usr/bin/python
# -*- coding: utf-8 -*-

from scipy import stats
import numpy as np

X=stats.norm.rvs(size=300)

def K(X0,x0):
    a = (X0-x0)>-1
    b = (X0-x0)<1
    return sum(a*b)

pts=np.linspace(0,3)
for x in pts:
   print K(X,x)

-- 
Vegard

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

Reply via email to