Extended maintenance of Ruby versions 1.8.7 and 1.9.2 ended on July 31, 2014. Read more

• cmath.rb

Quicksearch

# CMath

### Public Class Methods

acos(z) click to toggle source
```
# File cmath.rb, line 155
def acos(z)
if z.real? and z >= -1 and z <= 1
acos!(z)
else
(-1.0).i * log(z + 1.0.i * sqrt(1.0 - z * z))
end
end
```
Also aliased as: acos!
acos!(z) click to toggle source
Alias for: acos
acosh(z) click to toggle source
```
# File cmath.rb, line 187
def acosh(z)
if z.real? and z >= 1
acosh!(z)
else
log(z + sqrt(z * z - 1.0))
end
end
```
Also aliased as: acosh!
acosh!(z) click to toggle source
Alias for: acosh
asin(z) click to toggle source
```
# File cmath.rb, line 147
def asin(z)
if z.real? and z >= -1 and z <= 1
asin!(z)
else
(-1.0).i * log(1.0.i * z + sqrt(1.0 - z * z))
end
end
```
Also aliased as: asin!
asin!(z) click to toggle source
Alias for: asin
asinh(z) click to toggle source
```
# File cmath.rb, line 179
def asinh(z)
if z.real?
asinh!(z)
else
log(z + sqrt(1.0 + z * z))
end
end
```
Also aliased as: asinh!
asinh!(z) click to toggle source
Alias for: asinh
atan(z) click to toggle source
```
# File cmath.rb, line 163
def atan(z)
if z.real?
atan!(z)
else
1.0.i * log((1.0.i + z) / (1.0.i - z)) / 2.0
end
end
```
Also aliased as: atan!
atan!(z) click to toggle source
Alias for: atan
atan2(y,x) click to toggle source
```
# File cmath.rb, line 171
def atan2(y,x)
if y.real? and x.real?
atan2!(y,x)
else
(-1.0).i * log((x + 1.0.i * y) / sqrt(x * x + y * y))
end
end
```
Also aliased as: atan2!
atan2!(y,x) click to toggle source
Alias for: atan2
atanh(z) click to toggle source
```
# File cmath.rb, line 195
def atanh(z)
if z.real? and z >= -1 and z <= 1
atanh!(z)
else
log((1.0 + z) / (1.0 - z)) / 2.0
end
end
```
Also aliased as: atanh!
atanh!(z) click to toggle source
Alias for: atanh
cbrt(z) click to toggle source
```
# File cmath.rb, line 87
def cbrt(z)
if z.real?
cbrt!(z)
else
Complex(z) ** (1.0/3)
end
end
```
Also aliased as: cbrt!
cbrt!(z) click to toggle source
Alias for: cbrt
cos(z) click to toggle source
```
# File cmath.rb, line 104
def cos(z)
if z.real?
cos!(z)
else
Complex(cos!(z.real) * cosh!(z.imag),
-sin!(z.real) * sinh!(z.imag))
end
end
```
Also aliased as: cos!
cos!(z) click to toggle source
Alias for: cos
cosh(z) click to toggle source
```
# File cmath.rb, line 130
def cosh(z)
if z.real?
cosh!(z)
else
Complex(cosh!(z.real) * cos!(z.imag),
sinh!(z.real) * sin!(z.imag))
end
end
```
Also aliased as: cosh!
cosh!(z) click to toggle source
Alias for: cosh
exp(z) click to toggle source
```
# File cmath.rb, line 29
def exp(z)
if z.real?
exp!(z)
else
ere = exp!(z.real)
Complex(ere * cos!(z.imag),
ere * sin!(z.imag))
end
end
```
Also aliased as: exp!
exp!(z) click to toggle source
Alias for: exp
log(*args) click to toggle source
```
# File cmath.rb, line 39
def log(*args)
z, b = args
if z.real? and z >= 0 and (b.nil? or b >= 0)
log!(*args)
else
a = Complex(log!(z.abs), z.arg)
if b
a /= log(b)
end
a
end
end
```
Also aliased as: log!
log!(*args) click to toggle source
Alias for: log
log10(z) click to toggle source
```
# File cmath.rb, line 60
def log10(z)
if z.real? and z >= 0
log10!(z)
else
log(z) / log!(10)
end
end
```
Also aliased as: log10!
log10!(z) click to toggle source
Alias for: log10
log2(z) click to toggle source
```
# File cmath.rb, line 52
def log2(z)
if z.real? and z >= 0
log2!(z)
else
log(z) / log!(2)
end
end
```
Also aliased as: log2!
log2!(z) click to toggle source
Alias for: log2
sin(z) click to toggle source
```
# File cmath.rb, line 95
def sin(z)
if z.real?
sin!(z)
else
Complex(sin!(z.real) * cosh!(z.imag),
cos!(z.real) * sinh!(z.imag))
end
end
```
Also aliased as: sin!
sin!(z) click to toggle source
Alias for: sin
sinh(z) click to toggle source
```
# File cmath.rb, line 121
def sinh(z)
if z.real?
sinh!(z)
else
Complex(sinh!(z.real) * cos!(z.imag),
cosh!(z.real) * sin!(z.imag))
end
end
```
Also aliased as: sinh!
sinh!(z) click to toggle source
Alias for: sinh
sqrt(z) click to toggle source
```
# File cmath.rb, line 68
def sqrt(z)
if z.real?
if z < 0
Complex(0, sqrt!(-z))
else
sqrt!(z)
end
else
if z.imag < 0 ||
(z.imag == 0 && z.imag.to_s[0] == '-')
sqrt(z.conjugate).conjugate
else
r = z.abs
x = z.real
Complex(sqrt!((r + x) / 2), sqrt!((r - x) / 2))
end
end
end
```
Also aliased as: sqrt!
sqrt!(z) click to toggle source
Alias for: sqrt
tan(z) click to toggle source
```
# File cmath.rb, line 113
def tan(z)
if z.real?
tan!(z)
else
sin(z) / cos(z)
end
end
```
Also aliased as: tan!
tan!(z) click to toggle source
Alias for: tan
tanh(z) click to toggle source
```
# File cmath.rb, line 139
def tanh(z)
if z.real?
tanh!(z)
else
sinh(z) / cosh(z)
end
end
```
Also aliased as: tanh!
tanh!(z) click to toggle source
Alias for: tanh