Complex
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
Defined in:
complex.crClass Method Summary
- .new(real : Number, imag : Number)
- .zero : Complex
Returns the number
0
in complex form.
Instance Method Summary
- #*(other : Complex)
Multiplies
self
by other. - #*(other : Number)
Multiplies
self
by other. - #+(other : Number)
Adds the value of
self
to other. - #+(other : Complex)
Adds the value of
self
to other. - #-
Returns the opposite of self.
- #-(other : Number)
Removes the value from other to self.
- #-(other : Complex)
Removes the value from other to self.
- #/(other : Number)
Divides
self
by other. - #/(other : Complex)
Divides
self
by other. - #==(other : Complex)
Determines whether
self
equals other or not. - #==(other : Number)
Determines whether
self
equals other or not. - #==(other)
Determines whether
self
equals 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.
- #imag : Float64
Returns the image part of self.
- #inspect(io : IO)
Write 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
Returns a tuple with the abs value and the phase.
- #real : Float64
Returns the real part of self.
- #sign
- #sqrt
Complex#sqrt
was inspired by the following blog post of Pavel Panchekha on floating point precision. - #to_s(io : IO)
Write this complex object to an io.
Instance methods inherited from struct Struct
==(other : self) : Bool ==, hash : Int32 hash, inspect(io : IO) : Nil inspect, pretty_print(pp) : Nil pretty_print, to_s(io) to_s Instance methods inherited from struct Value
==(other) ==, dup dup Instance methods inherited from class Object
!=(other) !=, !~(other) !~, ==(other) ==, ===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, class class, dup dup, hash hash, inspect(io : IO)
inspect inspect, itself itself, not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, tap(&block) tap, to_json(io : IO)
to_json to_json, to_pretty_json(indent : String = " ")
to_pretty_json(io : IO, indent : String = " ") to_pretty_json, to_s
to_s(io : IO) to_s, to_yaml(io : IO)
to_yaml to_yaml, try(&block) try
Class methods inherited from class Object
from_json(string_or_io, root : String) : selffrom_json(string_or_io) : self from_json, from_yaml(string_or_io) : self from_yaml
Class Method Detail
Instance Method Detail
def -Source
Returns the opposite of self.
def ==(other)Source
Determines whether self
equals other or not.
def absSource
Returns the absolute value of this complex number in a number form, using the Pythagorean theorem.
Complex.new(42, 2).abs # => 42.047592083257278 Complex.new(-42, 2).abs # => 42.047592083257278
def abs2Source
Returns the square of absolute value in a number form.
Complex.new(42, 2).abs2 # => 1768
def cloneSource
def conjSource
Returns the conjugate of self.
Complex.new(42, 2).conj # => 42.0 - 2.0i Complex.new(42, -2).conj # => 42.0 + 2.0i
def expSource
Calculates the exp of self.
Complex.new(4, 2).exp # => -22.720847417619233 + 49.645957334580565i
def inspect(io : IO)Source
Write this complex object to an io, surrounded by parentheses.
Complex.new(42, 2).inspect # => "(42.0 + 2.0i)"
def invSource
Returns the inverse of self.
def logSource
Calculates the log of self.
def log10Source
Calculates the log10 of self.
def log2Source
Calculates the log2 of self.
def phaseSource
Returns the phase of self.
def polarSource
Returns a tuple with the abs value and the phase.
Complex.new(42, 2).polar # => {42.047592083257278, 0.047583103276983396}
def signSource
def sqrtSource
Complex#sqrt
was inspired by the following blog post of Pavel Panchekha on floating point precision.
def to_s(io : IO)Source
Write this complex object to an io.
Complex.new(42, 2).to_s # => "42.0 + 2.0i"
© 2012–2017 Manas Technology Solutions.
Licensed under the Apache License, Version 2.0.
https://crystal-lang.org/api/0.22.0/Complex.html