Prosthaphaeresis
Prosthaphaeresis was an algorithm used in the late 16th century and early 17th century for approximate multiplication and division using formulas from trigonometry. For the 25 years preceding the invention of the logarithm in 1614, it was the only known generally applicable way of approximating products quickly. Its name comes from the Greek prosthesis and aphaeresis, meaning addition and subtraction, two steps in the process.
History and motivation
In sixteenth century Europe, celestial navigation of ships on long voyages relied heavily on ephemerides to determine their position and course. These voluminous charts prepared by astronomers detailed the position of stars and planets at various points in time. The models used to compute these were based on spherical trigonometry, which relates the angles and arc lengths of spherical triangles using formulas such as:and
where a, b and c are the angles subtended at the centre of the sphere by the corresponding arcs.
When one quantity in such a formula is unknown but the others are known, the unknown quantity can be computed using a series of multiplications, divisions, and trigonometric table lookups. Astronomers had to make thousands of such calculations, and because the best method of multiplication available was long multiplication, most of this time was spent taxingly multiplying out products.
Mathematicians, particularly those who were also astronomers, were looking for an easier way, and trigonometry was one of the most advanced and familiar fields to these people. Prosthaphaeresis appeared in the 1580s, but its originator is not known for certain; its contributors included the mathematicians Ibn Yunis, Johannes Werner, Paul Wittich, Joost Bürgi, Christopher Clavius, and François Viète. Wittich, Yunis, and Clavius were all astronomers and have all been credited by various sources with discovering the method. Its most well-known proponent was Tycho Brahe, who used it extensively for astronomical calculations such as those described above. It was also used by John Napier, who is credited with inventing the logarithms that would supplant it.
Nicholas Copernicus mentions 'prosthaphaeresis' several times in his 1543 work De Revolutionibus Orbium Coelestium, meaning the "great parallax" caused by the displacement of the observer due to the Earth's annual motion.
The identities
The trigonometric identities exploited by prosthaphaeresis relate products of trigonometric functions to sums. They include the following:The first two of these are believed to have been derived by Jost Bürgi, who related them to Brahe; the others follow easily from these two. If both sides are multiplied by 2, these formulas are also called the Werner formulas.
The algorithm
Using the second formula above, the technique for multiplication of two numbers works as follows:- Scale down: By shifting the decimal point to the left or right, scale both numbers to values between and, to be referred to as and.
- Inverse cosine: Using an inverse cosine table, find two angles and whose cosines are our two values.
- Sum and difference: Find the sum and difference of the two angles.
- Average the cosines: Find the cosines of the sum and difference angles using a cosine table and average them, giving the product.
- Scale up: Shift the decimal place in the answer the combined number of places we have shifted the decimal in the first step for each input, but in the opposite direction.
- Scale down: Shift the decimal point three places to the left in each. We get and.
- Inverse cosine: is about 0.105 and is about.
- Sum and difference: and.
- Average the cosines: is about , or.
- Scale up: For each of and we shifted the decimal point three places to the left, so in the answer we shift six places to the right. The result is. This is very close to the actual product, .
To divide, we exploit the definition of the secant as the reciprocal of the cosine. To divide by, we scale the numbers to and. The cosine of is . Then use a table of secants to find out that is the secant of. This means that is the cosine of, and so we can multiply by using the above procedure. Average the cosine of the sum of the angles,, with the cosine of their difference,
Scaling up to locate the decimal point gives the approximate answer,
Algorithms using the other formulas are similar, but each using different tables in different places. The first two are the easiest because they each only require two tables. Using the second formula, however, has the unique advantage that if only a cosine table is available, it can be used to estimate inverse cosines by searching for the angle with the nearest cosine value.
Notice how similar the above algorithm is to the process for multiplying using logarithms, which follows these steps: scale down, take logarithms, add, take inverse logarithm, scale up. It's no surprise that the originators of logarithms had used prosthaphaeresis.
Indeed the two are closely related mathematically. In modern terms, prosthaphaeresis can be viewed as relying on the logarithm of complex numbers, in particular on Euler's formula:
Decreasing the error
If all the operations are performed with high precision, the product can be as accurate as desired. Although sums, differences, and averages are easy to compute with high precision, even by hand, trigonometric functions and especially inverse trigonometric functions are not. For this reason, the accuracy of the method depends to a large extent on the accuracy and detail of the trigonometric tables used.For example, a sine table with an entry for each degree can be off by as much as 0.0087 if we just round an angle off to the nearest degree; each time we double the size of the table we halve this error. Tables were painstakingly constructed for prosthaphaeresis with values for every second, or 3600th of a degree.
Inverse sine and cosine functions are particularly troublesome, because they become steep near −1 and 1. One solution is to include more table values in this area. Another is to scale the inputs to numbers between −0.9 and 0.9. For example, 950 would become 0.095 instead of 0.950.
Another effective approach to enhancing the accuracy is linear interpolation, which chooses a value between two adjacent table values. For example, if we know the sine of 45° is about 0.707 and the sine of 46° is about 0.719, we can estimate the sine of 45.7° as 0.707 × + 0.719 × 0.7 = 0.7154.
The actual sine is 0.7157. A table of cosines with only 180 entries combined with linear interpolation is as accurate as a table with about 45000 entries without it. Even a quick estimate of the interpolated value is often much closer than the nearest table value. See lookup table for more details.