struct Complex
inherits Struct
¶
A complex number is a number represented in the form a + bi. In this form, a and b are real numbers, and i is an imaginary number such as i² = -1. The a is the real part of the number, and the b is the imaginary part of the number.
require "complex"
Complex.new(1, 0) # => 1.0 + 0.0i
Complex.new(5, -12) # => 5.0 - 12.0i
1.to_c # => 1.0 + 0.0i
1.i # => 0.0 + 1.0i
Class methods¶
Methods¶
#abs
¶
Returns the absolute value of this complex number in a number form, using the Pythagorean theorem.
require "complex"
Complex.new(42, 2).abs # => 42.04759208325728
Complex.new(-42, 2).abs # => 42.04759208325728
#abs2
¶
Returns the square of absolute value in a number form.
require "complex"
Complex.new(42, 2).abs2 # => 1768
#conj
¶
Returns the conjugate of self
.
require "complex"
Complex.new(42, 2).conj # => 42.0 - 2.0i
Complex.new(42, -2).conj # => 42.0 + 2.0i
#inspect(io : IO) : Nil
¶
(io : IO) : Nil
Writes this complex object to an io, surrounded by parentheses.
require "complex"
Complex.new(42, 2).inspect # => "(42.0 + 2.0i)"
#polar
¶
Returns a Tuple
with the abs
value and the phase
.
require "complex"
Complex.new(42, 2).polar # => {42.047592083257278, 0.047583103276983396}
#to_f32
¶
Returns the value as a Float32
if possible (the imaginary part should be exactly zero),
raises otherwise.
#to_f64
¶
Returns the value as a Float64
if possible (the imaginary part should be exactly zero),
raises otherwise.
#to_i64
¶
Returns the value as an Int64
if possible (the imaginary part should be exactly zero),
raises otherwise.
#to_s(io : IO) : Nil
¶
(io : IO) : Nil
Writes this complex object to an io.
require "complex"
Complex.new(42, 2).to_s # => "42.0 + 2.0i"
#to_u64
¶
Returns the value as an UInt64
if possible (the imaginary part should be exactly zero),
raises otherwise.