# external

Scilab Object, external function or routine

### Description

External function or routine for use with specific commands.

An "external" is a function or routine which is used as an argument of some high-level primitives (such as `ode`, `optim`, `schur`...).

The syntax of the external (function or routine) is imposed by the high-level primitive which sets the arguments of the external.

For example the external function `costfunc` is an argument of the `optim` primitive. Its syntax must be: `[f,g,ind]=costfunc(x,ind)` and `optim` (the high-level optimization primitive) is invoked as follows:

`optim(costfunc,...)`

Here `costfunc` (the cost function to be minimized by the primitive `optim`) evaluates `f=f(x)` and `g=` gradient of `f` at `x` (`ind` is an integer. Its use is precised in the `optim` help).

If other values are needed by the external function these variables can be defined in its environment. Also, they can be put in a list. For example, the external function

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

is valid for `optim` if the external is `list(costfunc,a,b,c)` and the call to `optim` is then:

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

An external can also be a Fortran or C routine : this is convenient to speed up the computations.

The name of the routine is given to the high-level primitive as a character string. The syntax of the routine is also imposed.

External Fortran or C routines can also be dynamically linked (see `link`).

### See also

• ode — ordinary differential equation solver
• optim — non-linear optimization routine
• impl — differential algebraic equation
• dassl — differential algebraic equation
• intg — definite integral
• schur — [ordered] Schur decomposition of matrix and pencils
 Report an issue << clearfun Built-in & external funptr >>

 Copyright (c) 2022-2023 (Dassault Systèmes)Copyright (c) 2017-2022 (ESI Group)Copyright (c) 2011-2017 (Scilab Enterprises)Copyright (c) 1989-2012 (INRIA)Copyright (c) 1989-2007 (ENPC)with contributors Last updated:Mon Mar 27 11:52:51 GMT 2023