PARI ライブラリを使う

2016-08-11 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での blogramのランクインカテゴリは、
7、2、0、0、0、 1、0、0、0、0(40)で、換算ポイント 87pt 。
「Firefox」6位ダウン。「Perl」「化学業界」「硝子業界」「FM COCOLO」、
「e-radio」「グルコサミン」「Python」bg値変動。「C言語」「FM青森」変化無し。
・-・ - -・

さて、本文。

先月(2016-07-18)の記事「PARI/GP メモ ( Tips )
で、
  ・・・・・
  ・・・・・
  “PARI/GP”とは?
  以前の記事で書いた如く、
   ・ PARI は高速計算が可能なCライブラリ
   ・ gp はPARI関数を利用できる、インタラクティブシェル
  ですね。
  だから、Lua(GSL Shell)から使うには“PARI”を学習するだけでOK?
  でも、難しそう。
  なので、先ずは“GP”の学習が必要?
  ・・・・・
  ・・・・・
  本日はここまで。
  次は、“PARI”本体の学習かナ?
と書いた。

それで、
“PARI”本体の学習を始めた。

学習教材は?・・・・・

本家サイト「PARI/GP home」の、
左欄“Support”ブロックにある、
 Documentation ページ内の、
 [PDF] Users' Guide to the PARI library (288 pages, 1301 KBy)
ですね。


それで、
・・・Cライブラリ PARI
一つを持ってきて、
これを利用するプログラムをコーディング。

先ずは、宣言部分:
(未だ使いこなせないモノも定義しているが)
----- PARI 利用の為の宣言部分 -----
local pari = ffi.load('libpari')
ffi.cdef[[
typedef unsigned int DWord;
typedef long* GEN;
void pari_init( size_t size, DWord maxprime );

GEN cgetg( long n, long t );
GEN cgeti( long n );
GEN cgetr( long n );
GEN mkpoln(long n, ...);

GEN gneg( GEN x );
GEN gadd( GEN x, GEN y );
GEN gsub( GEN x, GEN y );
long gexpo( GEN z );
GEN gdiv( GEN x, GEN y );
GEN gdivgs(GEN x, long s );
GEN floorr(GEN x);
GEN ceilr(GEN x);

GEN stor( long s, long prec );
GEN stoi( long s ); // Conversions
long gtolong( GEN x ); // =====
double gtodouble(GEN x);

int pari_rand( void );
]]
の様に。
そして、処理部分:
----- 最初に、作業領域サイズと、素数テーブルの上限値
pari.pari_init( 500000, 200 )
----------
x=pari.cgeti(32) -- 32bit t_INT
x=pari.stoi( 256*256*256 )
y=pari.gneg( x )
yy=pari.gtolong(y); print( yy ) ---> -16777216
z=pari.gsub( x, y )
print( pari.gtolong(z) ) ---> 33554421
print( pari.gtolong( pari.gdivgs( z, 256 ) ) ) ---> 131072

a=pari.cgetg( 64, 2 ) -- 64bit t_REAL
a=pari.stor( 555, 64 )
b=pari.gdivgs( a , 10 )
b1=pari.gtodouble( b )
b2=pari.gtodouble( pari.floorr( b ) )
print( b1, b2 ) ---> 55.5, 55

print( pari.pari_rand( ) ) ---> 653022955 乱数1
print( pari.pari_rand( ) ) ---> -1570618080 乱数2
以上の程度。

つまり、
変数(定数?)の定義と、四則(加減乗除)の一部。
そして、乱数生成。
といった程度。

目標は、
“mkpoln”をして、
微分とかをやりたい。

でも、まだまだ修行が足りない(汗;


本日はここまで。


PARI 学習は続く かナ?


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


160615
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
02 | 2017/03 | 03
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク