雨谷の日和

過去19年で2,600を超えるアニメの第1話だけは見続けた僕のお勧めアニメがハズレなはずがない

行列式計算ではなかったようです

2004.04.01に書いた「再帰呼び出しだとJava も C もたいして速度に差はない?」について、屁理屈太郎氏からコメント頂いています。→「へけ」の4/4
いつも有難うございます。


ご指摘を読みましたところ、どうやら、私が勘違いをしていたようです。以下引用します。

なぜ事例として挙げたか、と云ふ点について。私がこれまでに知る中で、速度が求められる事例をいくつか挙げました。もちろん入出力処理は含まない範囲で選びました。 / なぜ、徳田雨窓さんが、分かりかねてしまふのか、私には理解できません。私は、徳田雨窓さんが行列計算を扱ふことについて、何も述べてゐません。私が述べたのは、徳田雨窓さんの提示してゐるアルゴリズムが、おほよそ「速度」とは無縁のものである、と云ふ点です。そんなに速度に対して鈍感なら、厳密に調べてもしかたないと思ふのです。

失礼いたしました。「行列」の計算だったのですね。「行列式」ではなく。
いや、普通に行列式を計算するなら、再帰呼び出しを使う方が記述的にはスマートだなぁという素朴なことを考えていました。もちろん、再帰を使わない行列式計算のアルゴリズムもありますが、再帰がそこまで決定的に速度に影響するということを私は考慮していませんでした。ご指摘は重ね重ね感謝いたします。
行列の計算なら、再帰を使わなくても良い処理が幾らでもありますから、わざわざ私が再帰呼び出しを含むアルゴリズムを選択する理由はありません。
以下の部分を、私が読み違えてしまったのでしょう。→「Java と C」より引用。

また、今回のサンプルのやうな、表示を行なふプログラムは、言語の性能比較には向きません。なぜなら、表示にかかる時間のほとんどは、OS の処理や実際のデバイスへの描画に費やされるからです。C や Java とは別の要素の影響が大きいのです。できれば、「とにかくループをまはす」とか「行列式の計算をさせる」とか「配列の値をソートさせる」とかの、入出力をともなはないサンプルで実測すべきかと思ひます。



とりあえず、今回はこのまま再帰呼び出しを使ったものを実測してみます。
その後、再帰呼び出しの無い処理をサンプルとしてみます。
再帰の速度に対する影響がどれくらいなのかという点にも興味がありますので、私としては渡りに船とも言えます。