2013年9月16日月曜日

HP Primeはかなり早いらしい

SysRPLの勉強のため、50gで動く Sierpinski gasket のプログラムを書いてみました。

まずは、UserRPLでのコードから。

« 
  -.3125 1.3125 XRNG 0 1 YRNG
  { # 0d # 0d } PVIEW ERASE
  1 'X' STO 2 'Y' STO
  1 3000 START 
    RAND -> n «
      CASE
        'n<1 2="" br="" end="" sto="" then="" x="" y="">        'n<2 .5="" 1="" 2="" br="" end="" sto="" then="" x="" y="">        X 1 + 2 / 'X' STO Y 2 / 'Y' STO END
      X Y i * + PIXON
    »
  NEXT
»

これは、3000回のループを行います。ガベージ・コレクションの発生もあるので、一概に実行時間が決まりませんが、実行したら10分程度掛かります。
一方、同様の動作を行うSysRPLのコードです。

!NO CODE
!RPL
::

  CLEARLCD
  TURNMENUOFF

  80 131 MAKEGROB
  GROB>GDISP
  TOGDISP

  ' ID R PURGE
  %0 ' ID R CREATE
  ' ID X PURGE
  %0 ' ID X CREATE
  ' ID Y PURGE
  %0 ' ID Y CREATE

  3000 0 DO
    %RAN %3 %* ' ID R STO 
    ID R %1 %< ITE
      :: ID X %0.5 %* ' ID X STO ID Y %0.5 %* ' ID Y STO ;
      :: ID R %2 %< ITE
        :: ID X %0.5 %+ %0.5 %* ' ID X STO ID Y %1 %+ %0.5 %* ' ID Y STO ;
        :: ID X %1 %+ %0.5 %* ' ID X STO ID Y %0.5 %* ' ID Y STO ;
    ;

    ID X %80 %* COERCE 25 #+ 80 ID Y %80 %* COERCE #- 
    #2 NDUP PIXON PIXON3

  LOOP

;
@
こちらも3000回のループを行うのですが、実行時間は流石に早く、1分半程度になりました。
ちなみに、HP GCCならば、10000回ループにしても一瞬で描いてしまいます。

で、HP Primeではどうなのか ? 偶然ではありますが、MoHPC に、作業例が提示されて居りました。

Sierpinksi triangle on HP Prime - MoHPC
http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/forum.cgi?read=250281#250281

YouTube動画へのリンクもあり、これをみると実に早い。こちらのコードでは3000回ループなのに、HP Primeでは20000回ループだそうです。ウーン。

恐らくインタプリタであろう電卓言語で、ここまでの速度が得られる。恐るべし、HP Prime。確かに、単純にARM 75 MHz (12 MHzという話もありますが)と 400 MHz ですから、パワーは大きく違うのではありますが、ここまで見せつけられるとなると ... 欲しい。

3 件のコメント:

setpney さんのコメント...

お久しぶりです。
HP Prime、欲しくなってきますね。
この前hpcalc.orgを覗いてみたらすでにPrimeのアプリケーションがアップされておりました。
でもSDカード挿さらないんだよなあ。
50gに比べると拡張性は乏しそうです。

setpney さんのコメント...

お久しぶりです。
HP Prime、欲しくなってきますね。
この前hpcalc.orgを覗いてみたらすでにPrimeのアプリケーションがアップされておりました。
でもSDカード挿さらないんだよなあ。
50gに比べると拡張性は乏しそうです。

akatuki さんのコメント...

これはsetpney様。またのお越しをようこそ。

> この前hpcalc.orgを覗いてみたらすでにPrimeのアプリケーションがアップされておりました。
あれ、そうでしたか ! ウーン。最近覗いておらんので ... 。

> でもSDカード挿さらないんだよなあ。
> 50gに比べると拡張性は乏しそうです。
確かに。まだ、実機を持っていないのでよう判らんのですが、USBでPCにつなげて、内蔵Flashをマウントしてアクセス、って具合なんですかね ? だと、かなりラクなんですケドね。
内蔵Flashしかない、というのが苦しいのは確かですが、Nspire とは逆に、スロット付きが後から出たりするのかな、などと妄想するのも面白いかも。
SDカードでのアップデートが出来ず、「USBでアップデートしたら文鎮になってしまった」などという報告もあるみたいで、なかなか気難しいのかな、HP Primeは。

でも、日本語マニュアル付きが出たら、欲しいなぁ。