pointeurs vers des sous-matrices
Bonjour,
Je code actuellement une multiplication matricielle rapide de 3 matrices (type algo de Strassen, étendu à 3 matrices), dans laquelle j'ai besoin d'extraire des sous-matrices.
Par exemple:
Code:
1 2 3 4 5 6
|
int** matrice = new int*[10];
for (int i = 0; i < 10; i++) {
matrice[i] = new int[10];
} |
Pour dérouler mon algo, j'ai besoin de diviser cette matrice en 4 blocs.
Afin d'éviter de copier et recopier des int en mémoire, je souhaiterais travailler avec les pointeurs vers : matrice[0][0], matrice[0][5], matrice[5][0] et matrice[5][5].
Ce que je souhaite faire, c'est une fonction récursive "rapid_mult", qui prend un pointeur vers une matrice en entrée la divise en 4 blocs, et commence à "remonter la chaussette" lorsque la matrice est d'ordre 2.
(il y a un padding de '0' à faire, mais ce n'est pas encore mon pb pour l'instant)
Comment passer les bons pointeurs à ma fonction? J'ai bien essayé , mais cela ne fonctionne pas (je pense que le pointeur n'est pas valable depuis une autre fonction que celle où il a été généré...)
En espérant être à peu près compréhensible...
Merci d'avance!