From a1ad0db8a6d829eddf1478cee44ae976bbcd325f Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Mon, 6 Apr 2026 14:48:54 +0100 Subject: Fix integer conversions in code, tests and some tools --- src/solvers/coord/common.h | 12 +++++++----- src/solvers/coord/gendata.h | 19 +++++++++++-------- src/solvers/coord/multisolve.h | 12 ++++++------ src/solvers/coord/solve.h | 12 ++++++------ 4 files changed, 30 insertions(+), 25 deletions(-) (limited to 'src/solvers/coord') diff --git a/src/solvers/coord/common.h b/src/solvers/coord/common.h index 593641f..3a62e85 100644 --- a/src/solvers/coord/common.h +++ b/src/solvers/coord/common.h @@ -77,7 +77,8 @@ coord_gendata_generic( unsigned char *data ) { - uint64_t i, j, n, t, nasty; + uint64_t i, j, n, nasty; + uint8_t t; unsigned char *datanoinfo; uint32_t *classttrep, *rep; size_t coord_datasize; @@ -122,16 +123,17 @@ coord_gendata_generic( } for (t = 0; t < NTRANS; t++) { - if (!((UINT64_C(1) << t) & coord->trans_mask)) + if (!((UINT64_C(1) << (uint64_t)t) & coord->trans_mask)) continue; j = coord->sym.coord(transform(c, t)); - classttrep[j] = + classttrep[j] = (uint32_t)( (n << COORD_CLASS_SHIFT) | (nasty << COORD_ISNASTY_SHIFT) | - (inverse_trans(t) << COORD_TTREP_SHIFT); + (inverse_trans(t) << COORD_TTREP_SHIFT) + ); } - rep[n++] = i; + rep[n++] = (uint32_t)i; } writetableinfo(&info, coord_datasize, data); diff --git a/src/solvers/coord/gendata.h b/src/solvers/coord/gendata.h index f803044..edf6ce6 100644 --- a/src/solvers/coord/gendata.h +++ b/src/solvers/coord/gendata.h @@ -146,7 +146,8 @@ genptable_coord( unsigned char *table ) { - uint64_t tablesize, i, d, tot, t, nm; + uint64_t tablesize, i, tot, t, nm; + uint8_t d; tableinfo_t info; tablesize = DIV_ROUND_UP(coord->max, 2); @@ -170,7 +171,7 @@ genptable_coord( tot = info.distribution[0] = genptable_coord_init_solved(coord, data, table); - nm = popcount_u32(coord->moves_mask_gendata); + nm = popcount_u64(coord->moves_mask_gendata); for (d = 1; tot < coord->max && d < 15; d++) { t = 0; if (switch_to_fromnew(tot, coord->max, nm)) { @@ -247,20 +248,21 @@ genptable_coord_fillneighbors( { bool isnasty; uint8_t m; - uint64_t ii, j, t, tot; + uint64_t ii, j, tot; + uint8_t t; cube_t c, moved; c = coord->cube(i, data); tot = 0; for (m = 0; m < NMOVES; m++) { - if (!((UINT32_C(1) << (uint32_t)m) & + if (!((UINT64_C(1) << (uint64_t)m) & coord->moves_mask_gendata)) continue; moved = move(c, m); ii = coord->coord(moved, data); isnasty = coord->isnasty(ii, data); for (t = 0; t < NTRANS && (t == 0 || isnasty); t++) { - if (!((UINT64_C(1) << t) & coord->trans_mask)) + if (!((UINT64_C(1) << (uint64_t)t) & coord->trans_mask)) continue; j = coord->coord(transform(moved, t), data); @@ -285,14 +287,15 @@ genptable_coord_fillfromnew( { bool found; uint8_t m; - uint64_t tot, t, ii, j, nsim, sim[NTRANS]; + uint64_t tot, j, ii, nsim, sim[NTRANS]; + uint8_t t; cube_t c; tot = 0; c = coord->cube(i, data); for (t = 0, nsim = 0; t < NTRANS; t++) { - if (!((UINT64_C(1) << t) & coord->trans_mask)) + if (!((UINT64_C(1) << (uint64_t)t) & coord->trans_mask)) continue; ii = coord->coord(transform(c, t), data); @@ -305,7 +308,7 @@ genptable_coord_fillfromnew( for (j = 0, found = false; j < nsim && !found; j++) { c = coord->cube(sim[j], data); for (m = 0; m < NMOVES; m++) { - if (!((UINT32_C(1) << (uint32_t)m) & + if (!((UINT64_C(1) << (uint64_t)m) & coord->moves_mask_gendata)) continue; ii = coord->coord(move(c, m), data); diff --git a/src/solvers/coord/multisolve.h b/src/solvers/coord/multisolve.h index 28f03bb..efd287d 100644 --- a/src/solvers/coord/multisolve.h +++ b/src/solvers/coord/multisolve.h @@ -72,8 +72,7 @@ STATIC int64_t solve_multicoord_dfs(dfsarg_solve_multicoord_t arg[NON_NULL]) { uint8_t m, l, i; - uint32_t mm; - uint64_t coord; + uint64_t mm, coord; int64_t n, ret; const coord_t *c; cube_t backup_cube, backup_inverse; @@ -108,7 +107,7 @@ solve_multicoord_dfs_notsolved: arg->solution_moves->nmoves++; for (m = 0; m < NMOVES; m++) { - if (!(mm & (UINT32_C(1) << (uint32_t)m))) + if (!(mm & (UINT64_C(1) << (uint64_t)m))) continue; arg->solution_moves->moves[l] = m; @@ -163,9 +162,10 @@ solve_multicoord_dispatch( return NISSY_ERROR_INVALID_SOLVER; } - return solve_multicoord(oc, mcoord, trans, minmoves, - maxmoves, maxsolutions, optimal, threads, data_size, data, - solutions_size, sols, poll_status, poll_status_data); + return solve_multicoord(oc, mcoord, trans, (uint8_t)minmoves, + (uint8_t)maxmoves, (uint8_t)maxsolutions, (uint8_t)optimal, + (uint8_t)threads, data_size, data, solutions_size, sols, + poll_status, poll_status_data); } STATIC int64_t diff --git a/src/solvers/coord/solve.h b/src/solvers/coord/solve.h index fcdb06e..6bb9af2 100644 --- a/src/solvers/coord/solve.h +++ b/src/solvers/coord/solve.h @@ -151,8 +151,7 @@ solve_coord_dfs(dfsarg_solve_coord_t arg[NON_NULL]) { bool lastbackup; uint8_t m, l, nnbackup, nibackup, nmoves; - uint32_t mm; - uint64_t coord; + uint64_t mm, coord; int64_t n, ret; cube_t backup_cube, backup_inverse; @@ -190,7 +189,7 @@ solve_coord_dfs(dfsarg_solve_coord_t arg[NON_NULL]) arg->lastisnormal = true; for (m = 0; m < NMOVES; m++) { - if (!(mm & (UINT32_C(1) << (uint32_t)m))) + if (!(mm & (UINT64_C(1) << (uint64_t)m))) continue; arg->solution_moves->moves[l] = m; @@ -221,7 +220,7 @@ solve_coord_dfs(dfsarg_solve_coord_t arg[NON_NULL]) arg->lastisnormal = false; for (m = 0; m < NMOVES; m++) { - if (!(mm & (UINT32_C(1) << (uint32_t)m))) + if (!(mm & (UINT64_C(1) << (uint64_t)m))) continue; arg->solution_moves->premoves[l] = m; @@ -280,8 +279,9 @@ solve_coord_dispatch( return NISSY_ERROR_INVALID_SOLVER; } - return solve_coord(oc, coord, trans, nissflag, minmoves, maxmoves, - maxsolutions, optimal, threads, data_size, data, + return solve_coord(oc, coord, trans, (uint8_t)nissflag, + (uint8_t)minmoves, (uint8_t)maxmoves, (uint8_t)maxsolutions, + (uint8_t)optimal, (uint8_t)threads, data_size, data, solutions_size, sols, poll_status, poll_status_data); } -- cgit v1.3