def generate_fake_data(f='<STR_LIT>', x=_n.linspace(-<NUM_LIT:5>,<NUM_LIT:5>,<NUM_LIT:11>), ey=<NUM_LIT:1>, ex=<NUM_LIT:0>, include_errors=False, **kwargs):
<EOL>fitty = _s.data.fitter().set_functions(f+"<STR_LIT>",'<STR_LIT>') <EOL>if not _s.fun.is_iterable(ex): ex = _n.array([ex]*len(x))<EOL>if not _s.fun.is_iterable(ey): ey = _n.array([ey]*len(x))<EOL>x = _n.array(x) <EOL>y = fitty.f[<NUM_LIT:0>](x)<EOL>x = _n.random.normal(_n.array(x),ex)<EOL>y = _n.random.normal(y,          ey)<EOL>d = _s.data.databox()<EOL>d['<STR_LIT:x>']  = x<EOL>d['<STR_LIT:y>']  = y<EOL>if include_errors:<EOL><INDENT>d['<STR_LIT>'] = ey<EOL>d['<STR_LIT>'] = ex<EOL><DEDENT>d.h(reality=f, ey=ey[<NUM_LIT:0>], ex=ex[<NUM_LIT:0>])<EOL>return d<EOL>
Generates a set of fake data from the underlying "reality" (or mean
behavior) function f.

Parameters
----------
f:
    Underlying "reality" function or mean behavior. This can be any
    python-evaluable string, and will have access to all the numpy
    functions (e.g., cos), scipy's special functions (e.g., erf), and
    any other variables defined by keyword arguments
ex, ey:
    Uncertainty "strength" for x and y data. This can be a constant or an 
    array of values. If the distributions (below) are normal, this 
    corresponds to the standard deviation.
include_errors=True
    Whether the databox should include a column for ex and ey.

Keyword arguments are used as additional globals in the function evaluation.

Returns a databox containing the data and other relevant information in the
header.