 funcutils.py
 Subroutines that tabulate a function's values.
Convenience functions that evaluate a python function on a grid of
points and tabulate the output to be used with Gnuplot.
Imported modules


import Gnuplot
import Numeric
import utils

Functions


GridFunc
compute_Data
compute_GridData
tabulate_function


GridFunc

GridFunc (
f,
xvals,
yvals,
**keyw,
)
For backwards compatibility:


compute_Data

compute_Data (
xvals,
f,
ufunc=0,
**keyw,
)
Evaluate a function of 1 variable and store the results in a Data.
Computes a function f of one variable on a set of specified points
using tabulate_function , then store the results into a Data so
that it can be plotted. After calculation, the data are written
to a file; no copy is kept in memory. Note that this is quite
different than Func (which tells gnuplot to evaluate the
function).
Arguments:

xvals
 a 1d array with dimension
numx

f
 the function to plota callable object for which
f(x) returns a number.

ufunc=<bool>
 evaluate
f as a ufunc?
Other keyword arguments are passed through to the Data
constructor.
f should be a callable object taking one argument. f(x) will
be computed at all values in xvals.
If called with ufunc=1 , then f should be a function that is
composed entirely of ufuncs, and it will be passed the xvals and
yvals as rectangular matrices.
Thus if you have a function f , a vector xvals , and a Gnuplot
instance called g , you can plot the function by typing
g.splot(compute_Data(xvals, f)) .


compute_GridData

compute_GridData (
xvals,
yvals,
f,
ufunc=0,
**keyw,
)
Evaluate a function of 2 variables and store the results in a GridData.
Computes a function f of two variables on a rectangular grid
using tabulate_function , then store the results into a
GridData so that it can be plotted. After calculation the data
are written to a file; no copy is kept in memory. Note that this
is quite different than Func (which tells gnuplot to evaluate
the function).
Arguments:

xvals
 a 1d array with dimension
numx

yvals
 a 1d array with dimension
numy

f
 the function to plota callable object for which
f(x,y) returns a number.

ufunc=<bool>
 evaluate
f as a ufunc?
Other keyword arguments are passed to the GridData constructor.
f should be a callable object taking two arguments.
f(x,y) will be computed at all grid points obtained by
combining elements from xvals and yvals .
If called with ufunc=1 , then f should be a function that is
composed entirely of ufuncs, and it will be passed the xvals and
yvals as rectangular matrices.
Thus if you have a function f and two vectors xvals and
yvals and a Gnuplot instance called g , you can plot the
function by typing g.splot(compute_GridData(f, xvals, yvals)) .


tabulate_function

tabulate_function (
f,
xvals,
yvals=None,
typecode=None,
ufunc=0,
)
Evaluate and tabulate a function on a 1 or 2D grid of points.
f should be a function taking one or two floatingpoint
parameters.
If f takes one parameter, then xvals should be a 1D array and
yvals should be None. The return value is a Numeric array
[f(x[0]), f(x[1]), ..., f(x[1])] .
If f takes two parameters, then xvals and yvals should each be
1D arrays listing the values of x and y at which f should be
tabulated. The return value is a matrix M where M[i,j] =
f(xvals[i],yvals[j]) , which can for example be used in the
GridData constructor.
If ufunc=0 , then f is evaluated at each point using a Python
loop. This can be slow if the number of points is large. If
speed is an issue, you should write f in terms of Numeric ufuncs
and use the ufunc=1 feature described next.
If called with ufunc=1 , then f should be a function that is
composed entirely of ufuncs (i.e., a function that can operate
elementbyelement on whole matrices). It will be passed the
xvals and yvals as rectangular matrices.

