« 給湯器 | トップページ | JJY »

2012年2月26日 (日)

User RPLの処理速度の違い

HP 50gで遊んでます.おもむろに内蔵USER RPLでプログラムをしていたところ,変な現象に陥りましたんでメモっておきます.

<< 1 1000 FOR J NEXT >>

単なる1000回ループです.これを実行したところ,いつもよりも速度が遅く感じられます.よくよく見ると数字の後に小数点がありません.そこで手動で追加しました.

<< 1. 1000. FOR J NEXT >>

ですといつも通りの速度が得られます.ちなみに上と下では,上の方が1.5倍くらい遅いです.

いつもならば,数字後に小数点を打たなくとも,プログラム記憶時に勝手に付加されていたと思います.しかし何度やっても小数点が付かないのです.フラグか何かをいじってしまったかなと思い,いろいろと試してみたところ,FLAGSの最後にあるNo.128のCmplx var allowedにCHKを入れたところ,つまりVars are realsにしたところ,プログラム記憶時に数字の後に小数点が自動で付くようになりました.このフラグで小数点付加を自動でやるかどうかをコントロールできるようになりました.

しかしいつのまにか,Cmplx var allowedとVars are realsのどちらでも,自動的に小数点が付くようになっておりました.どうもこのフラグだけではなかったようです・・・.

また小数点の有無で速度が異なるのも謎です.(小数点が付かない場合は変数が複素数扱いとなり,処理が遅くなるのか?)

|

« 給湯器 | トップページ | JJY »

コメント

自己レスです.
HP Forumによると,「5.」はrealで,「5」はintegerのようです.realの方が処理速度が速いです.
また例えば<< 5 >>と入力しENTERを押すと自動的に「.」が付くのは,MODE→CAS→Approxにチェックを入れた場合のようです.FLAGSの118番は関係なかったようです….

投稿: Jimmy | 2012年2月27日 (月) 22時35分

コメントを書く



(ウェブ上には掲載しません)




« 給湯器 | トップページ | JJY »