[SciPy-user] how to make a sinc(x) function - "divide by zero" !
Arnd Baecker
arnd.baecker at web.de
Tue Dec 13 01:45:43 EST 2005
On Mon, 12 Dec 2005 lanceboyle at qwest.net wrote:
> On Dec 12, 2005, at 10:39 AM, Arnd Baecker wrote:
[...]
> > Yuo could try to use `vectorize` (warning: untested code)
> >
> > def sinc(x):
> > if x==0.0: # presumably better to check for small x
> > return 0.0 # here ...
> > else:
> > return sin(x)/x
> >
>
> sinc(0.0) is 1.0, not 0.0.
Presumably that's one thing which I anticipated with
"untested code". Clearly a nice way of showing my competence ;-).
((note to self: should stop trying to give advice when
already rushing out of the door.))
> > sinc_vectorized=scipy.vectorize(sinc)
I just saw the scipy.special also implements `sinc(x)`:
In [3]:scipy.special.sinc??
Type: function
Base Class: <type 'function'>
String Form: <function sinc at 0x412170d4>
Namespace: Interactive
File: /usr/lib/python2.3/site-packages/scipy/special/basic.py
Definition: scipy.special.sinc(x)
Source:
def sinc(x):
"""Returns sin(pi*x)/(pi*x) at all points of array x.
"""
w = asarray(asarray(x)*pi)
return where(x==0, 1.0, sin(w)/w)
Best, Arnd
More information about the SciPy-User
mailing list