struct Complex
Overview
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.0iDefined in:
complex.crConstructors
- .new(real : Number, imag : Number = 0)
- .new(c : Complex)
- 
        .zero : Complex
        
          Returns the number 0in complex form.
Instance Method Summary
- 
        #*(other : Number)
        
          Multiplies selfby other.
- 
        #*(other : Complex)
        
          Multiplies selfby other.
- 
        #+(other : Complex)
        
          Adds the value of selfto other.
- 
        #+(other : Number)
        
          Adds the value of selfto other.
- 
        #+
        
          Returns absolute value of self.
- 
        #-(other : Complex)
        
          Removes the value of other from self.
- 
        #-
        
          Returns the opposite of self.
- 
        #-(other : Number)
        
          Removes the value of other from self.
- 
        #/(other : Number)
        
          Divides selfby other.
- 
        #/(other : Complex)
        
          Divides selfby other.
- 
        #==(other : Complex)
        
          Determines whether selfequals other or not.
- 
        #==(other : Number)
        
          Determines whether selfequals other or not.
- 
        #==(other)
        
          Determines whether selfequals other or not.
- 
        #abs
        
          Returns the absolute value of this complex number in a number form, using the Pythagorean theorem. 
- 
        #abs2
        
          Returns the square of absolute value in a number form. 
- #clone
- 
        #conj
        
          Returns the conjugate of self.
- 
        #exp
        
          Calculates the exp of self.
- #hash(hasher)
- 
        #imag : Float64
        
          Returns the imaginary part. 
- 
        #inspect(io : IO) : Nil
        
          Writes this complex object to an io, surrounded by parentheses. 
- 
        #inv
        
          Returns the inverse of self.
- 
        #log
        
          Calculates the log of self.
- 
        #log10
        
          Calculates the log10 of self.
- 
        #log2
        
          Calculates the log2 of self.
- 
        #phase
        
          Returns the phase of self.
- #polar
- 
        #real : Float64
        
          Returns the real part. 
- #sign
- 
        #sqrt
        
          Complex#sqrtwas inspired by the following blog post of Pavel Panchekha on floating point precision.
- 
        #to_c
        
          Returns self.
- 
        #to_f
        
          See #to_f64.
- 
        #to_f32
        
          Returns the value as a Float32if possible (the imaginary part should be exactly zero), raises otherwise.
- 
        #to_f64
        
          Returns the value as a Float64if possible (the imaginary part should be exactly zero), raises otherwise.
- 
        #to_i
        
          See #to_i32.
- #to_i16(*args, **options)
- #to_i16(*args, **options, &)
- #to_i32(*args, **options)
- #to_i32(*args, **options, &)
- 
        #to_i64
        
          Returns the value as an Int64if possible (the imaginary part should be exactly zero), raises otherwise.
- #to_i8(*args, **options)
- #to_i8(*args, **options, &)
- 
        #to_s(io : IO) : Nil
        
          Writes this complex object to an io. 
- #to_u16(*args, **options)
- #to_u16(*args, **options, &)
- #to_u32(*args, **options)
- #to_u32(*args, **options, &)
- 
        #to_u64
        
          Returns the value as an UInt64if possible (the imaginary part should be exactly zero), raises otherwise.
- #to_u8(*args, **options)
- #to_u8(*args, **options, &)
- #zero? : Bool
Instance methods inherited from struct Struct
  
  
    
      ==(other) : Bool
    ==, 
    
  
    
      hash(hasher)
    hash, 
    
  
    
      inspect(io : IO) : Nil
    inspect, 
    
  
    
      pretty_print(pp) : Nil
    pretty_print, 
    
  
    
      to_s(io : IO) : Nil
    to_s
    
  
    
    
  
    
  Instance methods inherited from struct Value
  
  
    
      ==(other : JSON::Any)==(other : YAML::Any)
==(other) ==, dup dup
Instance methods inherited from class Object
  
  
    
      ! : Bool
    !, 
    
  
    
      !=(other)
    !=, 
    
  
    
      !~(other)
    !~, 
    
  
    
      ==(other)
    ==, 
    
  
    
      ===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash hash, in?(*values : Object) : Bool
in?(collection) : Bool in?, inspect : String
inspect(io : IO) : Nil inspect, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO)
to_json to_json, to_pretty_json(io : IO, indent : String = " ")
to_pretty_json(indent : String = " ") to_pretty_json, to_s : String
to_s(io : IO) : Nil to_s, to_yaml(io : IO)
to_yaml to_yaml, try(&) try, unsafe_as(type : T.class) forall T unsafe_as
Class methods inherited from class Object
  
  
    
      from_json(string_or_io, root : String)from_json(string_or_io) from_json, from_yaml(string_or_io : String | IO) from_yaml
Constructor Detail
Instance Method Detail
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.04759208325728Returns the square of absolute value in a number form.
require "complex"
Complex.new(42, 2).abs2 # => 1768Returns the conjugate of self.
require "complex"
Complex.new(42, 2).conj  # => 42.0 - 2.0i
Complex.new(42, -2).conj # => 42.0 + 2.0iCalculates the exp of self.
require "complex"
Complex.new(4, 2).exp # => -22.720847417619233 + 49.645957334580565iWrites this complex object to an io, surrounded by parentheses.
require "complex"
Complex.new(42, 2).inspect # => "(42.0 + 2.0i)"Returns a Tuple with the #abs value and the #phase.
require "complex"
Complex.new(42, 2).polar # => {42.047592083257278, 0.047583103276983396}Complex#sqrt was inspired by the following blog post
of Pavel Panchekha on floating point precision.
Returns the value as a Float32 if possible (the imaginary part should be exactly zero),
raises otherwise.
Returns the value as a Float64 if possible (the imaginary part should be exactly zero),
raises otherwise.
Returns the value as an Int64 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"