diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:13:14 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:13:14 +0000 |
commit | d0233291bc8a5068e52c69c210e5979e5324b5bc (patch) | |
tree | 7d9459449c33792c63eeb7baa071e76352e0baab /trunk/lib/cmath.rb | |
parent | 0dc342de848a642ecce8db697b8fecd83a63e117 (diff) | |
parent | 72eaacaa15256ab95c3b52ea386f88586fb9da40 (diff) |
re-adding tag v1_9_0_4 as an alias of trunk@18848v1_9_0_4
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_9_0_4@18849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'trunk/lib/cmath.rb')
-rw-r--r-- | trunk/lib/cmath.rb | 223 |
1 files changed, 0 insertions, 223 deletions
diff --git a/trunk/lib/cmath.rb b/trunk/lib/cmath.rb deleted file mode 100644 index 55995879e6..0000000000 --- a/trunk/lib/cmath.rb +++ /dev/null @@ -1,223 +0,0 @@ -module CMath - - include Math - - alias exp! exp - alias log! log - alias log10! log10 - alias sqrt! sqrt - - alias sin! sin - alias cos! cos - alias tan! tan - - alias sinh! sinh - alias cosh! cosh - alias tanh! tanh - - alias asin! asin - alias acos! acos - alias atan! atan - alias atan2! atan2 - - alias asinh! asinh - alias acosh! acosh - alias atanh! atanh - - def exp(z) - if z.scalar? - exp!(z) - else - Complex(exp!(z.real) * cos!(z.image), - exp!(z.real) * sin!(z.image)) - end - end - - def log(*args) - z, b = args - if z.scalar? and z >= 0 and (b.nil? or b >= 0) - log!(*args) - else - r, theta = z.polar - a = Complex(log!(r.abs), theta) - if b - a /= log(b) - end - a - end - end - - def log10(z) - if z.scalar? - log10!(z) - else - log(z) / log!(10) - end - end - - def sqrt(z) - if z.scalar? - if z >= 0 - sqrt!(z) - else - Complex(0,sqrt!(-z)) - end - else - if z.image < 0 - sqrt(z.conjugate).conjugate - else - r = z.abs - x = z.real - Complex(sqrt!((r + x) / 2), sqrt!((r - x) / 2)) - end - end - end - - def sin(z) - if z.scalar? - sin!(z) - else - Complex(sin!(z.real) * cosh!(z.image), - cos!(z.real) * sinh!(z.image)) - end - end - - def cos(z) - if z.scalar? - cos!(z) - else - Complex(cos!(z.real) * cosh!(z.image), - -sin!(z.real) * sinh!(z.image)) - end - end - - def tan(z) - if z.scalar? - tan!(z) - else - sin(z)/cos(z) - end - end - - def sinh(z) - if z.scalar? - sinh!(z) - else - Complex(sinh!(z.real) * cos!(z.image), - cosh!(z.real) * sin!(z.image)) - end - end - - def cosh(z) - if z.scalar? - cosh!(z) - else - Complex(cosh!(z.real) * cos!(z.image), - sinh!(z.real) * sin!(z.image)) - end - end - - def tanh(z) - if z.scalar? - tanh!(z) - else - sinh(z) / cosh(z) - end - end - - def asin(z) - if z.scalar? and z >= -1 and z <= 1 - asin!(z) - else - -1.0.im * log(1.0.im * z + sqrt(1.0 - z * z)) - end - end - - def acos(z) - if z.scalar? and z >= -1 and z <= 1 - acos!(z) - else - -1.0.im * log(z + 1.0.im * sqrt(1.0 - z * z)) - end - end - - def atan(z) - if z.scalar? - atan!(z) - else - 1.0.im * log((1.0.im + z) / (1.0.im - z)) / 2.0 - end - end - - def atan2(y,x) - if y.scalar? and x.scalar? - atan2!(y,x) - else - -1.0.im * log((x + 1.0.im * y) / sqrt(x * x + y * y)) - end - end - - def acosh(z) - if z.scalar? and z >= 1 - acosh!(z) - else - log(z + sqrt(z * z - 1.0)) - end - end - - def asinh(z) - if z.scalar? - asinh!(z) - else - log(z + sqrt(1.0 + z * z)) - end - end - - def atanh(z) - if z.scalar? and z >= -1 and z <= 1 - atanh!(z) - else - log((1.0 + z) / (1.0 - z)) / 2.0 - end - end - - module_function :exp! - module_function :exp - module_function :log! - module_function :log - module_function :log10! - module_function :log10 - module_function :sqrt! - module_function :sqrt - - module_function :sin! - module_function :sin - module_function :cos! - module_function :cos - module_function :tan! - module_function :tan - - module_function :sinh! - module_function :sinh - module_function :cosh! - module_function :cosh - module_function :tanh! - module_function :tanh - - module_function :asin! - module_function :asin - module_function :acos! - module_function :acos - module_function :atan! - module_function :atan - module_function :atan2! - module_function :atan2 - - module_function :asinh! - module_function :asinh - module_function :acosh! - module_function :acosh - module_function :atanh! - module_function :atanh - -end |