Tesi Robotica Un coprocessore per Stereo-Matching: Profiling ... | Page 55

i i “MF_Tesi” — 2011/9/12 — 11:39 — page 55 — #55 i 4.3. IMPLEMENTAZIONE IN C i 55 } return ret; 10 } Questa funzione alloca in memoria una nuova matrice dei punteggi. Le celle di questa matrice allocata dinamicamente sono del tipo dirVal e quindi contengono un punteggio, una direzione ed un indicatore di gap. Semplicemente la funzione alloca dinamicamente la matrice e la restituisce. 3 void clearMatrix(dirVal **score, int gap, int egap, int linesize) { int i; score[0][0].d = NONE; score[0][0].v = 0; score[0][1].v = gap; score[0][1].d = WEST; score[0][1].isGap = 1; 8 score[1][0].v = gap; score[1][0].d = NORTH; score[1][0].isGap = 1; for(i = 2; i < linesize; i++) { score[0][i].v = score[0][i - 1].v + ((egap > gap) ? egap : gap); score[0][i].d = WEST; score[0][i].isGap = 1; score[i][0].v = score[i - 1][0].v + ((egap > gap) ? egap : gap); score[i][0].d = NORTH; score[i][0].isGap = 1; } 13 18 23 } La funzione clearMatrix inizializza la matrice in modo da poter essere utilizzata nel calcolo dei punteggi. Inizializza la prima riga e la prima colonna con una serie progressiva di valori di gap, o di egap nel caso in cui tale funzionalità è attiva. Calcolo dei punteggi i i i i