diff --git a/scanner/scanner.c b/scanner/scanner.c index dc13adf..2bc38ba 100644 --- a/scanner/scanner.c +++ b/scanner/scanner.c @@ -18,7 +18,7 @@ typedef struct Face { long double descriptor[128]; long int clusterId; ClusterTypes clusterType; - long double *distances; + double *distances; } Face; typedef struct FaceLink { @@ -256,7 +256,7 @@ int main(int argc, char *argv[]) { memset(pFaces[i].distances, 0, sizeof(*pFaces[i].distances) * entries); } - entries = 0; + long int count = 0; for (i = 0; i < 100; i++) { sprintf(pathBuf, "%s/face-data/%ld", argv[1], i); DIR *faceDir = opendir(pathBuf); @@ -267,7 +267,7 @@ int main(int argc, char *argv[]) { } struct dirent *ent; - while ((ent = readdir(faceDir)) != NULL) { + while (count < entries && (ent = readdir(faceDir)) != NULL) { if (strstr(ent->d_name, ".json") == NULL) { continue; } @@ -281,13 +281,13 @@ int main(int argc, char *argv[]) { char path[1028*2]; sprintf(path, "%s/%s", pathBuf, ent->d_name); maxId = maxId > id ? maxId : id; - if (!readFaceDescriptor(&pFaces[entries], id, path)) { + if (!readFaceDescriptor(&pFaces[count], id, path)) { fprintf(stderr, "Unable to read %s.\n", path); continue; } - entries++; - if (entries % 1000 == 0) { - fprintf(stderr, "...read %ld...\n", entries); + count++; + if (count % 1000 == 0) { + fprintf(stderr, "...read %ld...\n", count); } } closedir(faceDir); @@ -301,12 +301,12 @@ int main(int argc, char *argv[]) { for (long j = 0; j < entries; j++) { Face *pTarget = &pFaces[j]; if (i == j) { - pLink->distances[i] = 0.0L; - pTarget->distances[j] = 0.0L; + pLink->distances[i] = 0.0; + pTarget->distances[j] = 0.0; continue; } - if (pLink->distances[j] != 0.0L) { + if (pLink->distances[j] != 0.0) { continue; } @@ -317,7 +317,7 @@ int main(int argc, char *argv[]) { } } - fprintf(stderr, "Average distance: %Lf\n", (long double)1. * total / (entries * entries)); + fprintf(stderr, "Average distance: %Lf\n", 1. * total / (entries * entries)); long int clusters = DBSCAN(pFaces, entries, 0.44L, 2); long int undefined = 0, outlier = 0, core = 0, reachable = 0; @@ -401,12 +401,12 @@ int main(int argc, char *argv[]) { for (long j = 0; j < entries; j++) { Face *pTarget = &pFaces[j]; if (i == j) { - pLink->distances[i] = 0.0L; - pTarget->distances[j] = 0.0L; + pLink->distances[i] = 0.0; + pTarget->distances[j] = 0.0; continue; } - if (pLink->distances[j] != 0.0L) { + if (pLink->distances[j] != 0.0) { // continue; } @@ -414,7 +414,7 @@ int main(int argc, char *argv[]) { pTarget->distances[i] = euclideanDistance(pLink->descriptor, pTarget->descriptor); if (pLink->distances[j] < 0.5) { - sprintf(sqlBuf, "INSERT INTO facedistances (face1Id,face2Id,distance) VALUES (%ld,%ld,%Lf);", + sprintf(sqlBuf, "INSERT INTO facedistances (face1Id,face2Id,distance) VALUES (%ld,%ld,%lf);", ((pLink->faceId < pTarget->faceId) ? pLink->faceId : pTarget->faceId), ((pLink->faceId < pTarget->faceId) ? pTarget->faceId : pLink->faceId), pLink->distances[j]);