mrbgems/mruby-complex/README.md
mruby-complex is an mrbgem that provides a Complex class for mruby, allowing for the representation and manipulation of complex numbers. It is designed to be compatible with the Complex class in standard Ruby.
The Complex class provided by this mrbgem supports:
i suffix for numbers.+), subtraction (-), multiplication (*), division (/).real, imaginary or imag).abs, magnitude), argument/angle (arg, angle, phase), and square of the absolute value (abs2).conjugate, conj).polar).to_f, to_i, to_r, to_c).inspect, to_s).Here are some basic examples of how to use the Complex class:
# Creating complex numbers
c1 = Complex(1, 2) # => (1+2i)
c2 = 3 + 4i # => (3+4i)
c3 = Complex.polar(5, Math::PI/2) # => (0.0+5.0i) (approximately)
# Arithmetic operations
puts c1 + c2 # => (4+6i)
puts c1 - c2 # => (-2-2i)
puts c1 * c2 # => (-5+10i)
puts c1 / c2 # => (0.44+0.08i)
# Accessing parts
puts c1.real # => 1
puts c1.imaginary # => 2
# Other methods
puts c2.abs # => 5.0
puts c2.arg # => 0.9272952180016122 (radians)
puts c2.conjugate # => (3-4i)
puts c1.polar # => [2.23606797749979, 1.1071487177940904]
# Numerics can be converted to Complex
puts 5.to_c # => (5+0i)
puts 2.3.to_c # => (2.3+0i)
# The `i` method on numerics creates a complex number with zero real part
puts 5i # => (0+5i)
puts 2.3i # => (0+2.3i)
This mrbgem aims to provide functionality similar to the Complex class found in the standard Ruby library. Refer to the Ruby documentation for Complex for more detailed information on the behavior of various methods.