In this section, we present an overview of Scilab. The ﬁrst subsection introduces the open source project associated with the creation of this document. Then we present the software, licence and scientiﬁc aspects of Scilab. In the third subsection, we describe the methods to download and install Scilab on Windows, GNU/Linux and Mac operating systems. In the remaining subsections, we describe various sources of information needed when we have to get some help from Scilab or from other users. We describe the built-in help pages and analyse the mailing lists and wiki which are available online. Finally, we take a moment to look at the demonstrations which are provided with Scilab.

This document is an open-source project. The LATEX sources are available on the Scilab Forge:

http://forge.scilab.org/index.php/p/docintrotoscilab/

The LATEX sources are provided under the terms of the Creative Commons AttributionShareAlike 3.0 Unported License:

http://creativecommons.org/licenses/by-sa/3.0

The Scilab scripts are provided on the Forge, inside the project, under the scripts sub-directory. The scripts are available under the CeCiLL licence:

http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt

Scilab is a programming language associated with a rich collection of numerical algorithms covering many aspects of scientiﬁc computing problems.

From the software point of view, Scilab is an interpreted language. This generally speeds up the development process, because the user directly accesses a high-level language, with a rich set of features provided by the library. The Scilab language is meant to be extended so that user-deﬁned data types can be deﬁned with possibly overloaded operations. Scilab users can develop their own modules so that they can solve their particular problems. The Scilab language can dynamically compile and link other languages such as Fortran and C: this way, external libraries can be used as if they were a part of Scilab built-in features. Scilab also interfaces LabVIEW, a platform and development environment for a visual programming language from National Instruments.

From the license point of view, Scilab is a free software in the sense that the user does not pay for it and Scilab is an open source software, provided under the Cecill license [2]. The software is distributed with source code, so that the user has an access to Scilab’s most internal aspects. Most of the time, the user downloads and installs a binary version of Scilab, since the Scilab consortium provides Windows, Linux and Mac OS executable versions. Online help is provided in many local languages.

From the scientiﬁc point of view, Scilab comes with many features. At the very beginning of Scilab, features were focused on linear algebra. But, rapidly, the number of features extended to cover many areas of scientiﬁc computing. The following is a short list of its capabilities:

• Linear algebra, sparse matrices,

• Polynomials and rational functions,

• Interpolation, approximation,

• Linear, quadratic and non linear optimization,

• Ordinary Diﬀerential Equation solver and Diﬀerential Algebraic Equations solver,

• Classic and robust control, Linear Matrix Inequality optimization,

• Diﬀerentiable and non-diﬀerentiable optimization,

• Signal processing,

• Statistics.

Scilab provides many graphics features, including a set of plotting functions, which create 2D and 3D plots as well as user interfaces. The Xcos environment provides a hybrid dynamic systems modeler and simulator.

Whatever your platform is (i.e. Windows, Linux or Mac), Scilab binaries can be downloaded directly from the Scilab homepage

or from the Download area

http://www.scilab.org/download

Scilab binaries are provided for both 32 and 64-bit platforms so that they match the target installation machine. Scilab can also be downloaded in source form, so that you can compile Scilab by yourself and produce your own binary. Compiling Scilab and generating a binary is especially interesting when we want to understand or debug an existing feature, or when we want to add a new feature. To compile Scilab, some prerequisites binary ﬁles are necessary, which are also provided in the Download center. Moreover, a Fortran and a C compiler are required. Compiling Scilab is a process which will not be detailed further in this document, because this chapter is mainly devoted to the external behavior of Scilab.

Scilab is distributed as a Windows binary and an installer is provided so that the installation is really easy. The Scilab console is presented in ﬁgure 1. Several comments may be made about this installation process.

win64-scilab-console-5-5-2

Figure 1: Scilab console under Windows.

On Windows, if your machine is based on an Intel processor, the Intel Math Kernel Library (MKL) [6] enables Scilab to perform faster numerical computations.

Under Linux, the binary versions are available from Scilab website as .tar.gz ﬁles. There is no need for an installation program with Scilab under Linux: simply unzip the ﬁle in one target directory. Once done, the binary ﬁle is located in <path>/scilab5.5.2/bin/scilab. When this script is executed, the console immediately appears and looks exactly the same as on Windows. Notice that Scilab is also distributed with the packaging system available with Linux distributions based on Debian (for example, Ubuntu). This installation method is extremely simple and eﬃcient. Nevertheless, it has one little drawback: the version of Scilab packaged for your Linux distribution may not be up-to-date. This is because there is some delay (from several weeks to several months) between the availability of an up-to-date version of Scilab under Linux and its release in Linux distributions. For now, Scilab comes on Linux with a binary linear algebra library which guarantees portability. Under Linux, Scilab does not come with a binary version of ATLAS [1], so that linear algebra is a little slower for that platform, compared to Windows.

