Issue #10086 has been reported by gogo tanaka.

----------------------------------------
Bug #10086: [PATCH] Remove exponents calculation from mathn.rb
https://bugs.ruby-lang.org/issues/10086

* Author: gogo tanaka
* Status: Open
* Priority: Normal
* Assignee: 
* Category: lib
* Target version: 
* ruby -v: 2.1.1p76
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
#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` から削除致しました.



-- 
https://bugs.ruby-lang.org/