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
Simplify fixed-point conversion in atan2 to avoid overflow
The previous implementation used `((angle * TWIN_ANGLE_360) >> 15)` which
caused integer overflow when angle values reached their maximum range of
[-9092, 9092]. The multiplication `9092 * 4096` results in 37,249,024,
exceeding the 16-bit signed integer limit.
This commit simplifies the expression by factoring out the constants:
- Original: angle * TWIN_ANGLE_360 / 32768
- Since TWIN_ANGLE_360 = 2^12 and 32768 = 2^15
- Simplified: angle * 2^12 / 2^15 = angle >> 3
Benefits:
1. Eliminates integer overflow risk
2. Avoids incorrect double-precision cast
3. Removes floating-point operations
4. Simpler and more efficient bit-shift operation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
0 commit comments