Class: Complex
- Inherits:
-
Numeric
show all
- Defined in:
- mruby/mrbgems/mruby-complex/mrblib/complex.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Numeric
#allbits?, #anybits?, #eql?, #finite?, #infinite?, #negative?, #nobits?, #nonzero?, #positive?, #zero?
Methods included from Comparable
#<, #<=, #==, #>, #>=, #between?, #clamp
Class Method Details
.polar(abs, arg = 0) ⇒ Object
2
3
4
|
# File 'mruby/mrbgems/mruby-complex/mrblib/complex.rb', line 2
def self.polar(abs, arg = 0)
Complex(abs * Math.cos(arg), abs * Math.sin(arg))
end
|
Instance Method Details
14
15
16
|
# File 'mruby/mrbgems/mruby-complex/mrblib/complex.rb', line 14
def +@
self
end
|
18
19
20
|
# File 'mruby/mrbgems/mruby-complex/mrblib/complex.rb', line 18
def -@
Complex(-real, -imaginary)
end
|
#abs ⇒ Object
Also known as:
magnitude
22
23
24
|
# File 'mruby/mrbgems/mruby-complex/mrblib/complex.rb', line 22
def abs
Math.hypot imaginary, real
end
|
27
28
29
|
# File 'mruby/mrbgems/mruby-complex/mrblib/complex.rb', line 27
def abs2
real * real + imaginary * imaginary
end
|
#arg ⇒ Object
Also known as:
angle, phase
31
32
33
|
# File 'mruby/mrbgems/mruby-complex/mrblib/complex.rb', line 31
def arg
Math.atan2 imaginary, real
end
|
#conjugate ⇒ Object
Also known as:
conj
37
38
39
|
# File 'mruby/mrbgems/mruby-complex/mrblib/complex.rb', line 37
def conjugate
Complex(real, -imaginary)
end
|
#fdiv(numeric) ⇒ Object
42
43
44
|
# File 'mruby/mrbgems/mruby-complex/mrblib/complex.rb', line 42
def fdiv(numeric)
Complex(real / numeric, imaginary / numeric)
end
|
6
7
8
|
# File 'mruby/mrbgems/mruby-complex/mrblib/complex.rb', line 6
def inspect
"(#{to_s})"
end
|
46
47
48
|
# File 'mruby/mrbgems/mruby-complex/mrblib/complex.rb', line 46
def polar
[abs, arg]
end
|
#real? ⇒ Boolean
50
51
52
|
# File 'mruby/mrbgems/mruby-complex/mrblib/complex.rb', line 50
def real?
false
end
|
#rectangular ⇒ Object
Also known as:
rect
54
55
56
|
# File 'mruby/mrbgems/mruby-complex/mrblib/complex.rb', line 54
def rectangular
[real, imaginary]
end
|
59
60
61
|
# File 'mruby/mrbgems/mruby-complex/mrblib/complex.rb', line 59
def to_c
self
end
|
63
64
65
66
|
# File 'mruby/mrbgems/mruby-complex/mrblib/complex.rb', line 63
def to_r
raise RangeError.new "can't convert #{to_s} into Rational" unless imaginary.zero?
Rational(real, 1)
end
|
10
11
12
|
# File 'mruby/mrbgems/mruby-complex/mrblib/complex.rb', line 10
def to_s
"#{real}#{'+' unless imaginary < 0}#{imaginary}#{'*' unless imaginary.finite?}i"
end
|