/* :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)); }