$20 GRAYBYTE WORDPRESS FILE MANAGER $79

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/ruby20/lib64/ruby/2.0.0/

HOME
Current File : /opt/alt/ruby20/lib64/ruby/2.0.0//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.43 PM
root / root
0755
cgi
--
3 Mar 2024 10.43 PM
root / linksafe
0755
date
--
3 Mar 2024 10.43 PM
root / linksafe
0755
digest
--
3 Mar 2024 10.43 PM
root / linksafe
0755
dl
--
3 Mar 2024 10.43 PM
root / linksafe
0755
drb
--
3 Mar 2024 10.43 PM
root / linksafe
0755
fiddle
--
3 Mar 2024 10.43 PM
root / linksafe
0755
irb
--
3 Mar 2024 10.43 PM
root / linksafe
0755
json
--
3 Mar 2024 10.43 PM
root / linksafe
0755
matrix
--
3 Mar 2024 10.43 PM
root / linksafe
0755
net
--
3 Mar 2024 10.43 PM
root / linksafe
0755
openssl
--
3 Mar 2024 10.43 PM
root / linksafe
0755
optparse
--
3 Mar 2024 10.43 PM
root / linksafe
0755
psych
--
3 Mar 2024 10.43 PM
root / linksafe
0755
racc
--
3 Mar 2024 10.43 PM
root / linksafe
0755
rake
--
3 Mar 2024 10.53 PM
root / linksafe
0755
rbconfig
--
3 Mar 2024 10.43 PM
root / linksafe
0755
rdoc
--
3 Mar 2024 10.43 PM
root / linksafe
0755
rexml
--
3 Mar 2024 10.43 PM
root / linksafe
0755
rinda
--
3 Mar 2024 10.43 PM
root / linksafe
0755
ripper
--
3 Mar 2024 10.43 PM
root / linksafe
0755
rss
--
3 Mar 2024 10.43 PM
root / linksafe
0755
rubygems
--
3 Mar 2024 10.43 PM
root / linksafe
0755
shell
--
3 Mar 2024 10.43 PM
root / linksafe
0755
syslog
--
3 Mar 2024 10.43 PM
root / root
0755
test
--
3 Mar 2024 10.43 PM
root / linksafe
0755
uri
--
3 Mar 2024 10.43 PM
root / linksafe
0755
webrick
--
3 Mar 2024 10.43 PM
root / linksafe
0755
x86_64-linux
--
3 Mar 2024 10.43 PM
root / root
0755
xmlrpc
--
3 Mar 2024 10.43 PM
root / linksafe
0755
yaml
--
3 Mar 2024 10.43 PM
root / linksafe
0755
English.rb
6.443 KB
4 Feb 2013 2.50 AM
root / linksafe
0644
abbrev.rb
3.313 KB
24 Feb 2013 5.06 AM
root / linksafe
0644
base64.rb
2.631 KB
2 Oct 2009 10.45 AM
root / linksafe
0644
benchmark.rb
17.939 KB
18 Jul 2012 3.56 AM
root / linksafe
0644
cgi.rb
9.391 KB
30 Nov 2012 5.06 AM
root / linksafe
0644
cmath.rb
7.223 KB
23 Jul 2011 12.14 PM
root / linksafe
0644
complex.rb
0.371 KB
16 Aug 2009 3.34 PM
root / linksafe
0644
csv.rb
81.322 KB
17 Sep 2014 5.56 AM
root / linksafe
0644
date.rb
0.924 KB
26 Jul 2023 2.09 PM
root / linksafe
0644
debug.rb
28.898 KB
2 Feb 2013 5.04 AM
root / linksafe
0644
delegate.rb
9.783 KB
30 Apr 2014 7.45 AM
root / linksafe
0644
digest.rb
2.244 KB
26 Jul 2023 2.09 PM
root / linksafe
0644
dl.rb
0.273 KB
26 Jul 2023 2.09 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
26.084 KB
3 Sep 2014 4.42 AM
root / linksafe
0644
expect.rb
2.144 KB
26 Jul 2023 2.09 PM
root / linksafe
0644
fiddle.rb
1.252 KB
26 Jul 2023 2.09 PM
root / linksafe
0644
fileutils.rb
46.353 KB
16 Oct 2014 7.23 AM
root / linksafe
0644
find.rb
2.082 KB
20 Sep 2012 7.14 AM
root / linksafe
0644
forwardable.rb
7.562 KB
4 Jan 2013 2.52 AM
root / linksafe
0644
getoptlong.rb
15.381 KB
24 Dec 2013 3.46 PM
root / linksafe
0644
gserver.rb
8.856 KB
7 Jul 2014 3.55 AM
root / linksafe
0644
ipaddr.rb
26.17 KB
23 Feb 2013 4.03 AM
root / linksafe
0644
irb.rb
20.029 KB
5 Feb 2013 3.57 PM
root / linksafe
0644
json.rb
1.737 KB
26 Jul 2023 2.09 PM
root / linksafe
0644
kconv.rb
5.737 KB
26 Jul 2023 2.09 PM
root / linksafe
0644
logger.rb
20.96 KB
13 Jul 2013 3.16 PM
root / linksafe
0644
mathn.rb
6.524 KB
26 Aug 2011 10.22 PM
root / linksafe
0644
matrix.rb
45.019 KB
5 Feb 2013 5.43 AM
root / linksafe
0644
mkmf.rb
78.186 KB
26 Jul 2023 2.06 PM
root / linksafe
0644
monitor.rb
6.935 KB
16 Nov 2012 4.55 PM
root / linksafe
0644
mutex_m.rb
2.002 KB
24 Feb 2013 4.49 AM
root / linksafe
0644
observer.rb
5.705 KB
21 Aug 2012 1.03 PM
root / linksafe
0644
open-uri.rb
23.656 KB
16 Feb 2014 5.02 PM
root / linksafe
0644
open3.rb
21.172 KB
13 Jan 2013 4.40 AM
root / linksafe
0644
openssl.rb
0.516 KB
26 Jul 2023 2.09 PM
root / linksafe
0644
optparse.rb
51.267 KB
19 Feb 2014 4.38 PM
root / linksafe
0644
ostruct.rb
7.636 KB
28 Oct 2012 9.20 PM
root / linksafe
0644
pathname.rb
15.297 KB
26 Jul 2023 2.09 PM
root / linksafe
0644
pp.rb
13.136 KB
15 Aug 2012 11.50 AM
root / linksafe
0644
prettyprint.rb
9.628 KB
2 Aug 2011 3.25 PM
root / linksafe
0644
prime.rb
13.978 KB
13 Jan 2013 5.07 AM
root / linksafe
0644
profile.rb
0.2 KB
2 Oct 2009 10.45 AM
root / linksafe
0644
profiler.rb
4.287 KB
3 Feb 2013 12.38 AM
root / linksafe
0644
pstore.rb
14.849 KB
11 Nov 2012 4.23 AM
root / linksafe
0644
psych.rb
9.896 KB
26 Jul 2023 2.09 PM
root / linksafe
0644
rake.rb
2.069 KB
29 Nov 2012 7.16 PM
root / linksafe
0644
rational.rb
0.301 KB
24 Sep 2009 12.42 AM
root / linksafe
0644
rdoc.rb
4.877 KB
19 Feb 2013 5.06 AM
root / linksafe
0644
resolv-replace.rb
1.732 KB
3 Apr 2013 5.27 PM
root / linksafe
0644
resolv.rb
61.449 KB
1 Jun 2015 3.13 PM
root / linksafe
0644
ripper.rb
2.525 KB
26 Jul 2023 2.09 PM
root / linksafe
0644
rss.rb
2.841 KB
11 May 2011 10.22 AM
root / linksafe
0644
rubygems.rb
27.534 KB
26 Jul 2023 2.06 PM
root / linksafe
0644
scanf.rb
23.517 KB
5 Nov 2011 7.37 AM
root / linksafe
0644
securerandom.rb
8.563 KB
13 Sep 2012 1.01 PM
root / linksafe
0644
set.rb
17.316 KB
24 Nov 2012 6.51 PM
root / linksafe
0644
shell.rb
10.3 KB
5 Dec 2012 2.55 AM
root / linksafe
0644
shellwords.rb
5.94 KB
9 Nov 2012 6.28 AM
root / linksafe
0644
singleton.rb
4.018 KB
18 May 2011 2.09 PM
root / linksafe
0644
socket.rb
25.758 KB
26 Jul 2023 2.09 PM
root / linksafe
0644
sync.rb
7.256 KB
23 Dec 2012 10.18 AM
root / linksafe
0644
tempfile.rb
10.153 KB
9 Oct 2013 4.11 PM
root / linksafe
0644
thread.rb
6.944 KB
9 Feb 2014 4.07 PM
root / linksafe
0644
thwait.rb
3.376 KB
29 Jun 2011 3.09 AM
root / linksafe
0644
time.rb
21.091 KB
9 Oct 2013 3.07 PM
root / linksafe
0644
timeout.rb
3.163 KB
14 Apr 2013 3.20 PM
root / linksafe
0644
tmpdir.rb
4.148 KB
12 Dec 2012 12.40 PM
root / linksafe
0644
tracer.rb
6.537 KB
4 Feb 2013 5.59 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.337 KB
3 Aug 2012 8.23 AM
root / linksafe
0644
uri.rb
3.07 KB
13 May 2011 8.03 PM
root / linksafe
0644
weakref.rb
3.229 KB
2 Dec 2012 7.57 AM
root / linksafe
0644
webrick.rb
6.695 KB
7 Nov 2012 6.49 AM
root / linksafe
0644
xmlrpc.rb
8.493 KB
13 Sep 2012 2.24 AM
root / linksafe
0644
yaml.rb
2.303 KB
19 May 2013 7.01 PM
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF