domingo, 26 de julio de 2015

Aritmética de punto flotante

La aritmética de punto (o coma) flotante permite expresar valores muy altos o muy bajos de una manera reducida y normalizada. Cualquier número real puede expresarse de la siguiente forma:

Donde:
  • r: es el valor del número que se quiere representar.
  • s: el signo del número.
  • m: es la mantisa o significado, normalmente tiene un tamaño fijo y determina la precisión del número que se está representando. Este campo suele está normalizado de tal forma que sólo hay una cifra significativa antes del punto o la coma (de ahí lo de coma flotante).
  • b: es la base del sistema de representación, que será 10 en decimal, 2 en binario, etc.
  • e: es el exponente y representa el orden de magnitud del significado. Los valores máximo y mínimo de este valor determinan el rango de valores que se pueden representar.
Como la longitud de palabra de los procesadores y registros de los computadores tiene un tamaño fijo el uso de la notación en coma flotante se hace imprescindible. La norma IEEE 754 fija los requisitos mínimos que un sistema de coma flotante debe cumplir. Prácticamente todos los procesadores existentes siguen esta norma.

En esta entrada quiero hablar por primera vez del ingeniero e inventor español Leonardo Torres Quevedo. Aunque ya hablaré de su vida y de su extensa obra hoy haré hincapié en su aportación a la representación de números decimales en máquinas de cómputo analógicas.

Leonardo dedicó parte de su vida como inventor e ingeniero al diseño de máquinas analógicas de cálculo. Básicamente, estas máquinas eran calculadores mecánicas que permitían introducir cantidades mediante algún mecanismo móvil graduado. Leonardo ideó y perfeccionó este tipo de mecanismos para introducir cantidades a sus máquinas de cálculo.

Entre sus inventos caben destacar las máquinas analógicas, cuyo objetivo era resolver de manera continua y automática las raíces de diferentes tipos de polinomios. Estas máquinas estaban formadas por tres partes: el generador de cantidades, el generador de monomios y el generador de sumas.

El generador de cantidades también conocido como aritmóforo permitía representar números en una escala logarítmica. El aritmóforo constaba de dos discos. Uno de ellos estaba graduado de tal forma que la rotación de éste no era proporcional a la cantidad representada, sino que tenía una escala logarítmica. Esto permitía que la precisión fuera elevada para mantisas pequeñas y que no fuese innecesariamente grande para mantisas grandes. El otro disco graduado en una escala lineal avanzaba una marca por cada vuelta completa del otro disco. Este invento fue realmente un hito en la historia de la computación, ya que fue la primera vez en el que una máquina de cómputo permitía a los usuarios introducir números en escala logarítmica.

El generador de monomios también fue un invento muy original para la época. Se trababa de un mecanismo, conocido como husillo sin fin, que transformaba el logaritmo de un producto en la suma de logaritmos.