References
The following books, papers, and specifications inform the algorithms and interfaces used in the library:
-
Donald E. Knuth, The Art of Computer Programming Volume 2: Seminumerical Algorithms, 3rd edition, 1998, Section 4.3.1 Algorithm D (the multiprecision division used for divisors of two or more words).
-
Henry S. Warren Jr., Hacker’s Delight, 2nd edition, 2013 (bit-manipulation algorithms: leading and trailing zero counts, population count, rounding to powers of two, and the
divlulong division of a two-word dividend). -
Niels Moller and Torbjorn Granlund, Improved Division by Invariant Integers, IEEE Transactions on Computers, volume 60 number 2, 2011 (the reciprocal based 3 by 2 word division step used at run time for two-word divisors).
-
ISO/IEC, Programming Languages - C++ (the
<bit>,<numeric>,<charconv>, and<format>interfaces mirrored by this library). -
ISO/IEC 9899:2024 (C23), Programming Languages - C (the
<stdckdint.h>checked-integer interface mirrored byckd_add,ckd_sub, andckd_mul). -
Jan Schultke, P3724, Integer division (the rounding modes and the
div_resultinterface mirrored by thediv_*family).