/*
Returns a Dvector with two elements: the X and Y values of the
point at the given index.
*/
static VALUE function_point(VALUE self, VALUE index)
{
if(! NUMERIC(index))
rb_raise(rb_eArgError, "index has to be numeric");
else
{
long i = NUM2LONG(index);
long size = function_sanity_check(self);
if(size > 0 && i < size)
{
VALUE point = rb_funcall(cDvector, idNew, 1, INT2NUM(2));
double * dat = Dvector_Data_for_Write(point, NULL);
double *x = Dvector_Data_for_Read(get_x_vector(self),NULL);
double *y = Dvector_Data_for_Read(get_y_vector(self),NULL);
dat[0] = x[i];
dat[1] = y[i];
return point;
}
else
return Qnil;
}
return Qnil;
}