1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* complex.c (nucomp_expt): do not use rb_fexpt.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
tadf 2009-06-29 16:20:32 +00:00
parent 8bacaf1f5c
commit 59a9da6443
3 changed files with 29 additions and 11 deletions

View file

@ -4,8 +4,10 @@ module CMath
alias exp! exp
alias log! log
alias log2! log2
alias log10! log10
alias sqrt! sqrt
alias cbrt! cbrt
alias sin! sin
alias cos! cos
@ -47,6 +49,14 @@ module CMath
end
end
def log2(z)
if z.real? and z >= 0
log2!(z)
else
log(z) / log!(2)
end
end
def log10(z)
if z.real? and z >= 0
log10!(z)
@ -74,6 +84,15 @@ module CMath
end
end
def cbrt(z)
if z.real? and z >= 0
cbrt!(z)
else
# exp(log(z) * (1.0/3))
Complex(z) ** (1.0/3)
end
end
def sin(z)
if z.real?
sin!(z)
@ -186,10 +205,14 @@ module CMath
module_function :exp
module_function :log!
module_function :log
module_function :log2!
module_function :log2
module_function :log10!
module_function :log10
module_function :sqrt!
module_function :sqrt
module_function :cbrt!
module_function :cbrt
module_function :sin!
module_function :sin
@ -221,8 +244,6 @@ module CMath
module_function :atanh!
module_function :atanh
module_function :log2
module_function :cbrt
module_function :frexp
module_function :ldexp
module_function :hypot