/* * call-seq: * fix - numeric -> numeric_result * * Performs subtraction: the class of the resulting object depends on * the class of <code>numeric</code> and on the magnitude of the * result. */ static mrb_value fix_minus(mrb_state *mrb, mrb_value self) { mrb_value other; mrb_get_args(mrb, "o", &other); return mrb_fixnum_minus(mrb, self, other); }
/* * call-seq: * fix - numeric -> numeric_result * * Performs subtraction: the class of the resulting object depends on * the class of <code>numeric</code> and on the magnitude of the * result. */ static mrb_value fix_minus(mrb_state *mrb, mrb_value self) { mrb_value other; mrb_get_args(mrb, "o", &other); #ifdef MRB_COMPLEX if (mrb_complex_p(other)) { return mrb_complex_value(mrb, (mrb_float)mrb_fixnum(self) - mrb_real(other), mrb_imag(other)); } #endif return mrb_fixnum_minus(mrb, self, other); }