Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.0.1 - English

Change language to:
Français - 日本語 - Português - Русский

Please note that the recommended version of Scilab is 2024.1.0. This page might be outdated.
See the recommended documentation of this function

Scilab Help >> Advanced functions > Built-in & external > external


Scilab Object, external function or routine


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:


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


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


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-2024 (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 Feb 12 19:26:59 CET 2018