[前][次][番号順一覧][スレッド一覧]

ruby-changes:57829

From: Hiroshi <ko1@a...>
Date: Fri, 20 Sep 2019 12:35:47 +0900 (JST)
Subject: [ruby-changes:57829] a3b8501614 (master): Removed CMath from the ruby repository.

https://git.ruby-lang.org/ruby.git/commit/?id=a3b8501614

From a3b85016149f4f73f08c739626b2f02badd5ad17 Mon Sep 17 00:00:00 2001
From: Hiroshi SHIBATA <hsbt@r...>
Date: Fri, 20 Sep 2019 12:12:37 +0900
Subject: Removed CMath from the ruby repository.


diff --git a/NEWS b/NEWS
index ac22711..365e18b 100644
--- a/NEWS
+++ b/NEWS
@@ -327,6 +327,9 @@ RubyGems:: https://github.com/ruby/ruby/blob/trunk/NEWS#L327
 
 === Compatibility issues (excluding feature bug fixes)
 
+* Removed unmaintained libraries.
+  * CMath
+
 === Stdlib compatibility issues (excluding feature bug fixes)
 
 profile.rb, Profiler__::
diff --git a/doc/maintainers.rdoc b/doc/maintainers.rdoc
index e01df7f..370dce5 100644
--- a/doc/maintainers.rdoc
+++ b/doc/maintainers.rdoc
@@ -173,9 +173,6 @@ Zachary Scott (zzak) https://github.com/ruby/ruby/blob/trunk/doc/maintainers.rdoc#L173
 [lib/bundler.rb, lib/bundler/*]
   Hiroshi SHIBATA (hsbt)
   https://github.com/bundler/bundler
-[lib/cmath.rb]
-  _unmaintained_
-  https://github.com/ruby/cmath
 [lib/csv.rb]
   Kenta Murata (mrkn), Kouhei Sutou (kou)
   https://github.com/ruby/csv
diff --git a/doc/standard_library.rdoc b/doc/standard_library.rdoc
index 11aed15..b11ca93 100644
--- a/doc/standard_library.rdoc
+++ b/doc/standard_library.rdoc
@@ -72,7 +72,6 @@ WIN32OLE:: Provides an interface for OLE Automation in Ruby https://github.com/ruby/ruby/blob/trunk/doc/standard_library.rdoc#L72
 == Libraries
 
 Bundler:: Manage your Ruby application's gem dependencies
-CMath:: Provides Trigonometric and Transcendental functions for complex numbers
 CSV:: Provides an interface to read and write CSV files and data
 E2MM:: Module for defining custom exceptions with specific messages
 FileUtils:: Several file utility methods for copying, moving, removing, etc
diff --git a/lib/cmath.gemspec b/lib/cmath.gemspec
deleted file mode 100644
index 953cfe0..0000000
--- a/lib/cmath.gemspec
+++ /dev/null
@@ -1,23 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/doc/standard_library.rdoc#L0
-# coding: utf-8
-# frozen_string_literal: true
-
-Gem::Specification.new do |spec|
-  spec.name          = "cmath"
-  spec.version       = "1.0.0"
-  spec.authors       = ["Tadayoshi Funaba"]
-  spec.email         = [nil]
-
-  spec.summary       = "Provides Trigonometric and Transcendental functions for complex numbers"
-  spec.description   = "CMath is a library that provides trigonometric and transcendental functions for complex numbers. The functions in this module accept integers, floating-point numbers or complex numbers as arguments."
-  spec.homepage      = "https://github.com/ruby/cmath"
-  spec.license       = "BSD-2-Clause"
-
-  spec.files         = "lib/cmath.rb"
-  spec.bindir        = "exe"
-  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
-  spec.require_paths = ["lib"]
-  spec.required_ruby_version = ">= 2.3.0"
-
-  spec.add_development_dependency "bundler"
-  spec.add_development_dependency "rake"
-end
diff --git a/lib/cmath.rb b/lib/cmath.rb
deleted file mode 100644
index 7dbd65e..0000000
--- a/lib/cmath.rb
+++ /dev/null
@@ -1,435 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/doc/standard_library.rdoc#L0
-# frozen_string_literal: true
-##
-# = Trigonometric and transcendental functions for complex numbers.
-#
-# CMath is a library that provides trigonometric and transcendental
-# functions for complex numbers. The functions in this module accept
-# integers, floating-point numbers or complex numbers as arguments.
-#
-# Note that the selection of functions is similar, but not identical,
-# to that in module math. The reason for having two modules is that
-# some users aren't interested in complex numbers, and perhaps don't
-# even know what they are. They would rather have Math.sqrt(-1) raise
-# an exception than return a complex number.
-#
-# For more information you can see Complex class.
-#
-# == Usage
-#
-# To start using this library, simply require cmath library:
-#
-#   require "cmath"
-
-module CMath
-
-  include Math
-
-  # Backup of Math is needed because mathn.rb replaces Math with CMath.
-  RealMath = Math # :nodoc:
-  private_constant :RealMath
-
-  %w[
-    exp
-    log
-    log2
-    log10
-    sqrt
-    cbrt
-    sin
-    cos
-    tan
-    sinh
-    cosh
-    tanh
-    asin
-    acos
-    atan
-    atan2
-    asinh
-    acosh
-    atanh
-  ].each do |meth|
-    define_method(meth + '!') do |*args, &block|
-      warn("CMath##{meth}! is deprecated; use CMath##{meth} or Math##{meth}", uplevel: 1) if $VERBOSE
-      RealMath.send(meth, *args, &block)
-    end
-  end
-
-  ##
-  # Math::E raised to the +z+ power
-  #
-  #   CMath.exp(1.i * Math::PI) #=> (-1.0+1.2246467991473532e-16i)
-  def exp(z)
-    begin
-      if z.real?
-        RealMath.exp(z)
-      else
-        ere = RealMath.exp(z.real)
-        Complex(ere * RealMath.cos(z.imag),
-                ere * RealMath.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.
-  #
-  #   CMath.log(1 + 4i)     #=> (1.416606672028108+1.3258176636680326i)
-  #   CMath.log(1 + 4i, 10) #=> (0.6152244606891369+0.5757952953408879i)
-  def log(z, b=::Math::E)
-    begin
-      if z.real? && z >= 0 && b >= 0
-        RealMath.log(z, b)
-      else
-        Complex(RealMath.log(z.abs), z.arg) / log(b)
-      end
-    rescue NoMethodError
-      handle_no_method_error
-    end
-  end
-
-  ##
-  # Returns the base 2 logarithm of +z+
-  #
-  #   CMath.log2(-1) => (0.0+4.532360141827194i)
-  def log2(z)
-    begin
-      if z.real? and z >= 0
-        RealMath.log2(z)
-      else
-        log(z) / RealMath.log(2)
-      end
-    rescue NoMethodError
-      handle_no_method_error
-    end
-  end
-
-  ##
-  # Returns the base 10 logarithm of +z+
-  #
-  #   CMath.log10(-1) #=> (0.0+1.3643763538418412i)
-  def log10(z)
-    begin
-      if z.real? and z >= 0
-        RealMath.log10(z)
-      else
-        log(z) / RealMath.log(10)
-      end
-    rescue NoMethodError
-      handle_no_method_error
-    end
-  end
-
-  ##
-  # Returns the non-negative square root of Complex.
-  #
-  #   CMath.sqrt(-1 + 0i) #=> 0.0+1.0i
-  def sqrt(z)
-    begin
-      if z.real?
-        if z < 0
-          Complex(0, RealMath.sqrt(-z))
-        else
-          RealMath.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(RealMath.sqrt((r + x) / 2.0), RealMath.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+
-  #
-  #   CMath.cbrt(1 + 4i) #=> (1.449461632813119+0.6858152562177092i)
-  def cbrt(z)
-    z ** (1.0/3)
-  end
-
-  ##
-  # Returns the sine of +z+, where +z+ is given in radians
-  #
-  #   CMath.sin(1 + 1i) #=> (1.2984575814159773+0.6349639147847361i)
-  def sin(z)
-    begin
-      if z.real?
-        RealMath.sin(z)
-      else
-        Complex(RealMath.sin(z.real) * RealMath.cosh(z.imag),
-                RealMath.cos(z.real) * RealMath.sinh(z.imag))
-      end
-    rescue NoMethodError
-      handle_no_method_error
-    end
-  end
-
-  ##
-  # Returns the cosine of +z+, where +z+ is given in radians
-  #
-  #   CMath.cos(1 + 1i) #=> (0.8337300251311491-0.9888977057628651i)
-  def cos(z)
-    begin
-      if z.real?
-        RealMath.cos(z)
-      else
-        Complex(RealMath.cos(z.real) * RealMath.cosh(z.imag),
-                -RealMath.sin(z.real) * RealMath.sinh(z.imag))
-      end
-    rescue NoMethodError
-      handle_no_method_error
-    end
-  end
-
-  ##
-  # Returns the tangent of +z+, where +z+ is given in radians
-  #
-  #   CMath.tan(1 + 1i) #=> (0.27175258531951174+1.0839233273386943i)
-  def tan(z)
-    begin
-      if z.real?
-        RealMath.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
-  #
-  #   CMath.sinh(1 + 1i) #=> (0.6349639147847361+1.2984575814159773i)
-  def sinh(z)
-    begin
-      if z.real?
-        RealMath.sinh(z)
-      else
-        Complex(RealMath.sinh(z.real) * RealMath.cos(z.imag),
-                RealMath.cosh(z.real) * RealMath.sin(z.imag))
-      end
-    rescue NoMethodError
-      handle_no_method_error
-    end
-  end
-
-  ##
-  # Returns the hyperbolic cosine of +z+, where +z+ is given in radians
-  #
-  #   CMath.cosh(1 + 1i) #=> (0.8337300251311491+0.9888977057628651i)
-  def cosh(z)
-    begin
-      if z.real?
-        RealMath.cosh(z)
-      else
-        Complex(RealMath.cosh(z.real) * RealMath.cos(z.imag),
-                RealMath.sinh(z.real) * RealMath.sin(z.imag))
-      end
-    rescue NoMethodError
-      handle_no_method_error
-    end
-  end
-
-  ##
-  # Returns the hyperbolic tangent of +z+, where +z+ is given in radians
-  #
-  #   CMath.tanh(1 + 1i) #=> (1.0839233273386943+0.27175258531951174i)
-  def tanh(z)
-    begin
-      if z.real?
-        RealMath.tanh(z)
-      else
-        sinh(z) / cosh(z)
-      end
-    rescue NoMethodError
-      handle_no_method_error
-    end
-  end
-
-  ##
-  # Returns the arc sine of +z+
-  #
-  #   CMath.asin(1 + 1i) #=> (0.6662394324925153+1.0612750619050355i)
-  def asin(z)
-    begin
-      if z.real? and z >= -1 and z <= 1
-        RealMath.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+
-  #
-  #   CMath.acos(1 + 1i) #=> (0.9045568943023813-1.0612750619050357i)
-  def acos(z)
-    begin
-      if z.real? and z >= -1 and z <= 1
-        RealMath.acos(z)
-      else
-        (-1.0).i * log(z + 1.0.i * sqrt(1.0 - z * z))
-       (... truncated)

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]