let iter_matrix f a = for i = 0 to Array.length a - 1 do let row = a.(i) in for j = 0 to Array.length row - 1 do f i j row.(j) done done (* Il est plus efficace de procéder par ligne, car on accède alors une seule fois à la ligne i (let row = a.(i)). Par ailleurs, la localité de données est bien meilleure car chaque ligne de la matrice est une zone contigüe de mémoire, qui est déplacée dans le cache, parcourue, puis n'est plus utilisée. *) (* note : on peut aussi utiliser Array.iteri pour parcourir les éléments de chaque ligne, ainsi : *) let iter_matrix f a = for i = 0 to Array.length a - 1 do Array.iteri (f i) a.(i) done
This document was generated using caml2html