Under Mac OS, the binary versions are available from Scilab website as a .dmg ﬁle. This binary works for Mac OS versions starting from version 10.5. It uses the Mac OS installer, which provides a classical installation process. Scilab is not available on Power PC systems. For technical reasons, Scilab version 5.5 for Mac OS X comes with a disabled Tcl/Tk interface. As a consequence, there are some small limitations on the use of Scilab on this platform. For example, the Scilab / Tcl interface (TclSci) and the graphic editor are not working. These features will be rewritten in Java in future versions of Scilab and these limitations will disappear. Still, using Scilab on a Mac OS system is easy, and uses the shortcuts which are familiar to the users of this platform. For example, the console and the editor use the Cmd key (Apple key) which is found on Mac keyboards. Moreover, there is no right-click on this platform. Instead, Scilab is sensitive to the Control-Click keyboard event. For now, Scilab comes on Mac OS with a linear algebra library which is optimized and guarantees portability. Under Mac OS, Scilab does not come with a binary version of ATLAS [1], so that linear algebra is a little slower for that platform.

Figure 2: Scilab help window.

The most simple way to get the online help integrated to Scilab is to use the function help. Figure 2 presents the Scilab help window. To use this function, simply type ”help”in the console and press the <Enter> key, as in the following session.

help

Suppose that you want some help about the optim function. You may try to browse the integrated help, ﬁnd the optimization section and then click on the optim item to display its help. Another possibility is to use the function help, followed by the name of the function, for which help is required, as in the following session.

help optim

Scilab automatically opens the associated entry in the help. We can also use the help provided on the Scilab web site

This page always contains the help for the up-to-date version of Scilab. By using the ”search” feature of my web browser, I can most of the time quickly ﬁnd the help page I need. With that method, I can see the help pages for several Scilab commands at the same time (for example the commands derivative and optim, so that I can provide the cost function suitable for optimization with optim by computing derivatives with derivative). A list of commercial books, free books, online tutorials and articles is presented on the following page:

http://www.scilab.org/resources/documentation

The mailing list is designed for all Scilab usage questions. To subscribe to this mailing list, send an e-mail to . The mailing list focuses on the development of Scilab, be it the development of Scilab core or of complicated modules which interacts deeply with Scilab core. To subscribe to this mailing list, send an e-mail to .

These mailing lists are archived at:

http://mailinglists.scilab.org/Scilab-users-Mailing-Lists-Archives-f2602246.html

and:

http://mailinglists.scilab.org/Scilab-developers-Mailing-Lists-Archives-f2574944.html

Therefore, before asking a question, users should consider looking in the archive if the same question or subject has already been answered. A question posted on the mailing list may be related to a very speciﬁc technical point, so that it requires an answer which is not general enough to be public. The address is designed for this purpose. Developers of the Scilab team provide accurate answers via this communication channel. The Scilab wiki is a public tool for reading and publishing general information about Scilab:

It is used both by Scilab users and developers to publish information about Scilab. From a developer’s point of view, it contains step-by-step instructions to compile Scilab from the sources, dependencies of various versions of Scilab, instructions to use Scilab source code repository, etc… The Scilab Bugzilla http://bugzilla.scilab.org allows submitting a report each time we ﬁnd a new bug. It may happen that this bug has already been discovered by someone else. This is why it is advised to search the bug database for existing related problems before reporting a new bug. If the bug is not reported yet, it is a very good thing to report it, along with a test script. This test script should remain as simple as possible to reproduce the problem and identify the source of the issue. An eﬃcient way of getting up-to-date information is to use RSS feeds. The RSS feed associated with the Scilab website is

http://www.scilab.org/en/rss_en.xml

This channel regularly delivers press releases and general announcements.

The Scilab consortium maintains a collection of demonstration scripts, which are available from the console, in the menu ? > Scilab Demonstrations. Figure 3 presents the demonstration window. Some demonstrations are graphic, while some others are interactive, which means that the user must type on the <Enter> key to go on to the next step of the demo.

Figure 3: Scilab demos window.

The associated demonstrations scripts are located in the Scilab directory, inside each module. For example, the demonstration associated with the optimization module is located in the ﬁle

<path>\scilab-5.5.2\modules\optimization\demos\datafit\datafit.dem.sce

Of course, the exact path of the ﬁle depends on your particular installation and your operating system.

Analyzing the content of these demonstration ﬁles is often an eﬃcient solution for solving common problems and to understand particular features.

Another method to ﬁnd some help is to analyze the source code of Scilab itself (Scilab is indeed open-source!). For example, the derivative function is located in

<path>\scilab-5.5.2\modules\optimization\macros\derivative.sci

Most of the time, Scilab macros are very well written, taking care of all possible combinations of input and output arguments and many possible values of the input arguments. Often, diﬃcult numerical problems are solved in these scripts so that they provide a deep source of inspiration for developing your own scripts.