Project

General

Profile

Bug #10086

[PATCH] Remove exponents calculation from mathn.rb

Added by gogotanaka (Kazuki Tanaka) about 6 years ago. Updated almost 6 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
2.1.1p76
[ruby-core:63973]

Description

#English

When we override :**, we make it alias as :power! (mathn.rb:L73, L102)

Like this.

alias power! ** unless method_defined? :power!

If user have define :power!, this :power! is called unintentionally.(mathn.rb:L82, L111)

  def ** (other)
    if self < 0 && other.round != other
      Complex(self, 0.0) ** other
    else
      power!(other)
    end
  end

Now that we can do such a exponents calculation without mathn, we don't need exetend :** in mathn.

That's why I remove :** from mathn.rb

#日本語

mathn.rb で :** を上書きする際に元の :**:power! としてaliasを貼っていますが、(mathn.rb:L73, L102)

alias power! ** unless method_defined? :power!

使用者が #power! を定義していた場合、

(mathn.rb:L82, L111)

  def ** (other)
    if self < 0 && other.round != other
      Complex(self, 0.0) ** other
    else
      power!(other)
    end
  end

の部分で意図せず利用者が定義した:power! が呼ばれ可能性があるため、

またそもそもこの種の冪乗演算は mathn を必要とせずとも現在は実現されているため、

:** を mathn から削除致しました.


Files

Remove_Fixnum#power_from_mathn.patch (810 Bytes) Remove_Fixnum#power_from_mathn.patch gogotanaka (Kazuki Tanaka), 07/23/2014 11:58 AM
Remove_Bignum#power_from_mathn.patch (811 Bytes) Remove_Bignum#power_from_mathn.patch gogotanaka (Kazuki Tanaka), 07/23/2014 11:58 AM
Remove_Float#power_from_mathn.patch (496 Bytes) Remove_Float#power_from_mathn.patch gogotanaka (Kazuki Tanaka), 07/23/2014 11:58 AM
Remove_Rational#power_from_mathn.patch (2.08 KB) Remove_Rational#power_from_mathn.patch gogotanaka (Kazuki Tanaka), 07/23/2014 11:58 AM
Fix_comment_at_mathn.patch (430 Bytes) Fix_comment_at_mathn.patch gogotanaka (Kazuki Tanaka), 07/23/2014 11:59 AM
improve_rdoc_mathn_l8.patch (478 Bytes) improve_rdoc_mathn_l8.patch gogotanaka (Kazuki Tanaka), 08/01/2014 08:30 AM
improve_rdoc_mathn_l20.patch (301 Bytes) improve_rdoc_mathn_l20.patch gogotanaka (Kazuki Tanaka), 08/01/2014 08:30 AM

Related issues

Related to Ruby master - Feature #13334: Removed deprecated mathn extentions.Closedhsbt (Hiroshi SHIBATA)Actions

Also available in: Atom PDF