Logo image
Euclidean Affine Functions and their Application to Calendar Algorithms
Journal article   Open access   Peer reviewed

Euclidean Affine Functions and their Application to Calendar Algorithms

Cassio Neri and Lorenz Schneider
Software: Practice and Experience, Vol.53(4), pp.937-970
01/04/2023

Abstract

Euclidean Affine Functions Integer Division Calendar Algorithms
"In everyday life, dates are specified in terms of year, month and day, but this is not how digital devices represent them. Such devices continuously count elapsed days since a certain reference date, usually 1 January 1970. Accordingly, the date exactly one year after this reference is 1 January 1971 and digital devices represent it as 365. Conversions between machine and human formats are, arguably, amongst the most common operations performed by digital devices and constitute the subject of this article. We introduce Euclidean affine functions (EAFs) and study their properties. EAFs are of the form f(n) = (a.n+b)/d , where n, a, b, and d are integers and where denotes the quotient of Euclidean division. We derive algebraic relations and numerical approximations that are important for the efficient evaluation of these expressions in modern CPUs. Since division is a particular case of an EAF (when a = 1 and b = 0 ), the optimisations proposed in this article can also be applied to division. The main application presented in this article is the derivation of conversion algorithms for the Gregorian calendar. We will show that they can be implemented substantially more efficiently than is currently the case in widely used C, C++, C#, and Java open source libraries. Gains in speed of a factor of two or more are common. These algorithms have been implemented in GCC, the Linux Kernel and .NET."
pdf
Softw Pract Exp - 2022 - Neri - Euclidean affine functions and their application to calendar algorithmsDownloadView
Open Access

Metrics

6 File views/ downloads
29 Record Views

Details

InCites Highlights

These are selected metrics from InCites Benchmarking & Analytics tool, related to this contribution

Citation topics
4 Electrical Engineering, Electronics & Computer Science
4.206 Models of Computation
4.206.620 Approximate Circuits
Web of Science research areas
Computer Science, Software Engineering
Logo image