void LUdecomposition(float **A, int dim) { int k, i, j; 1 for (k = 0; k < dim; k++) { 2 for (i = k + 1; i < dim; i++) { 3 A[i][k] = A[i][k] / A[k][k]; 4 } 5 for (i = k + 1; i < dim; i++) 6 for (j = k + 1; j < dim; j++) 7 A[i][j] = A[i][j] - A[i][k] * A[k][j]; 8 } 9 }
La funzione, per ottimizzare la memoria utilizzata, memorizza le matrici ed nella matrice stessa, terminata la funzione l' elemento apparterrà a se , oppure ad se .
Il ciclo for esterno che comincia dalla riga 1, si ripete per ogni passo ricorsivo. Dentro il ciclo for alle linee 2-4, che non vengono eseguite quando , si pone in il valore (linea 3). L' elemento sarà invece il valore in . Infine la sottomatrice verrà memorizzata nella matrice stessa nelle linee 5-8. LUdecomposition() impiega tempo .