Samples

VPPLのデータ処理を理解するためのサンプルプログラム集です。

平均値を求める

vRandom初期化子で作成した乱数を列挙したベクトルの平均値を計算します。 命令セットシミュレータ上で動作し、まず乱数列を列挙した後、 結果の平均値をF32Q16型の小数点数としてコンソールに表示します。 コンパイル&実行は、以下のようなコマンドライン引数で行います。

$ vppl -i -a --ISIM vecT405.vppl
# vector operation test:
#   vRandomで生成した乱数の平均を求める
#
# VPPL source by M.P.I
# 2017/01/23
solution vecT405 is
     process
             __QVP0 = QVP0;

     global
             vTest0 : i16[32] = vRandom[0, 100];

     proc QVP0;
     var
             n : integer,
             work : variant,
             mean : variant;

     initialize
             alloc_vector( vTEMP, __I16V, 16)

     iteration
             isim_out$STRING("Random="); isim_out$VI16( vTest0 ); isim_write();

             n = nElem("vTest0");
             vTEMP = vTEMP.sum$IW(vTest0, work);
             mean = divQ(byValue work, byValue n, byValue 16, byValue 0);
             isim_out$STRING("mean="); isim_out$F32Q16( mean ); isim_write();

             exit_success()
     end QVP0
end vecT405