84b73dc651
Flag opt-in use_polarity=True su LineShapeMatcher: distingue edge chiaro->scuro da scuro->chiaro raddoppiando i bin (8 mod pi a 16 mod 2pi). Riduce match accidentali quando il template e direzionale ma scena ha bordo opposto (es. pezzo nero su bg chiaro vs pezzo chiaro su bg nero). Implementazione: - _gradient calcola atan2 mod 2pi quando use_polarity - _spread_bitmap usa uint16 (16 bit) invece di uint8 (8 bit) - Nuovi kernel JIT _jit_score_bitmap_rescored_u16 e _jit_popcount_density_u16 - Wrapper Python score_bitmap_rescored / popcount_density fanno dispatch su dtype dello spread Default off (use_polarity=False) = backward compat completo, 8 bin. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>