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.
NOTE To use Complex, you must explicitly import it with require "complex"
require "complex" Complex.new(1, 0) # => 1.0 + 0.0.i Complex.new(5, -12) # => 5.0 - 12.0.i 1.to_c # => 1.0 + 0.0.i 1.i # => 0.0 + 1.0.i
Returns the number 0 in complex form.
Multiplies self by other.
Multiplies self by other.
Adds the value of self to other.
Adds the value of self to other.
Returns self.
Removes the value of other from self.
Removes the value of other from self.
Returns the opposite of self.
Divides self by other.
Divides self by other.
Determines whether self equals other or not.
Determines whether self equals other or not.
Determines whether self equals other or not.
Returns the absolute value of this complex number in a number form, using the Pythagorean theorem.
Returns the square of absolute value in a number form.
Returns the conjugate of self.
Returns the imaginary part.
Writes this complex object to an io, surrounded by parentheses.
Returns the inverse of self.
Returns the phase of self.
Returns the real part.
Rounds to the nearest digits.
Returns the complex sign of self.
Returns self.
See #to_f64.
Returns the value as a Float64 if possible (the imaginary part should be exactly zero), raises otherwise.
See #to_i32.
Writes this complex object to an io.
Returns true if the complex number is zero.
Struct
Struct
Value
Object
Object
Object
Determines whether self equals other or not.
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
Returns the square of absolute value in a number form.
require "complex" Complex.new(42, 2).abs2 # => 1768
Returns the conjugate of self.
require "complex" Complex.new(42, 2).conj # => 42.0 - 2.0.i Complex.new(42, -2).conj # => 42.0 + 2.0.i
Writes this complex object to an io, surrounded by parentheses.
require "complex" Complex.new(42, 2).inspect # => "(42.0 + 2.0i)"
Returns the complex sign of self.
If self is non-zero, the returned value has the same phase as self and absolute value 1.0. If self is zero, returns self.
The returned value's real and imaginary components always have the same signs as the respective components of self.
require "complex" Complex.new(7, -24).sign # => (0.28 - 0.96.i) Complex.new(1.0 / 0.0, 24).sign # => (1.0 + 0.0.i) Complex.new(-0.0, +0.0).sign # => (-0.0 + 0.0.i)
Returns self.
Returns the value as a Float64 if possible (the imaginary part should be exactly zero), raises otherwise.
Writes this complex object to an io.
require "complex" Complex.new(42, 2).to_s # => "42.0 + 2.0i"
Returns true if the complex number is zero. This means the real and imaginary are both zero.
require "complex" Complex.new(0, 0).zero? # => true Complex.new(1, 0).zero? # => false Complex.new(0, 1).zero? # => false
© 2012–2026 Manas Technology Solutions.
Licensed under the Apache License, Version 2.0.
https://crystal-lang.org/api/1.19.0/Complex.html