4.2 Scalaires et matrices de scalaires

Les matrices de scalaires désignent dans Scilab les matrices dont les éléments sont des nombres flottants en double précision (double) ou bien des nombres complexes en double précision (deux double). Leur type est désigné par constant (valeur retournée par typeof). La norme adoptée sur les calculs en double précision peut être contrôlée par la fonction ieee :


\begin{sessioncmd}
\par -->ieee() \sleftarrow{\normalfont le mode de calcul par ...
...0- est maintenant évalué a \( + \infty \)}
ans =
\par Inf
\par\end{sessioncmd}

Les calculs se font avec une certaine précision qui dépend de la machine sur laquelle Scilab est utilisé. La variable Scilab prédéfinie %eps, donne cette précision machine. C'est le plus grand nombre en double précision tel que 1+(%eps)/2 ==1.


\begin{sessioncmd}
\par -->x = [1.32,2,2.34e-3,%%inf,%pi,%s,%nan,1+%eps] \slefta...
...cilab }
x =
\par ! 1.32 2 0.00234 Inf 3.1415927 s Nan 1 !
\par\end{sessioncmd}

C'est bien sûr pour le type constant que l'on trouve un très grand nombre d'opérateurs et de fonctions matricielles prédéfinis.

Nous donnons ici les principaux opérateurs Scilab et les règles de précédence qui les régissent. Il sont tous définis par défaut pour les matrices de scalaires (même les opérateurs logiques) et sont surchargés ou surchargeables pour les autres types de données. Les opérateurs sont classés en ligne par ordre de précédence croissante. Au sein d'un même ligne, les opérateurs ont même précédence avec associativité à gauche sauf pour les opérateurs puissance ou l'associativité est a droite.

Les opérateurs commençant par le symbole . désignent en général des opérateurs agissant termes à termes. Par exemple C=A.*B calcule la multiplication termes à termes des deux matrices A et B à savoir C(i,j)=A(i,j)*B(i,j).


Tableau 2: Précédences des opérateurs
| ou logique
& et logique
~ non logique
==, >=, <=, >, < ,<>, ~= opérateurs de comparaison
+,- addition et soustraction binaire
+,- addition et soustraction unaires
.*, ./, .\, .*., ./., .\., *, /, /., \. ``multiplications'' et ``divisions''
^,** , .^ , .** puissances
', .' transpositions