I have the following code to add a number to an instance variable:

static VALUE
test_plus(self, y)
  VALUE self;
  VALUE y;
{
  VALUE x;
  switch (TYPE(rb_iv_get(self, "@x"))) {
    case T_FIXNUM:
      x = fix_plus(self, y);
    case T_BIGNUM:
      x = rb_big_plus(self, rb_iv_get(c,"@real"));
    case T_FLOAT:
      x = flo_plus(self, rb_iv_get(c,"@real"));
    default:
    /* Not implemented. Error? */
      return rb_num_coerce_bin(self, y);
  }
  rb_iv_set(self,"@x", x);
  return self;
}


The code compiles, but when I run I get:

dyld: ruby Undefined symbols:
_fix_plus
_flo_plus

I couldn't find rb_fix_plus or rb_flo_plus, so I am not
certain I even have the right functions. fix_plus and flo_plus
don't seem to follow the rb_<class>_<meth> form.
Can someone point me in the right direction here?
Thanks

-- 
Jim Freeze