Page MenuHomeFreeBSD

math: Optimize roundf() using bit manipulation
Needs ReviewPublic

Authored by kaushlendra.kumar_intel.com on Jan 6 2026, 5:14 AM.
Tags
None
Referenced Files
F158263409: D54552.id169166.diff
Sat, May 30, 1:11 PM
F158252440: D54552.id.diff
Sat, May 30, 9:45 AM
F158223532: D54552.id169162.diff
Sat, May 30, 12:33 AM
Unknown Object (File)
Thu, May 28, 8:52 AM
Unknown Object (File)
Thu, May 28, 2:53 AM
Unknown Object (File)
Wed, May 27, 1:20 PM
Unknown Object (File)
Tue, May 19, 2:36 AM
Unknown Object (File)
Mon, May 18, 8:42 AM
Subscribers

Details

Reviewers
imp
Summary

Replace floorf()-based implementation with direct IEEE 754 bit
manipulation. The optimized version avoids expensive function calls
and floating-point operations by directly manipulating mantissa bits
to achieve rounding.

Key optimizations:

  • Fast paths for special values (Inf/NaN, |x| >= 2^23, |x| < 0.5)
  • Add 0.5 in mantissa position then truncate fractional bits
  • Pure integer operations until final conversion
  • faster than floorf()-based approach

The implementation is bit-exact and maintains IEEE 754 compliance.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 69654
Build 66537: arc lint + arc unit