Replaced the loop-based year/month/day extraction in update_from_seconds with Ben Joffe's "Very Fast 64-bit" date algorithm using multiply-shift division (4 multiplications, 0 hardware divisions). Also replaced the mktime inverse with Ben Joffe's inverse date algorithm. Updated is_leap_year to use the Drepper-Neri-Schneider algorithm (% 25 instead of % 100). Replaced the O(n) yday month-length loop with a constant-time cumulative-days table lookup. Uses UInt128 for portable 128-bit support across 64-bit (native) and 32-bit (software fallback) targets. Raman's benchmarks on x86-64 show a ~13% wall-time improvement: Before: real 2.215s, user 2.214s After: real 1.919s, user 1.913s Algorithm references: https://www.benjoffe.com/fast-date-64 https://www.benjoffe.com/fast-date#inverse https://www.benjoffe.com/fast-leap-year#drepper-neri-schneider --------- Co-authored-by: Raman Tenneti <rtenneti@google.com>
399 B
399 B
(developer_guides)=
Developer Guides
Navigate to the links below for information on the respective topics:
:maxdepth: 1
building_docs
code_style
source_tree_layout
entrypoints
implementing_a_function
config_options
date_and_time
fuzzing
header_generation
implementation_standard
undefined_behavior
printf_behavior
builtin_compatibility
syscall_wrapper_refactor
modular_format