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/