public bool check(int index) { if (encode[index] == null) { return(true); } if (DTW.encFit(encode[index], vencode) != -1) { return(true); } return(false); }
public bool update() { encode[10] = vencode; byte[] match = new byte[NUMOFENCODE + 1]; int[] err = new int[NUMOFENCODE + 1]; int errt, errminmax, min, max, imin = 0, imax = NUMOFENCODE, minmax; err[0] = 0; for (int i = 1; i < NUMOFENCODE + 1; i++) { err[i] = 0; for (int j = 0; j < i; j++) { errt = DTW.encFit(encode[j], encode[i]); if (errt == -1) { errt = DTW.encFit(encode[i], encode[j]); } if (errt == -1) { match[i]++; match[j]++; } else { err[i] += errt; err[j] += errt; } } } minmax = 12; errminmax = 1000000000; for (int i = 0; i < err.Length; i++) { if (match[i] < minmax) { minmax = match[i]; } } for (int i = 0; i < err.Length; i++) { if (match[i] == minmax && err[i] < errminmax) { errminmax = err[i]; imin = i; } } minmax = 0; errminmax = 0; for (int i = 0; i < err.Length; i++) { if (match[i] > minmax) { minmax = match[i]; } } for (int i = 0; i < err.Length; i++) { if (match[i] == minmax && err[i] > errminmax) { errminmax = err[i]; imax = i; } } List <sPoint> tencode; tencode = encode[0]; encode[0] = encode[imin]; encode[imin] = tencode; tencode = encode[NUMOFENCODE]; //for create only update change to 10 encode[NUMOFENCODE] = encode[imax == 0 ? imin : imax]; //for create only update change to 10 encode[imax == 0 ? imin : imax] = tencode; return(true); }