# external

Scilabオブジェクト, 外部関数またはルーチン

## 説明

特定のコマンド要の外部関数またはルーチン.

"external" は, (`ode`, `optim`, `schur`... のような) いくつかの高レベルプリミティブの引数として使用される 関数またはルーチンです.

external (関数またはルーチン)の呼び出し手順は, external の引数を設定する高レベルプリミティブにより 規定されています.

例えば, 外部関数 `costfunc` は, `optim` プリミティブの引数です. その呼出し手順は次のようになります: `[f,g,ind]=costfunc(x,ind)` そして `optim` (高レベル最適化プリミティブ)は 以下のようにコールされます

    optim(costfunc,...)

ここで, `costfunc` (評価関数はプリミティブ `optim`により最小化されます)は, `f=f(x)` および`x`における `f`の傾き`g`を評価します (`ind` は整数です. その使用法は `optim`ヘルプに詳述されています).

その他の値が外部関数により必要とされる場合, これらの変数をその環境において定義することができます. また, 外部関数をリスト内に置くことができます. 例えば,外部関数

    [f,g,ind]=costfunc(x,ind,a,b,c)

は, external が `list(costfunc,a,b,c)`の場合, `optim`に適用できます. そして, `optim`へのコールは 以下のようになります:

    optim(list(costfunc,a1,b1,c1),....

externalはFortranまたはCルーチンとすることもできます: これは計算を高速化するために有用です.

ルーチンの名前は文字列として高レベルプリミティブに 指定することができます. このルーチンの呼び出し手順も規定されています.

外部FortranまたはCルーチンも動的にリンクできます (`link`参照).

## 参照

- ode
- optim
- impl
- dassl
- intg
- schur
- gschur