Module Math
In: complex.rb

Methods

acos   acosh   asin   asinh   atan   atan2   atanh   cos   cosh   exp   log   log10   sin   sinh   sqrt   tan   tanh  

External Aliases

sqrt -> sqrt!
exp -> exp!
log -> log!
log10 -> log10!
cos -> cos!
sin -> sin!
tan -> tan!
cosh -> cosh!
sinh -> sinh!
tanh -> tanh!
acos -> acos!
asin -> asin!
atan -> atan!
atan2 -> atan2!
acosh -> acosh!
asinh -> asinh!
atanh -> atanh!

Public Instance methods

[Source]

# File complex.rb, line 534
  def acos(z)
    if Complex.generic?(z) and z >= -1 and z <= 1
      acos!(z)
    else
      -1.0.im * log( z + 1.0.im * sqrt(1.0-z*z) )
    end
  end

[Source]

# File complex.rb, line 566
  def acosh(z)
    if Complex.generic?(z) and z >= 1
      acosh!(z)
    else
      log( z + sqrt(z*z-1.0) )
    end
  end

[Source]

# File complex.rb, line 542
  def asin(z)
    if Complex.generic?(z) and z >= -1 and z <= 1
      asin!(z)
    else
      -1.0.im * log( 1.0.im * z + sqrt(1.0-z*z) )
    end
  end

[Source]

# File complex.rb, line 574
  def asinh(z)
    if Complex.generic?(z)
      asinh!(z)
    else
      log( z + sqrt(1.0+z*z) )
    end
  end

[Source]

# File complex.rb, line 550
  def atan(z)
    if Complex.generic?(z)
      atan!(z)
    else
      1.0.im * log( (1.0.im+z) / (1.0.im-z) ) / 2.0
    end
  end

[Source]

# File complex.rb, line 558
  def atan2(y,x)
    if Complex.generic?(y) and Complex.generic?(x)
      atan2!(y,x)
    else
      -1.0.im * log( (x+1.0.im*y) / sqrt(x*x+y*y) )
    end
  end

[Source]

# File complex.rb, line 582
  def atanh(z)
    if Complex.generic?(z) and z >= -1 and z <= 1
      atanh!(z)
    else
      log( (1.0+z) / (1.0-z) ) / 2.0
    end
  end

Redefined to handle a Complex argument.

[Source]

# File complex.rb, line 463
  def cos(z)
    if Complex.generic?(z)
      cos!(z)
    else
      Complex(cos!(z.real)*cosh!(z.image),
              -sin!(z.real)*sinh!(z.image))
    end
  end

[Source]

# File complex.rb, line 499
  def cosh(z)
    if Complex.generic?(z)
      cosh!(z)
    else
      Complex( cosh!(z.real)*cos!(z.image), sinh!(z.real)*sin!(z.image) )
    end
  end

Redefined to handle a Complex argument.

[Source]

# File complex.rb, line 454
  def exp(z)
    if Complex.generic?(z)
      exp!(z)
    else
      Complex(exp!(z.real) * cos!(z.image), exp!(z.real) * sin!(z.image))
    end
  end

Redefined to handle a Complex argument.

[Source]

# File complex.rb, line 516
  def log(z)
    if Complex.generic?(z) and z >= 0
      log!(z)
    else
      r, theta = z.polar
      Complex(log!(r.abs), theta)
    end
  end

Redefined to handle a Complex argument.

[Source]

# File complex.rb, line 526
  def log10(z)
    if Complex.generic?(z)
      log10!(z)
    else
      log(z)/log!(10)
    end
  end

Redefined to handle a Complex argument.

[Source]

# File complex.rb, line 473
  def sin(z)
    if Complex.generic?(z)
      sin!(z)
    else
      Complex(sin!(z.real)*cosh!(z.image),
              cos!(z.real)*sinh!(z.image))
    end
  end

[Source]

# File complex.rb, line 491
  def sinh(z)
    if Complex.generic?(z)
      sinh!(z)
    else
      Complex( sinh!(z.real)*cos!(z.image), cosh!(z.real)*sin!(z.image) )
    end
  end

Redefined to handle a Complex argument.

[Source]

# File complex.rb, line 435
  def sqrt(z)
    if Complex.generic?(z)
      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

Redefined to handle a Complex argument.

[Source]

# File complex.rb, line 483
  def tan(z)
    if Complex.generic?(z)
      tan!(z)
    else
      sin(z)/cos(z)
    end
  end

[Source]

# File complex.rb, line 507
  def tanh(z)
    if Complex.generic?(z)
      tanh!(z)
    else
      sinh(z)/cosh(z)
    end
  end

[Validate]

ruby-doc.org is hosted and maintained by James Britt and Happy Camper Studios, a Ruby application development company in Phoenix, Arizona. The site was created in 2002 as part of the Ruby Documentation Project to promote the Ruby language and to help other Ruby hackers.

Documentation content on ruby-doc.org is provided by remarkable members of the Ruby community.

For more information on the Ruby programming language, visit ruby-lang.org.

Want to help improve Ruby's API docs? See Ruby Documentation Guidelines.