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