Maintenance Ruby 3.3 gets fixes, but no new features. Switch to Ruby 4.0 →
instance method
Complex#*
complex * numeric → new_complex
complex.c
View on GitHub ↗
VALUE
rb_complex_mul(VALUE self, VALUE other)
{
if (RB_TYPE_P(other, T_COMPLEX)) {
VALUE real, imag;
get_dat2(self, other);
comp_mul(adat->real, adat->imag, bdat->real, bdat->imag, &real, &imag);
return f_complex_new2(CLASS_OF(self), real, imag);
}
if (k_numeric_p(other) && f_real_p(other)) {
get_dat1(self);
return f_complex_new2(CLASS_OF(self),
f_mul(dat->real, other),
f_mul(dat->imag, other));
}
return rb_num_coerce_bin(self, other, '*');
}
Returns the product of self and numeric:
Example
Complex(2, 3) * Complex(2, 3) # => (-5+12i) Complex(900) * Complex(1) # => (900+0i) Complex(-2, 9) * Complex(-9, 2) # => (0-85i) Complex(9, 8) * 4 # => (36+32i) Complex(20, 9) * 9.8 # => (196.0+88.2i)