1 #include "Bdef.h" BI_svvamx(int N,char * vec1,char * vec2)2void BI_svvamx(int N, char *vec1, char *vec2) 3 { 4 float *v1=(float*)vec1, *v2=(float*)vec2; 5 float diff; 6 BI_DistType *dist1, *dist2; 7 int i, k; 8 9 k = N * sizeof(float); 10 i = k % sizeof(BI_DistType); 11 if (i) k += sizeof(BI_DistType) - i; 12 dist1 = (BI_DistType *) &vec1[k]; 13 dist2 = (BI_DistType *) &vec2[k]; 14 15 for (k=0; k < N; k++) 16 { 17 diff = Rabs(v1[k]) - Rabs(v2[k]); 18 if (diff < 0) 19 { 20 v1[k] = v2[k]; 21 dist1[k] = dist2[k]; 22 } 23 else if (diff == 0) 24 { 25 if (dist1[k] > dist2[k]) 26 { 27 v1[k] = v2[k]; 28 dist1[k] = dist2[k]; 29 } 30 } 31 } 32 } 33