# Prostaféresis

La prostaféresis o prostafairesis es un algoritmo utilizado a finales del siglo XVI d. C. y principios del XVII d. C. para aproximar la multiplicación y división de números mediante identidades trigonométricas. Durante los 25 años que precedieron la introducción del logaritmo en 1614, la prostaféresis era el único método conocido y aplicable a gran escala para aproximar rápidamente un producto. El término proviene de las palabras griegas prosthesis (πρόσθεσις) y aphairesis (ὰφαίρεσις), que significan adición y sustracción, dos de los pasos del proceso.

## Historia y motivación

En la Europa del siglo XVI d. C., los navíos que surcaban los mares utilizaban para orientarse la navegación astronómica, que hacía un fuerte uso de las efemérides para determinar su posición y dirección. Estas tablas voluminosas confeccionadas por astrónomos reflejaban la posición de los astros a lo largo del tiempo. Para calcular dichas posiciones, se utilizaba la trigonometría esférica, que relaciona los ángulos y las longitudes de arco de un triángulo esférico mediante fórmulas tales como:
    ${\begin{cases}\operatorname {sen} a\ \operatorname {sen} \beta =\operatorname {sen} b\ \operatorname {sen} \alpha \\\cos a=\cos b\ \cos c+\operatorname {sen} b\ \operatorname {sen} c\ \cos \alpha \end{cases}}$
Cuando se conocen suficientes de estas variables, se pueden calcular las demás mediante multiplicaciones, divisiones y la comprobación de tablas trigonométricas. Los astrónomos de la época tenían que realizar miles de cálculos así, y como el mejor método que se conocía para multiplicar era la laboriosa multiplicación directa a mano, debían pasar la mayor parte de su tiempo realizando multiplicaciones.
Los matemáticos, en particular aquellos que también eran astrónomos, buscaron un método más sencillo, y la trigonometría era una de las ramas de la matemática más avanzada y también una de las que les eran más familiares. La prostaféresis surgió en la década de 1580, pero no se sabe con certeza quién fue el autor. Los matemáticos Paul Wittich, Ibn Yunus, Joost Bürgi, Johannes Werner, Christopher Clavius y François Viète fueron algunos de los que contribuyeron a desarrollar este método. En particular, tanto Wittich como Yunis y Clavius eran astrónomos y a los tres se les ha atribuido desde distintas fuentes el descubrimiento del algoritmo. Su partidario más conocido fue Tycho Brahe, quien lo utilizó exhaustivamente para realizar cálculos astronómicos como los anteriormente descritos. La prostaféresis también fue utilizada por John Napier, más recordado por introducir los logaritmos que la acabarían sustituyendo.

## Las identidades

La prostaféresis utiliza identidades trigonométricas que relacionan productos de funciones trigonométricas con sumas, tales como las siguientes:
    $\operatorname {sen} \alpha \operatorname {sen} \beta ={\frac {1}{2}}[\cos(\alpha -\beta )-\cos(\alpha +\beta )]$
    $\cos \alpha \cos \beta ={\frac {1}{2}}[\cos(\alpha -\beta )+\cos(\alpha +\beta )]$
    $\operatorname {sen} \alpha \cos \beta ={\frac {1}{2}}[\operatorname {sen}(\alpha +\beta )+\operatorname {sen}(\alpha -\beta )]$
    $\cos \alpha \operatorname {sen} \beta ={\frac {1}{2}}[\operatorname {sen}(\alpha +\beta )-\operatorname {sen}(\alpha -\beta )]$
Las dos últimas fórmulas son consecuencia de las dos primeras. Si se multiplican los dos miembros de cada una de estas identidades por 2 se obtienen las fórmulas de Werner.

## El algoritmo

