XLPack API: F# 使用例
F#からXLPackを呼び出す
F#からXLPackを呼び出すためにはDLLを直接使う必要があります.
SDKにはDLLインターフェースプログラムxlpack_fs.fsが入っています. これを使うと, 呼び出しプログラムは “open XLPack” と宣言するだけでDLLインターフェースの詳細を気にせず組込み関数のように簡単にXLPackを呼び出すことができます.
係数行列aは2次元配列, 右辺行列bは1次元配列を使います.
F#プログラム例
open XLPack
let TestDgesv() =
let n = 3
let a = array2D [
[ 0.2; -0.32; -0.8 ];
[ -0.11; 0.81; -0.92 ];
[ -0.93; 0.37; -0.29 ] ]
let b = [| -0.3727; 0.4319; -1.4247 |]
let ipiv = Array.create n 0
let info = XLPack.Dgesv(n, a, ipiv, b)
printfn "x = %A, info = %d" b info
TestDgesv()
実行結果
x = [|0.86; 0.64; 0.51|], info = 0
F#プログラム例 (例題(2))
例題(2)ではf(x)の積分をqk15を使って求めます. qk15はf(x)を定義する外部関数を必要とします. 外部関数はF#で作成することができ, qk15は必要なときにそれを呼び出します.
open XLPack
let TestQk15() =
let f(x: double) = 1.0/(1.0 + x*x)
let a, b = (0.0, 4.0)
let result, abserr = XLPack.Qk15(f, a, b)
printfn "result = %f, abserr = %g" result abserr
TestQk15()
実行結果
result = 1.325818, abserr = 0.00148272