$30 GRAYBYTE WORDPRESS FILE MANAGER $95

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 104.21.43.35 | ADMIN IP 216.73.216.23
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/alt/ruby19/lib64/ruby/1.9.1/

HOME
Current File : /opt/alt/ruby19/lib64/ruby/1.9.1//cmath.rb
##
# = CMath
#
# CMath is a library that provides trigonometric and transcendental
# functions for complex numbers.
#
# == Usage
#
# To start using this library, simply:
#
#   require "cmath"
#
# Square root of a negative number is a complex number.
#
#   CMath.sqrt(-9)  #=> 0+3.0i
#

module CMath

  include Math

  alias exp! exp
  alias log! log
  alias log2! log2
  alias log10! log10
  alias sqrt! sqrt
  alias cbrt! cbrt

  alias sin! sin
  alias cos! cos
  alias tan! tan

  alias sinh! sinh
  alias cosh! cosh
  alias tanh! tanh

  alias asin! asin
  alias acos! acos
  alias atan! atan
  alias atan2! atan2

  alias asinh! asinh
  alias acosh! acosh
  alias atanh! atanh

  ##
  # Math::E raised to the +z+ power
  #
  #   exp(Complex(0,0))      #=> 1.0+0.0i
  #   exp(Complex(0,PI))     #=> -1.0+1.2246467991473532e-16i
  #   exp(Complex(0,PI/2.0)) #=> 6.123233995736766e-17+1.0i
  def exp(z)
    begin
      if z.real?
	exp!(z)
      else
	ere = exp!(z.real)
	Complex(ere * cos!(z.imag),
		ere * sin!(z.imag))
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # Returns the natural logarithm of Complex.  If a second argument is given,
  # it will be the base of logarithm.
  #
  #   log(Complex(0,0)) #=> -Infinity+0.0i
  def log(*args)
    begin
      z, b = args
      unless b.nil? || b.kind_of?(Numeric)
	raise TypeError,  "Numeric Number required"
      end
      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
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the base 2 logarithm of +z+
  def log2(z)
    begin
      if z.real? and z >= 0
	log2!(z)
      else
	log(z) / log!(2)
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the base 10 logarithm of +z+
  def log10(z)
    begin
      if z.real? and z >= 0
	log10!(z)
      else
	log(z) / log!(10)
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # Returns the non-negative square root of Complex.
  #   sqrt(-1)            #=> 0+1.0i
  #   sqrt(Complex(-1,0)) #=> 0.0+1.0i
  #   sqrt(Complex(0,8))  #=> 2.0+2.0i
  def sqrt(z)
    begin
      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.0), sqrt!((r - x) / 2.0))
	end
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the principal value of the cube root of +z+
  def cbrt(z)
    z ** (1.0/3)
  end

  ##
  # returns the sine of +z+, where +z+ is given in radians
  def sin(z)
    begin
      if z.real?
	sin!(z)
      else
	Complex(sin!(z.real) * cosh!(z.imag),
		cos!(z.real) * sinh!(z.imag))
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the cosine of +z+, where +z+ is given in radians
  def cos(z)
    begin
      if z.real?
	cos!(z)
      else
	Complex(cos!(z.real) * cosh!(z.imag),
		-sin!(z.real) * sinh!(z.imag))
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the tangent of +z+, where +z+ is given in radians
  def tan(z)
    begin
      if z.real?
	tan!(z)
      else
	sin(z) / cos(z)
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the hyperbolic sine of +z+, where +z+ is given in radians
  def sinh(z)
    begin
      if z.real?
	sinh!(z)
      else
	Complex(sinh!(z.real) * cos!(z.imag),
		cosh!(z.real) * sin!(z.imag))
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the hyperbolic cosine of +z+, where +z+ is given in radians
  def cosh(z)
    begin
      if z.real?
	cosh!(z)
      else
	Complex(cosh!(z.real) * cos!(z.imag),
		sinh!(z.real) * sin!(z.imag))
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the hyperbolic tangent of +z+, where +z+ is given in radians
  def tanh(z)
    begin
      if z.real?
	tanh!(z)
      else
	sinh(z) / cosh(z)
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the arc sine of +z+
  def asin(z)
    begin
      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
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the arc cosine of +z+
  def acos(z)
    begin
      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
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the arc tangent of +z+
  def atan(z)
    begin
      if z.real?
	atan!(z)
      else
	1.0.i * log((1.0.i + z) / (1.0.i - z)) / 2.0
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the arc tangent of +y+ divided by +x+ using the signs of +y+ and
  # +x+ to determine the quadrant
  def atan2(y,x)
    begin
      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
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the inverse hyperbolic sine of +z+
  def asinh(z)
    begin
      if z.real?
	asinh!(z)
      else
	log(z + sqrt(1.0 + z * z))
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the inverse hyperbolic cosine of +z+
  def acosh(z)
    begin
      if z.real? and z >= 1
	acosh!(z)
      else
	log(z + sqrt(z * z - 1.0))
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the inverse hyperbolic tangent of +z+
  def atanh(z)
    begin
      if z.real? and z >= -1 and z <= 1
	atanh!(z)
      else
	log((1.0 + z) / (1.0 - z)) / 2.0
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  module_function :exp!
  module_function :exp
  module_function :log!
  module_function :log
  module_function :log2!
  module_function :log2
  module_function :log10!
  module_function :log10
  module_function :sqrt!
  module_function :sqrt
  module_function :cbrt!
  module_function :cbrt

  module_function :sin!
  module_function :sin
  module_function :cos!
  module_function :cos
  module_function :tan!
  module_function :tan

  module_function :sinh!
  module_function :sinh
  module_function :cosh!
  module_function :cosh
  module_function :tanh!
  module_function :tanh

  module_function :asin!
  module_function :asin
  module_function :acos!
  module_function :acos
  module_function :atan!
  module_function :atan
  module_function :atan2!
  module_function :atan2

  module_function :asinh!
  module_function :asinh
  module_function :acosh!
  module_function :acosh
  module_function :atanh!
  module_function :atanh

  module_function :frexp
  module_function :ldexp
  module_function :hypot
  module_function :erf
  module_function :erfc
  module_function :gamma
  module_function :lgamma

  private
  def handle_no_method_error # :nodoc:
    if $!.name == :real?
      raise TypeError, "Numeric Number required"
    else
      raise
    end
  end
  module_function :handle_no_method_error

