/*
* call-seq:
* float * other => float
*
* Returns a new float which is the product of <code>float</code>
* and <code>other</code>.
*/
static VALUE
flo_mul(VALUE x, VALUE y)
{
switch (TYPE(y)) {
case T_FIXNUM:
return DOUBLE2NUM(RFLOAT_VALUE(x) * (double)FIX2LONG(y));
case T_BIGNUM:
return DOUBLE2NUM(RFLOAT_VALUE(x) * rb_big2dbl(y));
case T_FLOAT:
return DOUBLE2NUM(RFLOAT_VALUE(x) * RFLOAT_VALUE(y));
default:
return rb_num_coerce_bin(x, y, '*');
}
}