Bug #10487 » modify_cmath_rb_v2.patch
| lib/cmath.rb | ||
|---|---|---|
|
# it will be the base of logarithm.
|
||
|
#
|
||
|
# log(Complex(0,0)) #=> -Infinity+0.0i
|
||
|
def log(*args)
|
||
|
def log(z, b=::Math::E)
|
||
|
begin
|
||
|
z, b = args
|
||
|
unless b.nil? || b.kind_of?(Numeric)
|
||
|
raise TypeError, "Numeric Number required"
|
||
|
end
|
||
|
if z.real? and z >= 0 and (b.nil? or b >= 0)
|
||
|
log!(*args)
|
||
|
if z.real? && z >= 0 && b >= 0
|
||
|
log!(z, b)
|
||
|
else
|
||
|
a = Complex(log!(z.abs), z.arg)
|
||
|
if b
|
||
|
a /= log(b)
|
||
|
end
|
||
|
a
|
||
|
Complex(log!(z.abs), z.arg) / log(b)
|
||
|
end
|
||
|
rescue NoMethodError
|
||
|
handle_no_method_error
|
||
| ... | ... | |
|
module_function :handle_no_method_error
|
||
|
end
|
||
- « Previous
- 1
- 2
- 3
- 4
- Next »