GSL Shell コード・テンプレート

2017-11-08 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
昨年暮れ(2016-12-26)に「viva “GSL Shell”」を書いた。

その後も、<紙>にとってのメイン言語 と云うことで、

新規に作るプログラムは、原則 GSL Shell で作り、
更に過去に作った、Perl や、R や、Python プログラムも
GSL Shell に移植してきた。


ここで、
今後のコーディングの見本として、

Code Template を作ってみた。

プログラム名は「Code_Template.gsl」:
----- Code_Template.gsl     <== プログラムの名前

--[[
   プログラムの仕様・コメント 等々

  プログラム・ファイルのコード:'Shift-JIS'

  コマンドライン引数:
   arg 引数リスト    #arg 引数の個数
arg[0] 当プログラム名

]]
--===========================
require'cv2_a' -- 'OpenCV' 使用: cv2.cvLoadImageM 等々
require'gsl_a' -- 'GSL' 使用: gsl.gsl_rng_get 等々
gp = require'gnuplot' -- 'gnuplot' 使用: gp.Plot 等々
require'pl' -- 'Penlight'使用: path.currentdir 等々

require'winman' -- 'afxLua/winman'使用: winman.send 等々
Iup = require'IUP' -- 'IUP' 使用: Iup.Open 等々

lfs = require'lfs' -- 'LFS' 使用: lfs.attributes 等々
--- 'Penlight' 経由で 'lfs' を使うなら
_ = path.currentdir()

--===========================
-- use'math' -- 'math.log' を 'log' と モジュール名の省略
-- use'bit' -- 'bit.band' を 'band'   ※ 使用は要注意

f = |x| x^2 - 1 --=== function f(x) return x^2-1 end

--===========================

----- ディレクトリ内ファイル一覧取得:
require'pl'
f_list = dir.getfiles( Dir )


----- ファイル(不)存在チェック:
require'afx'
if not afx.fileexists( f ) then
-- ~
end


-- D&D でファイル名取得:
require'pl'
Dir, Fname = path.splitpath( arg[1] )
lfs.chdir( Dir ) -- これ必要???


----- 入力テキストファイルについて、
-- ファイル全体を一括で(文字列として)読み込む:
require'pl'
wstr = file.read( 'hoge.txt' )

-- ファイル全体を行毎の文字列配列で読み込む:
require'pl'
w = utils.readlines( 'hoge.txt' )
-- 更に、一行分を分割(空白区切り):
v = stringx.split(w[i])

-- CSVファイル全体をテーブルとして読み込む:
t = csv.read( 'hoge.csv' )
-- 更に、数値のみなら行列に変換:
m = matrix.def( t )
----- 非数値データの行(テーブル要素)を除くには:
table.remove( t, 1 ) -- とかで。

----- 入力バイナリファイルについて、
-- ファイル全体を4バイト整数配列として読み込む:
IN=io.open('hoge','rb'); buf=IN:read('*a'); IN:close()
pt=ffi.cast('int32_t*',buf)


----- 出力テキストファイルについて、
-- 'fprintf' で書き出し:
require'pl'; OT=io.open('f.txt','w')
utils.fprintf( OT, ' %g %d %s\n' , floatv, intv, str )
OT:close()

--======================
----- 文字列が数値を表すか の判定
if tonumber( str ) ~= nil then
-- ~
end

--======================

----- Python の 'range' 相当
require'pl'

for k in seq.range( 0, n-1 ) do -- for k in range( n ) :
-- ~ -- # ~
end -- # 無し

for k in seq.range( i, j-1 ) do -- for k in range( i, j ) :
-- ~ -- # ~
end -- # 無し


plc = require'pl.comprehension'.new()
T = plc('x for x=1,5')() -- T は { 1, 2, 3, 4, 5 }
--- plc 'x for x=1,5' () -- これでも可
V = matrix.vec( plc'x for x=1,5'() ) -- これで 'matrix'ベクトル


--======================
----- 三角関数 逆三角関数
-- sin、cos、tan、・・・・・ asin、acos、atan、atan2

----- 特殊関数
-- sf.fact(n) ・・・ 階乗(factorial) n!
-- sf.gamma(x)・・・ ガンマ関数(gamma function)
-- x は正数。 use:real Lanczos method ( ランチョス法 )


--======================
--[[ --- 過去記事/備忘録 ---

備忘録:(2017-04-08)記事
Lua 言語仕様:備忘録(忘れやすい事)4言語対比表
「H29-03-04_Lua言語仕様_備忘録.html」H29-03-22 /_GSL/

関数フィッティング:(2017-04-05)記事
GSL Shell 学習:Fitting サブ(改)
「SUB_GSL_Fit.lua」H28-02-04 /_GSL/H28-12-10_FitGSL/

非線形1変数方程式の求解:(2017-06-21)記事
GSL Shell:非線形1変数方程式の求解モジュール自作
「NL_1var_Rev.gsl」H28-05-07 /_GSL_tcc/H29-05-06_Solve_Newton/

非線形2変数方程式の求解:(2017-06-24)記事
GSL Shell:非線形2変数方程式の求解モジュール自作
「NL_2var_Rev2.gsl」H28-05-11 /_GSL_tcc/H29-05-06_Solve_Newton/

スプライン補間:(2016-09-19)記事
GSL Shell 学習:スプライン補間
「GDT_Spline.gsl」H28-08-12 /_GSL/H28-08-12_Spline/

'OpenCV' サンプルコード:(2017-07-30)記事
OpenCV:cvFindContours 正常に出来た
「cvFitEllipse2_7.gsl」H29-06-28 /_GSL_CV/H29-06-27_FindContours_FitEllipse2/

'GSL' サンプルコード:(2017-08-23)記事
GSL 学習:配列要素の並び替え
「gsl_sort.gsl」H29-07-17 /_GSL_gslib/H29-07-17_Sorting/

'gnuplot' 用モジュール定義:(2017-11-06)記事
Lua & gnuplot:gnuplot モジュール改訂2
「gnuplot.lua」H29-06-20 /_gnuplot/H29-06-20_gp_lua/

'IUP' サンプルコード:(2017-02-12)記事
IUP で GUI アプリ:コード改訂
「IUP_Exact_Dbl_Entou_Rev.gsl」H29-01-18 /_GSL/H29-01-18_IUP_3/

'afxLua' サンプルコード:'afx'、'cio'、'clipboard'、'winman'、'winreg'
検索「afxLua
]]
取り敢えずは、こんなところ?



本日はここまで。


Lua ( GSL Shell ) 学習は続く。


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


171009,13
関連記事
スポンサーサイト

コメントの投稿

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

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



おきてがみ

最新記事
カレンダー
10 | 2017/11 | 12
- - - 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
ブックマーク