# File complex.rb, line 536 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
# File complex.rb, line 568 def acosh(z) if Complex.generic?(z) and z >= 1 acosh!(z) else log( z + sqrt(z*z-1.0) ) end end
# File complex.rb, line 544 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
# File complex.rb, line 576 def asinh(z) if Complex.generic?(z) asinh!(z) else log( z + sqrt(1.0+z*z) ) end end
# File complex.rb, line 552 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
# File complex.rb, line 560 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
# File complex.rb, line 584 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.
# File complex.rb, line 465 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
# File complex.rb, line 501 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.
# File complex.rb, line 456 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.
# File complex.rb, line 518 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.
# File complex.rb, line 528 def log10(z) if Complex.generic?(z) log10!(z) else log(z)/log!(10) end end
Redefined to handle a Complex argument.
# File complex.rb, line 475 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
# File complex.rb, line 493 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.
# File complex.rb, line 437 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.
# File complex.rb, line 485 def tan(z) if Complex.generic?(z) tan!(z) else sin(z)/cos(z) end end
# File complex.rb, line 509 def tanh(z) if Complex.generic?(z) tanh!(z) else sinh(z)/cosh(z) end end