2016年10月10日月曜日

HPGCCでこんなコードを書いた

こんなの。
(MSのOne driveのリンクです)


HP50Gで動くアニメーションのコードです。

暇があったら試して丁髷。

4 件のコメント:

Sentaro さんのコメント...

akatuki様、こんにちは!

早速に試してみようとHP50Gを久々に取り出してはみたものの、四則演算しか出来ない程度に使い方をすっかり忘れてしまって、ARMコードを実行させるまでにしばらく試行錯誤してしまいました(^^;
高機能電卓は慣れるまでが一苦労で、慣れれば馴染んでくるのですが、しばらく使ってないとその深い使い方をさっぱり忘れてしまうので、忘れない程度には使ってないと駄目ですね(^^;

…で、無事実行できました!

このアニメーションは個人的にはすごくお気に入りで、他機種へも移植してみたくなりますね。

時間が取れたら色々と移植してみたいと思います(^^)

akatuki さんのコメント...

Sentaro 様、お知らせ多謝です !
先日来、些事に忙殺されており、もう暫くこんな調子ですが、御容赦戴き度候。

> 高機能電卓は慣れるまでが一苦労で、慣れれば馴染んでくるのですが、しばらく使ってないとその深い使い方をさっぱり忘れてしまうので、忘れない程度には使ってないと駄目ですね(^^;

いや、全く。仰る通りです。


> …で、無事実行できました!

御評価、ありがとう御座居ます。

> このアニメーションは個人的にはすごくお気に入りで、他機種へも移植してみたくなりますね。
> 時間が取れたら色々と移植してみたいと思います(^^)

面白いでしょ ? なんてね。いや、興味を持って戴き、何よりです。
移植、楽しみにしております。

Sentaro さんのコメント...

akatuki様、こんにちは!

なんやかんやであっという間に時が過ぎてしまって焦っている今日この頃です(^^;

>面白いでしょ ? なんてね。いや、興味を持って戴き、何よりです。
>移植、楽しみにしております。

fx-9860GIIへの移植はオーバークロックでやっとHP50G並に動くということで、HP50Gの潜在能力の高さを再確認というところでしたけど、HPといえやはりPrimeでも試してみないということでakatuki様のHPGCCからベタ移植してみました。

で、400MHzのARMパワーで滑らかにアニメーションするかと思いきや…、
HPGCCオリジナル版をそっくりそのまま移植だと180度回転するのに45秒…、
計算量削減版でも18秒までしか早くならないのでHP50Gには正攻法ではとてもとても及ばないという結果に(^^;
何でかな?って思って調べてみるとPrimeといえども三角関数の計算速度は予想以上に重い模様ということで、このあたりは2進演算と10進演算の違いというところなのでしょうか。
fx-9860GIIのC.Basicでそこそこ速度が稼げたのは2進演算のおかげというところもありそうです。


Prime移植版は180度回転で終了、かかった時間を表示するようにしてあります。

HP Prime HPGCCオリジナル版
http://pm.matrix.jp/Prime_GlobeANM.txt

三角関数計算量半減版
http://pm.matrix.jp/Prime_GlobeANM2.txt

さらに三角関数計算量削減版
http://pm.matrix.jp/Prime_GlobeANM3.txt

akatuki さんのコメント...

Sentaro 様、今晩は ! いや、そろそろ「おはようございます」でしょうか !

> fx-9860GIIへの移植はオーバークロックでやっとHP50G並に動くということで、HP50Gの潜在能力の高さを再確認というところでしたけど、HPといえやはりPrimeでも試してみないということでakatuki様のHPGCCからベタ移植してみました。

アッー、先を越されちゃいましたネ !

> で、400MHzのARMパワーで滑らかにアニメーションするかと思いきや…、
> HPGCCオリジナル版をそっくりそのまま移植だと180度回転するのに45秒…、
> 計算量削減版でも18秒までしか早くならないのでHP50Gには正攻法ではとてもとても及ばないという結果に(^^;

ウーム ... 。
PPLはJITコンパイラと言っても、どうやらP-codeコンパイラっぽい様子ですからネ。
その割には早い方、と。

> 何でかな?って思って調べてみるとPrimeといえども三角関数の計算速度は予想以上に重い模様ということで、このあたりは2進演算と10進演算の違いというところなのでしょうか。

仰る通りであります。
なかなか、ここは難しい所です。

> fx-9860GIIのC.Basicでそこそこ速度が稼げたのは2進演算のおかげというところもありそうです。

そうだったのですか !
C.Basic、double (long double ?)型での計算って事ですね。

HPGCC版、と言いますか、当方のコード、HPGCCの習作という事で作業したものでして、ベンチマークを意図したものではなかったのですが、
速度を狙うとすれば、やす親分の所にもコメントを入れさせて戴きましたが、画像を予め作成しておいて、アニメーション・バッチ処理という手法も良いのではないか、などと思っております。
また、HP Primeの描線命令には陰線処理の機能があるらしく、これを使うと面白そうな気もしますが、使い方に習熟していないので、着手出来ずに居ります。
誰か「ヤラナイカ」、って、それは陰線ではなく ... オソマツ ! ツッコミムヨウノスケ !!