In Files

  • cmath.rb

Class/Module Index [+]

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