Prosthaphaeresis

Prosthaphaeresis (from the Greek προσθαφαίρεσις) 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 prosthen (πρόσθεν) meaning before and aphaeresis (ἀφαίρεσις), meaning taking away or subtraction.

In ancient times the term was used to mean a reduction to bring the apparent place of a moving point or planet to the mean place (see Equation of the center). Nicholas Copernicus mentions "prosthaphaeresis" several times in his 1543 work De Revolutionibus Orbium Coelestium, to mean the "great parallax" caused by the displacement of the observer due to the Earth's annual motion.

History and motivation
In 16th-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 (see diagram, right) using formulas such as


 * $$\cos a = \cos b \cos c + \sin b \sin c \cos \alpha$$

and
 * $$\sin b \sin \alpha = \sin a \sin \beta,$$

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, Ibn 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.

The identities
The trigonometric identities exploited by prosthaphaeresis relate products of trigonometric functions to sums. They include the following:



\begin{align} \sin a \sin b & = \frac{\cos(a - b) - \cos(a + b)}{2} \\[6pt] \cos a \cos b & = \frac{\cos(a - b) + \cos(a + b)}{2} \\[6pt] \sin a \cos b & = \frac{\sin(a + b) + \sin(a - b)}{2} \\[6pt] \cos a \sin b & = \frac{\sin(a + b) - \sin(a - b)}{2} \end{align} $$

The first two of these are believed to have been derived by Jost Bürgi, who related them to [Tycho?] 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:
 * 1) Scale down: By shifting the decimal point to the left or right, scale both numbers to values between $$ -1 $$ and $$ 1 $$, to be referred to as $$ \cos \alpha $$ and $$ \cos \beta $$.
 * 2) Inverse cosine: Using an inverse cosine table, find two angles $$  \alpha $$ and $$ \beta $$ whose cosines are our two values.
 * 3) Sum and difference: Find the sum and difference of the two angles.
 * 4) Average the cosines: Find the cosines of the sum and difference angles using a cosine table and average them, giving (according to the second formula above) the product $$ \cos \alpha \cos \beta $$.
 * 5) 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.

For example, to multiply $$309$$ and $$78.8$$:
 * 1) Scale down: Shift the decimal point three and two places to the left, respectively. We get $$\cos \alpha = 0.309$$ and $$\cos \beta = 0.788$$.
 * 2) Inverse cosine: $$\arccos 0.309\approx72^\circ$$, and $$\arccos 0.788\approx38^\circ$$.
 * 3) Sum and difference: $$72^\circ + 38^\circ = 110^\circ$$, and $$72^\circ - 38^\circ = 34^\circ$$.
 * 4) Average the cosines: $$\tfrac{1}{2}(\cos 110^\circ + \cos 34^\circ) $$ is about $$\tfrac{1}{2}(-0.342 + 0.829) = 0.2435$$.
 * 5) Scale up: For each of $$105$$ and $$720$$ we shifted the decimal point a total of five places to the left, so in the answer we shift five places to the right. The result is $$24\,350$$. This is very close to the actual product, $$24\,349.2$$ (a percent error of ≈0.003%).

If we want the product of the cosines of the two initial values, which is useful in some of the astronomical calculations mentioned above, this is surprisingly even easier: only steps 3 and 4 above are necessary.

To divide, we exploit the definition of the secant as the reciprocal of the cosine. To divide $$3420$$ by $$127$$, we scale the numbers to $$0.342$$ and $$1.27$$. Now $$0.342$$ is the cosine of $$70^\circ$$. Using a table of secants, we find $$1.27$$ is the secant of $$38^\circ$$. This means that $$1/1.27\approx\cos 38^\circ$$, and so we can multiply $$0.342$$ by $$1/1.27$$ using the above procedure. Average the cosine of the sum of the angles, $$70^\circ + 38^\circ = 108^\circ$$, with the cosine of their difference, $$70^\circ - 38^\circ = 32^\circ$$,
 * $$\tfrac{1}{2}(\cos 108^\circ + \cos 32^\circ) \approx \tfrac{1}{2}(-0.309 + 0.848) = 0.2695.$$

Scaling up to locate the decimal point gives the approximate answer, $$26.95$$.

Algorithms using the other formulas are similar, but each using different tables (sine, inverse sine, cosine, and inverse cosine) 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 is 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
 * $$e^{ix} = \cos x + i \sin x.$$

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 (for example, by giving entries for every half-degree instead of every degree) 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 that 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 × (1 − 0.7) + 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 $45,000$ 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.

Reverse identities
The product formulas can also be manipulated to obtain formulas that express addition in terms of multiplication. Although less useful for computing products, these are still useful for deriving trigonometric results:



\begin{align} \sin a + \sin b & = 2 \sin \left(\frac{a + b}{2} \right) \cos \left(\frac{a - b}{2} \right) \\[5pt] \sin a - \sin b & = 2 \cos \left(\frac{a + b}{2} \right) \sin \left(\frac{a - b}{2} \right) \\[5pt] \cos a + \cos b & = 2 \cos \left(\frac{a + b}{2} \right) \cos \left(\frac{a - b}{2} \right) \\[5pt] \cos a - \cos b & = -2 \sin \left(\frac{a + b}{2} \right) \sin \left(\frac{a - b}{2} \right) \end{align} $$