# mtlb_sum

Fonction d'émulation de la fonction Matlab sum

## Description

Dans plusieurs cas particuliers, la fonction `sum` se comporte différemment dans Matlab et dans Scilab :

- En cas d'appel avec un paramètre d'entrée : La fonction Matlab `sum` traite les valeurs en suivant la première dimension qui n'est pas 1 alors que la fonction Scilab `sum` traite toutes les valeurs de l'entrée.

- En cas d'appel avec deux paramètres d'entrée : La fonction Matlab `sum` peut être utilisée avec le second paramètre donnant une dimension du premier paramètre qui n'existe pas alors que la fonction Scilab `sum` retourne un message d'erreur.

La fonction `mtlb_sum(A[,dim])` est utilisée par `mfile2sci` pour remplacer `sum(A[,dim])` quand il n'était pas possible de savoir ce qu'étaient les paramètres d'entrée pendant la conversion d'un code Matlab vers Scilab. Cette fonction va déterminer la sémantique correcte pendant l'exécution. Pour obtenir un code plus performant on peut remplacer les appels à `mtlb_sum` :

- En cas d'appel avec un paramètre d'entrée, si `A` est une matrice vide, un scalaire ou un vecteur, `mtlb_sum(A)` peut être remplacé par `sum(A)`

- En cas d'appel avec un paramètre d'entrée, si `A` est une matrice non-vide, `mtlb_sum(A)` peut être remplacé par `sum(A,1)`

- En cas d'appel avec un paramètre d'entrée, si `A` est hypermatrice, `mtlb_sum(A)` peut être remplacé par `sum(A,firstnonsingleton(A))`

- En cas d'appel avec deux paramètres d'entrée, si `dim` est inférieure au nombre de dimensions de `A` `mtlb_sum(A,dim)` peut être remplacé par `sum(A,dim)`

Attention : `mtlb_sum` ne doit pas être utilisée pour une programmation manuelle.

## Voir aussi

- firstnonsingleton