public static void applyBMatrixToLatAddr (LatAddr lAddr) { int a = lAddr.A; int b = lAddr.B; int c = lAddr.C; lAddr.A = (2*a)-c; lAddr.B = (2*b)-a; lAddr.C = (2*c)-b; lAddr.cleanUpLatAddr(); }
// TODO: ordering check public static LatAddr convertCanAddrToLatAddr (CanAddr cAddr) { LatAddr result = new LatAddr(); LatAddr tmp = new LatAddr(); for (int i = 0; i < Config.TREE_DEPTH; i++) { byte curTup = cAddr.getTuple(i); tmp.A = (curTup >> 0) & 0x01; tmp.B = (curTup >> 1) & 0x01; tmp.C = (curTup >> 2) & 0x01; for (int j = i; j > 0; j--) { BasisVectors.applyBMatrixToLatAddr(tmp); } result.A += tmp.A; result.B += tmp.B; result.C += tmp.C; } result.cleanUpLatAddr(); return result; }