Calculating trig functions from tables
It takes some skill to use tables of mathematical functions; it's not quite as simple as it may seem. Although it's no longer necessary to use tables, it's interesting to look into the details of how it is done.
For example, the Handbook of Mathematical Functions edited by Abramowitz and Stegun tabulates sines and cosines in increments of one tenth of a degree, from 0 degrees to 45 degrees. What if your angle was outside the range 0 to 45 or if you needed to specify your angle more precisely than 1/10 of a degree? What if you wanted, for example, to calculate cos 203.147?
The high-level answer is that you would use range reduction and interpolation. You'd first use range reduction to reduce the problem of working with any angle to the problem of working with an angle between 0 and 45, then you'd use interpolation to get the necessary accuracy for a value within this range.
OK, but how exactly do you do the range reduction and how exactly do you to the interpolation? This isn't deep, but it's not trivial either.
Range reductionSince sine and cosine have a period of 360, you can add or subtract some multiple of 360 to obtain an angle between -180 and 180.
Next, you can use parity to reduce the range further. That is, since sin(-x) = -sin(x) and cos(-x) = cos(x) you can reduce the problem to computing the sine or cosine of an angle between 0 and 180.
The identities sin(180 - x) = sin(x) and cos(180 -x) = -cos(x) let you reduce the range further to between 0 and 90.
Finally, the identities cos(x) = sin(90 - x) and sin(x) = cos(90 - x) can reduce the range to 0 to 45.
InterpolationYou can fill in between the tabulated angles using interpolation, but how accurate will your result be? How many interpolation points will you need to use in order to get single precision, e.g. an error on the order of 10-7?
The tables tell you. As explained in this post on using a table of logarithms, the tables have a notation at the bottom of the table that tells you how many Lagrange interpolation points to use and what kind of accuracy you'll get. Five interpolation points will give you roughly single precision accuracy, and the notation gives you a little more accurate error bound. The post on using log tables also explains how Lagrange interpolation works.
Beyond trig functionsI intend to write more posts on using tables. The general pattern is always range reduction and interpolation, but it takes more advanced math to reduce the range of more advanced functions.
Update: The next post shows how to use tables to compute the gamma function for complex arguments.
The post Calculating trig functions from tables first appeared on John D. Cook.