Estos son los pasos que hay que seguir para multiplicar dos números mediante la segunda de las identidades mencionadas:
* Escalar: Desplace la coma decimal de ambos factores a la izquierda o a la derecha hasta que ambos estén comprendidos entre -1 y 1.
* Obtener el arcocoseno: Con una tabla de arcocosenos, se procede a hallar dos ángulos cuyos respectivos cosenos sean los valores dados.
* Suma y diferencia: Halle la suma y la diferencia de los dos ángulos.
* Media de los cosenos: Calcule los cosenos del ángulo suma y el ángulo diferencia con una tabla de cosenos, tras lo cual, calcule la media de los cosenos.
* Reescalar: Desplace de nuevo la coma decimal tantos lugares como lo hizo en el primer paso para cada uno de los factores, pero en sentido inverso (si lo hizo a la izquierda, desplace la coma a la derecha).
Por ejemplo, para multiplicar 105 por 720, se procede de la siguiente manera:
* Escalar: Desplace la coma tres lugares para cada uno de los factores. Se obtiene 0,105 y 0,720.
* Obtener el arcocoseno: $\cos(84^{\circ })$ es aproximadamente 0,105, $\cos(44^{\circ })$ es aproximadamente 0,720.
* Suma y diferencia: 84 + 44 = 128, 84 - 44 = 40
* Media de los cosenos: ${\frac {1}{2}}\left(\cos(128^{\circ })+\cos(40^{\circ })\right)$ es aproximadamente igual a ${\frac {1}{2}}(-0,616+0,766)$ o $0,075$
* Reescalar: Como antes se desplazó la coma tres lugares a la izquierda para cada uno de los factores, ahora debe hacerlo 6 lugares a la derecha. El resultado final es 75.000, bastante cercano al producto real, 75.600.
Si se quiere obtener el producto de los cosenos de los dos valores iniciales, un dato útil para algunos de los cálculos astronómicos anteriormente descritos, el procedimiento es más sencillo si cabe: basta con seguir los pasos 3 y 4.
Se puede emplear una tabla de secantas para realizar divisiones. Para dividir 3746 entre 82,05, se reducen los números a 0,3746 y 8,205. El primero es aproximadamente el coseno de 68 grados, y el segundo la secante de 83 grados. Sabiendo que la secante se define como la inversa del coseno, el procedimiento es análogo al empleado para multiplicar: calcular la media del coseno de la suma de los ángulos, 151, con el coseno de su diferencia, 15.
    ${\frac {1}{2}}\left(\cos(151^{\circ })+\cos(-15^{\circ })\right)$ es aproximadamente igual a ${\frac {1}{2}}(-0,875+0,096)$, o $0,046$
Basta con reescalar apropiadamente para obtener un resultado aproximado de 46.
Los procedimientos que usan las demás fórmulas son similares, pero cada uno se vale de tablas distintas (seno, arcoseno, coseno y arcocoseno) en lugares distintos. Los dos primeros son los más sencillos porque sólo requieren dos tablas. La segunda fórmula, además, tiene la ventaja de que si sólo se dispone de una tabla de cosenos, se puede emplear para calcular los arcocosenos mediante el procedimiento de buscar el ángulo con el valor del coseno más próximo al que se tiene.
Cabe subrayar la similitud existente entre este algoritmo y el procedimiento de multiplicar mediante logaritmos, ya que este último consiste en escalar, tomar logaritmos, sumar, tomar la inversa del logaritmo y volver a escalar. No es ninguna sorpresa que quienes desarrollaron el cálculo con logaritmos hubieran utilizado la prostaféresis.

## Minimizar el error

Si las operaciones anteriormente descritas se realizan con suficiente precisión, el producto puede ser tan preciso como se quiera. Aunque es fácil realizar sumas, restas y medias, incluso a mano, las funciones trigonométricas y especialmente las inversas no son fáciles de calcular. Por esta razón, la precisión de este método depende en gran medida de la precisión de las tablas trigonométricas empleadas.

### Tablas más precisas

Por ejemplo, una tabla de senos con un valor para cada grado puede dar lugar a un error de hasta 0,0087 si nos limitamos a escoger el valor más próximo. Cada vez que se duplica el tamaño de la tabla, el error se reduce a la mitad. Por este motivo, se confeccionaron tablas inmensas de senos y cosenos, con una precisión de un segundo de arco, o 1/3600 de grado.

### Escalar una posición de más

Las funciones inversas de senos y cosenos eran especialmente problemáticas, ya que la pendiente es muy grande cerca de -1 y 1. Una solución para evitar esto es incluir más valores de esta parte de la función en la tabla. Otra es escalar los datos de entrada a números comprendidos entre -0,9 y 0,9 en lugar de entre -1 y 1. Así, 950 pasaría a ser 0,095 en lugar de 0,95.

### Interpolación lineal

Otra posibilidad para minimizar el error es la interpolación lineal, es decir, elegir un valor comprendido entre dos valores adyacentes en la tabla. Por ejemplo, si sabemos que el seno de 45° es aproximadamente 0,707 y el de 46° es aproximadamente 0,719, podemos aproximar el seno de 45,7° a:
    0,707 × (1 - 0,7) + 0,719 × 0,7 = 0,7154.
El valor real es 0,7157. Una tabla de cosenos con sólo 180 entradas combinada con la interpolación lineal es tan precisa como una tabla de 45000 entradas sin ella. El problema de la interpolación es que básicamente consiste en realizar una multiplicación, que era precisamente lo que se pretendía evitar con la prostaféresis, aun siendo esta más sencilla que la multiplicación original. Afortunadamente, incluso una aproximación rápida del valor de la interpolación es generalmente más próxima al valor real que la entrada de la tabla más próxima. En el ejemplo anterior, 0,7 grados se puede aproximar a 2/3 de grado, y la diferencia entre el seno de 45° y el de 46° es de ~0,012, por lo que se puede aproximar el seno de 45,7° a 0,707 + 2/3 × 0,012 = 0,707 + 0,008 = 0,715.