GSL Shell 学習:“libgsl-0.dll”で十分だった

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

さて、本文。(これも Lua 学習)

前(2016-02-13)の記事:「GSL Shell 学習:Gsl for Windows
で、
  ・・・・・
  ・・・・・
  この2つの DLL を使えば、“gsl”の全ての関数が使える。
  ・・・・・
  ・・・・・
と書いた。


ところが、・・・・・・・・・・

以前(2016-02-07)の記事:「GSL Shell 学習:GSL FFI interface
で書いているが、

GSL shell documentation」の、
最終:25節(?)「GSL FFI interface
の記述:

  ・・・・・
  ・・・・・
  GSL FFI interface
  The usage of the GSL FFI interface is done using the gsl module.
  This latter contains all the GSL functions available
   and you can call them directly from Lua code.
  ・・・・・
  ・・・・・

が気になった。


“GSL Shell”に含まれている、
「libgsl-0.dll」は、15.8MB もある。

一方、ダウンロードしたもの:
「libgsl.dll」「libgslcblas.dll」
2つ合わせても、2MB 程度!


ひょっとして、標準で出来るのでは???


やってみた。
local gsl = ffi.load( 'libgsl-0' )
ffi.cdef[[
gsl_vector* gsl_vector_uchar_alloc( int n );
void gsl_vector_uchar_set( gsl_vector* v, int i, int x );
unsigned char gsl_vector_uchar_get( gsl_vector* v, int i );
int gsl_vector_uchar_max_index( gsl_vector* v );
]]
ii = 5
v = gsl.gsl_vector_uchar_alloc(ii) -- define a new vec

x={ 3, 1, 5.2, 3, 254 } -- Lua テーブル
for i = 0, ii-1 do
gsl.gsl_vector_uchar_set( v, i, x[i+1] ) -- 値設定 ← Luaテーブルから
end

i = gsl.gsl_vector_uchar_max_index( v ) -- 最大値の要素の添字(ゼロ・オリジン)

print( i, gsl.gsl_vector_uchar_get( v, i ) )
  4, 254 と出る。

出来る!!!


もっと調べてみると
local gsl = require'gsl'
ffi.cdef[[
gsl_vector* gsl_vector_uchar_alloc( int n );
void gsl_vector_uchar_set( gsl_vector* v, int i, int x );
unsigned char gsl_vector_uchar_get( gsl_vector* v, int i );
int gsl_vector_uchar_max_index( gsl_vector* v );
]]
ii = 5
v = gsl.gsl_vector_uchar_alloc(ii) -- define a new Vector

x={ 3, 1, 5.2, 3, 254 } -- Lua テーブル
for i = 0, ii-1 do
gsl.gsl_vector_uchar_set( v, i, x[i+1] ) -- 値設定 ← Luaテーブルから
end

i = gsl.gsl_vector_uchar_max_index( v ) -- 最大値の要素の添字(ゼロ・オリジン)
print( i, gsl.gsl_vector_uchar_get( v, i ) )
で出来た。

つまり、
  local gsl = require'gsl'
だけでは、double 型のみだったが、
それに加えて、

  cdef[[ ~ ]]

の4行(など)の宣言を追加すれば、
整数型などなど、すべてが使えると云うことダ。


かなりな回り道をしてしまった。
ドキュメントの最終:25節(?)の意味がやっと分かった?


本日はここまで。


Lua ( GSL Shell ) 学習は続く。


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


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

コメントの投稿

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

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



おきてがみ

最新記事
カレンダー
03 | 2017/04 | 05
- - - - - - 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 - - - - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

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

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


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

Google Analytics
ブックマーク