PyClient:LuaPy_GSL モジュールのラッパー

2017-02-27 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
前(2017-02-26)の記事「LuaPy_GSL モジュール:格納場所」までで、
以前(2017-02-19)書いた記事「LuaPy_GSL モジュールで SymPy」の如く、
自作モジュール“LuaPy_GSL.lua”が完成の域に達した?

そこで、
そもそもの発端であった
以前(2017-01-23)の記事「クライアント/サーバ:プロセス間通信
に答えられるように“LuaPy_GSL モジュール”のラッパーとして、
PyClient サブを作った。
手始めなので、名前は取り敢えず“SUB.lua”とした。

作ったのは:
-------------------------- SUB.lua
local Py = require'LuaPy_GSL'
-------------------------------

Py.PyIni( 'SUB_LuaPy_GSL_Gen' ) -- Python 初期化済みに。
IT = ffi.new( 'int32_t[40]' ) -- 序でに定義。
SV = ffi.new( 'uint8_t[4097]' )

-------------------------------

function Py_Exec( str_ ) -- これが PyClient 相当???
IT[0] = #str_ + 1
Py.PyFun( 'Exec', IT, str_, SV )
return ffi.string( SV )
end

function Py_SymPy( str_ ) -- SymPy 用*****
local st = 'from sympy import *;var("a:z");SV=str( '..str_..' );\n'
IT[0] = #st + 1
Py.PyFun( 'Exec', IT, st, SV )
return ffi.string( SV )
end

function Py_End()
Py.PyFin() -- Python ファイナライズ
end
こんなもの。

これを使ったテストメイン(汎用):
------------------- test_use_SUB_Gen.gsl

require'SUB' -- IT[40], SV[4097] 定義済み
--------------------------------

----- Python での実行文
ST = [[
DT=doubleA(IT[1]); DV=doubleA(IT[2])
DV[0]=DT[3]; print DV[0],DT[3]
SV='HOGE'+str(DV[0])
]]
--------------- テスト用データ
DT = ffi.new( 'double[10]', 50.5, 60.5, 70.5, 80.5 )
DV = ffi.new( 'double[10]' )

--------------------------------
IT[1]=Int(DT); IT[2]=Int(DV) -- IT[0] は予約済
ss=Py_Exec( ST ) ------- これが、PyClient ???
Py_End()

print( DV[0],DV[1] ) --- 戻り値
print( ss ) --- 戻り文字列
これで、・・・・・
OK

続けてもう1つ。
SymPy を使った例:
------------------- test_use_SUB_SymPy.gsl
require'SUB' -- IT[40], SV[4097] 定義済み
--------------------------------

----------------- サンプル1
ss=Py_SymPy'diff( x**3+3*x**2+2, x, 1 )' -- 'x' で、1回微分
print( ss ) -- 3*x**2 + 6*x
---------------- サンプル2
ss=Py_SymPy'solve( x**2+4*x+a, x )' -- 引数1を引数2で解く
print( ss ) -- [-sqrt(-a + 4) -2, sqrt(-a + 4) -2]
----------------- サンプル3
ss=Py_SymPy'diff( sin(x), x, 2 )' -- 'x' で、2回微分
print( ss ) -- -sin(x)

Py_End()
これの方が“PyClient”っぽい???

出来た。


本日はここまで。


PyClient ( Lua / GSL Shell) 学習は続く。


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


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

コメントの投稿

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

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



おきてがみ

最新記事
カレンダー
05 | 2017/06 | 07
- - - - 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
ブックマーク