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

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.

blog comments powered by Disqus