/* Reverses the function. Equivalent to doing
x.reverse!
y.reverse!
excepted that it is faster (though not *much* faster).
*/
static VALUE function_reverse(VALUE self)
{
long len = function_sanity_check(self);
double *xs = Dvector_Data_for_Write(get_x_vector(self),NULL);
double *ys = Dvector_Data_for_Write(get_y_vector(self),NULL);
double *xe = xs+len-1;
double *ye = ys+len-1;
double tmp;
long i;
for(i = 0; i < len/2; i++, xs++, ys++, xe--, ye--) {
tmp = *xe; *xe = *xs; *xs = tmp;
tmp = *ye; *ye = *ys; *ys = tmp;
}
return self;
}