原です。

In message "[ruby-math:00674] Re: power"
    on 02/04/06, Yoichi Hanatani <t29x0595 / ip.media.kyoto-u.ac.jp> writes:

|花谷です

|n = other
|while n & 1 == 0
|   x *= x
|   n >>= 1
|end
|z = x
|n >>= 1
|while n != 0
|   z *= x if n & 1 != 0
|   x *= x
|   n >>= 1
|end

ああ、これは私が書いていたのと一字一句同じです。

|4乗で効果が見られました。
|複雑な割には効果が薄いですが。

私も何千何万乗まで軽い積や重い積で、実験してみましたが、
前のに比べてあまり速くはないみたいでした。特定の other
例えば2のベキについては、明らかに速かったりしますが。

とは言え、このコードは、見ためは悪いけど「定石」と呼んで
もいいかもしれませんね。