On 5/29/22 12:59 AM, Steven D'Aprano asked:

Can you point me at the source code for cospi please?

In addition to my previous answer, here is an answer that
is perhaps more appropriate to this forum. Here's how it's
done in gnumeric (more specifically goffice):
  
https://gitlab.gnome.org/GNOME/goffice/-/blob/master/goffice/math/go-math.c#L1073

It assumes you already have an implementation of plain
sin() and cos().

To compute sinpi(x), it first calculates xprime which is
the remainder of x modulo 0.25, then uses trig identities
plus the library routines for sin() and cos() applied
to xprime*M_PI.

The idea is that since xprime is small, multiplying it
by M_PI doesn't do much damage.

Here's my previous answer, which uses only algebraic
operations (multiply and add), as I mentioned back on
5/29/22 7:46 AM.
For years I've been using the code discussed here:
   
https://stackoverflow.com/questions/42792939/implementation-of-sinpi-and-cospi-using-standard-c-math-library

It might be amusing to compare the various approaches
in terms of accuracy and efficiency.
_______________________________________________
gnumeric-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/gnumeric-list

Reply via email to