/*
:call-seq:
f.integrate() -> value
f.integrate(start_index, end_index) -> value
Returns the value of the integral of the function between the
two indexes given, or over the whole function if no indexes are
specified.
*/
static VALUE function_integrate(int argc, VALUE *argv, VALUE self)
{
long start,end;
switch(argc)
{
case 0:
start = 0;
end = function_sanity_check(self) - 1;
break;
case 2:
start = NUM2LONG(argv[0]);
end = NUM2LONG(argv[1]);
break;
default:
rb_raise(rb_eArgError, "integrate should have 0 or 2 parameters");
}
return rb_float_new(private_function_integrate(self,start,end));
}