Étudions la fonction :

/* ------------------------------------ */   
double **i_duplicate_mR(
int      r,
int      c
)
{
return(i_mR(--r,--c));
}
/* ------------------------------------ */


pow_mR(); utilise cette fonction.

double **T = i_duplicate_mR(A[R_SIZE][C0],A[C_SIZE][C0]);


En fait on initialise la taille de la matrice directement en lisant en mémoire celle-ci, au lieu d'utiliser rsize_mR(); et csize_mR(); simplement car cela est plus rapide.


On se rappel qu'avant de mémoriser la taille de la matrice dans la fonction i_mR(); on ajoute la ligne zéro et la colonne zéro.

Il faut donc les retrancher avant l'appel de la fonction i_mR(); qui va naturellement les rajouter un peu plus tard.


On pourrait naturellement réécrire une deuxième fonction i_mR(); en supprimant les commandes qui ajoutent la ligne zéro et la colonne zéro et l'appeler i_duplicate_mR();

Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.