shithub: puzzles

Download patch

ref: 2e48ce132e011e83517a9fc4905edcc8f9a5ef58
parent: 4fcc1ea6012dbb25aeb94397d81f364fab81a58d
author: Ben Harris <bjh21@bjh21.me.uk>
date: Tue Apr 4 17:43:25 EDT 2023

Replace <math.h> with <tgmath.h> throughout

C89 provided only double-precision mathematical functions (sin() etc),
and so despite using single-precision elsewhere, those are what Puzzles
has traditionally used.  C99 introduced single-precision equivalents
(sinf() etc), and I hope it's been long enough that we can safely use
them.  Maybe they'll even be faster.

Rather than directly use the single-precision functions, though, we use
the magic macros from <tgmath.h> that automatically choose the precision
of mathematical functions based on their arguments.  This has the
advantage that we only need to change which header we include, and thus
that we can switch back again if some platform has trouble with the new
header.