mtlb_prod — Fonction d'émulation de la fonction Matlab prod
Dans plusieurs cas particuliers, la fonction prod
se comporte différemment dans Matlab et dans Scilab :
En cas d'appel avec un paramètre d'entrée : La fonction Matlab prod
traite
les valeurs en suivant la première dimension qui n'est pas 1 alors que la fonction Scilab
prod
traite toutes les valeurs de l'entrée.
En cas d'appel avec deux paramètres d'entrée : La fonction Matlab prod
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 prod
retourne un message d'erreur.
La fonction mtlb_prod(A[,dim])
est utilisée par
mfile2sci
pour remplacer prod(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_prod
:
En cas d'appel avec un paramètre d'entrée, si A
est une matrice vide, un scalaire ou un vecteur,
mtlb_prod(A)
peut être remplacé par prod(A)
En cas d'appel avec un paramètre d'entrée, si A
est une matrice non-vide,
mtlb_prod(A)
peut être remplacé par prod(A,1)
En cas d'appel avec un paramètre d'entrée, si A
est hypermatrice,
mtlb_prod(A)
peut être remplacé par prod(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_prod(A,dim)
peut être remplacé par prod(A,dim)
Attention : mtlb_prod
ne doit pas être utilisée pour une programmation manuelle.