end



Current_dir [ NOT WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
3 Mar 2024 10.48 PM
root / root
0755
cgi
--
3 Mar 2024 10.48 PM
root / linksafe
0755
date
--
3 Mar 2024 10.48 PM
root / linksafe
0755
digest
--
3 Mar 2024 10.48 PM
root / linksafe
0755
dl
--
3 Mar 2024 10.48 PM
root / linksafe
0755
drb
--
3 Mar 2024 10.48 PM
root / linksafe
0755
fiddle
--
3 Mar 2024 10.48 PM
root / linksafe
0755
irb
--
3 Mar 2024 10.48 PM
root / linksafe
0755
json
--
3 Mar 2024 10.48 PM
root / linksafe
0755
matrix
--
3 Mar 2024 10.48 PM
root / linksafe
0755
net
--
3 Mar 2024 10.48 PM
root / linksafe
0755
openssl
--
3 Mar 2024 10.48 PM
root / linksafe
0755
optparse
--
3 Mar 2024 10.48 PM
root / linksafe
0755
psych
--
3 Mar 2024 10.48 PM
root / linksafe
0755
racc
--
3 Mar 2024 10.48 PM
root / linksafe
0755
rake
--
3 Mar 2024 10.50 PM
root / linksafe
0755
rbconfig
--
3 Mar 2024 10.48 PM
root / linksafe
0755
rdoc
--
3 Mar 2024 10.48 PM
root / linksafe
0755
rexml
--
3 Mar 2024 10.48 PM
root / linksafe
0755
rinda
--
3 Mar 2024 10.48 PM
root / linksafe
0755
ripper
--
3 Mar 2024 10.48 PM
root / linksafe
0755
rss
--
3 Mar 2024 10.48 PM
root / linksafe
0755
rubygems
--
3 Mar 2024 10.48 PM
root / linksafe
0755
shell
--
3 Mar 2024 10.48 PM
root / linksafe
0755
syck
--
3 Mar 2024 10.48 PM
root / linksafe
0755
test
--
3 Mar 2024 10.48 PM
root / linksafe
0755
uri
--
3 Mar 2024 10.48 PM
root / linksafe
0755
webrick
--
3 Mar 2024 10.48 PM
root / linksafe
0755
x86_64-linux
--
3 Mar 2024 10.48 PM
root / root
0755
xmlrpc
--
3 Mar 2024 10.48 PM
root / linksafe
0755
yaml
--
3 Mar 2024 10.48 PM
root / linksafe
0755
English.rb
5.588 KB
2 Oct 2009 10.45 AM
root / linksafe
0644
abbrev.rb
2.565 KB
18 May 2011 9.19 PM
root / linksafe
0644
base64.rb
2.631 KB
2 Oct 2009 10.45 AM
root / linksafe
0644
benchmark.rb
17.999 KB
28 Jun 2011 6.09 AM
root / linksafe
0644
cgi.rb
9.296 KB
16 May 2011 9.21 PM
root / linksafe
0644
cmath.rb
7.223 KB
30 Jul 2011 2.53 PM
root / linksafe
0644
complex.rb
0.371 KB
16 Aug 2009 3.34 PM
root / linksafe
0644
csv.rb
82.663 KB
21 Jul 2011 9.40 PM
root / linksafe
0644
date.rb
0.924 KB
21 May 2011 12.25 PM
root / linksafe
0644
debug.rb
23.228 KB
28 Jun 2011 11.45 AM
root / linksafe
0644
delegate.rb
9.738 KB
27 Jul 2011 7.56 PM
root / linksafe
0644
digest.rb
2.244 KB
16 May 2011 8.52 PM
root / linksafe
0644
dl.rb
0.172 KB
12 Jun 2010 3.28 PM
root / linksafe
0644
drb.rb
0.019 KB
2 Oct 2009 10.45 AM
root / linksafe
0644
e2mmap.rb
3.805 KB
19 May 2011 12.07 AM
root / linksafe
0644
erb.rb
25.717 KB
13 Dec 2012 5.24 AM
root / linksafe
0644
expect.rb
1.332 KB
26 Aug 2011 11.54 PM
root / linksafe
0644
fiddle.rb
0.906 KB
16 Aug 2011 12.51 AM
root / linksafe
0644
fileutils.rb
45.323 KB
25 Feb 2012 8.11 AM
root / linksafe
0644
find.rb
2.031 KB
18 May 2011 9.19 PM
root / linksafe
0644
forwardable.rb
7.64 KB
22 May 2011 2.14 AM
root / linksafe
0644
getoptlong.rb
15.38 KB
19 May 2011 12.07 AM
root / linksafe
0644
gserver.rb
8.832 KB
31 Oct 2013 2.40 PM
root / linksafe
0644
ipaddr.rb
24.922 KB
11 Apr 2013 2.31 AM
root / linksafe
0644
irb.rb
8.338 KB
19 May 2011 12.07 AM
root / linksafe
0644
json.rb
1.737 KB
30 Aug 2011 2.25 AM
root / linksafe
0644
kconv.rb
5.737 KB
7 Dec 2010 11.47 AM
root / linksafe
0644
logger.rb
20.846 KB
19 May 2011 12.07 AM
root / linksafe
0644
mathn.rb
6.524 KB
26 Aug 2011 11.54 PM
root / linksafe
0644
matrix.rb
47.646 KB
9 Jul 2011 7.11 PM
root / linksafe
0644
mkmf.rb
68.899 KB
6 Feb 2014 5.20 AM
root / linksafe
0644
monitor.rb
6.936 KB
17 Jun 2011 10.33 PM
root / linksafe
0644
mutex_m.rb
1.611 KB
19 May 2011 12.07 AM
root / linksafe
0644
observer.rb
5.687 KB
16 May 2011 9.53 PM
root / linksafe
0644
open-uri.rb
25.844 KB
24 Feb 2014 3.43 AM
root / linksafe
0644
open3.rb
20.643 KB
18 May 2011 9.19 PM
root / linksafe
0644
openssl.rb
0.534 KB
25 Jul 2011 6.38 AM
root / linksafe
0644
optparse.rb
51.129 KB
14 Feb 2014 4.52 AM
root / linksafe
0644
ostruct.rb
6.494 KB
24 Feb 2012 2.49 PM
root / linksafe
0644
pathname.rb
14.208 KB
26 Aug 2011 11.54 PM
root / linksafe
0644
pp.rb
13.311 KB
1 Aug 2010 2.09 PM
root / linksafe
0644
prettyprint.rb
9.628 KB
2 Aug 2011 3.25 PM
root / linksafe
0644
prime.rb
13.977 KB
1 Jun 2011 12.21 AM
root / linksafe
0644
profile.rb
0.2 KB
2 Oct 2009 10.45 AM
root / linksafe
0644
profiler.rb
1.588 KB
2 Oct 2009 10.45 AM
root / linksafe
0644
pstore.rb
15.808 KB
10 Oct 2011 11.14 PM
root / linksafe
0644
psych.rb
9.819 KB
7 Aug 2012 8.50 PM
root / linksafe
0644
rake.rb
2.018 KB
29 Jun 2011 3.09 AM
root / linksafe
0644
rational.rb
0.301 KB
24 Sep 2009 12.42 AM
root / linksafe
0644
rdoc.rb
4.287 KB
6 Feb 2013 8.00 AM
root / linksafe
0644
resolv-replace.rb
1.74 KB
29 Oct 2010 10.02 PM
root / linksafe
0644
resolv.rb
59.914 KB
14 Feb 2014 6.56 AM
root / linksafe
0644
ripper.rb
0.089 KB
2 Oct 2009 10.45 AM
root / linksafe
0644
rss.rb
2.841 KB
11 May 2011 10.22 AM
root / linksafe
0644
rubygems.rb
34.134 KB
22 Dec 2013 4.38 AM
root / linksafe
0644
scanf.rb
23.529 KB
20 May 2011 12.22 PM
root / linksafe
0644
securerandom.rb
8.459 KB
7 May 2012 11.25 AM
root / linksafe
0644
set.rb
29.907 KB
10 Feb 2012 8.28 AM
root / linksafe
0644
shell.rb
5.904 KB
19 May 2011 12.07 AM
root / linksafe
0644
shellwords.rb
3.877 KB
12 Feb 2012 7.51 AM
root / linksafe
0644
singleton.rb
4.018 KB
18 May 2011 2.09 PM
root / linksafe
0644
socket.rb
23.22 KB
30 Jan 2014 12.04 PM
root / linksafe
0644
syck.rb
13.913 KB
19 Jul 2010 4.54 AM
root / linksafe
0644
sync.rb
6.874 KB
29 Jun 2011 3.09 AM
root / linksafe
0644
tempfile.rb
10.419 KB
31 Oct 2013 2.44 PM
root / linksafe
0644
thread.rb
6.589 KB
14 Feb 2014 3.48 AM
root / linksafe
0644
thwait.rb
3.376 KB
29 Jun 2011 3.09 AM
root / linksafe
0644
time.rb
17.031 KB
31 Oct 2013 2.06 PM
root / linksafe
0644
timeout.rb
3.257 KB
2 Apr 2013 4.09 AM
root / linksafe
0644
tmpdir.rb
3.723 KB
18 May 2011 9.19 PM
root / linksafe
0644
tracer.rb
6.629 KB
29 Jun 2011 1.19 PM
root / linksafe
0644
tsort.rb
6.795 KB
6 Mar 2009 4.23 AM
root / linksafe
0644
ubygems.rb
0.262 KB
2 Oct 2009 10.45 AM
root / linksafe
0644
un.rb
8.323 KB
19 May 2011 12.07 AM
root / linksafe
0644
uri.rb
3.07 KB
13 May 2011 8.03 PM
root / linksafe
0644
weakref.rb
2.292 KB
26 Aug 2011 11.54 PM
root / linksafe
0644
webrick.rb
6.801 KB
10 May 2011 11.37 PM
root / linksafe
0644
yaml.rb
2.579 KB
29 May 2013 12.00 PM
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF