You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix remaining MSVC OpenMP C3015 in ptd_expected_sojourn_time
The prior commit (f235e7b5) switched the reward-column omp-for index
from size_t to ptrdiff_t but kept the declaration inside the loop init
(`for (ptrdiff_t r = 0; ...)`). MSVC's OpenMP 2.0 rejects a declaration
in the init regardless of type (C3015 at phasic.c:9739); the canonical
form requires a signed index declared *above* the pragma with a
plain-assignment init.
Mirror the proven pattern already compiling under this MSVC in
scc_compose.c: declare `int r` inside the parallel region (private per
thread) and use `for (r = 0; r < (int) n; r++)` for both column loops.
Verified locally: serial vs PHASIC_HIERAR_ELIMINATION=1 parallel are
bit-identical (max diff 0.0) on a 601-vertex coalescent, and values
match the analytic 2/(k(k-1)) sojourn times to machine precision.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>