2Sum [ 1 ] es un algoritmo de punto flotante para calcular el error de redondeo exacto en una operación de suma de punto flotante.
2Sum y su variante Fast2Sum fueron publicados por primera vez por Ole Møller en 1965. [ 2 ] Fast2Sum se usa a menudo implícitamente en otros algoritmos, como los algoritmos de suma compensada ; [ 1 ] el algoritmo de suma de Kahan se publicó por primera vez en 1965, [ 3 ] y Fast2Sum fue posteriormente factorizado por Dekker en 1971 para algoritmos de aritmética doble-doble . [ 4 ] Los nombres 2Sum y Fast2Sum parecen haber sido aplicados retroactivamente por Shewchuk en 1997. [ 5 ]
Algoritmo
Dados dos números de punto flotantey, 2Sum calcula la suma de punto flotanteredondeado al más cercano y el error de punto flotantede modo que, dóndeydenotan respectivamente la suma y la resta redondeadas al más cercano. El errores en sí mismo un número de punto flotante.
- Introduce números de punto flotante
- Salida suma redondeaday error exacto
- devolver
Siempre que la aritmética de punto flotante se redondee correctamente al más cercano (con los empates resueltos de cualquier manera), como es el valor predeterminado en IEEE 754 , y siempre que la suma no se desborde y, si se desborda, se desborde gradualmente , se puede demostrar que. [ 1 ] [ 6 ] [ 2 ]
Una variante de 2Sum llamada Fast2Sum utiliza solo tres operaciones de punto flotante, para aritmética de punto flotante en base 2 o base 3, bajo el supuesto de que el exponente dees al menos tan grande como el exponente de, como cuando: [ 1 ] [ 6 ] [ 7 ] [ 4 ]
- Introduce números de coma flotante de base 2 o base 3.ydonde al menos uno es cero, o que tienen exponentes normalizados
- Salida suma redondeaday error exacto
- devolver
Aunque no se cumplan las condiciones, 2Sum y Fast2Sum suelen proporcionar aproximaciones razonables al error, es decir, lo que permite que los algoritmos para la suma compensada, el producto escalar, etc., tengan un error bajo incluso si las entradas no están ordenadas o el modo de redondeo es inusual. [ 1 ] [ 2 ]
Se utilizan variantes más complejas de 2Sum y Fast2Sum para modos de redondeo distintos del redondeo al más cercano. [ 1 ]
Véase también
Referencias
- 1 2 3 4 5 6 Müller, Jean-Michel; Brunie, Nicolás; de Dinechin, Florent; Jeannerod, Claude-Pierre; Joldes, Mioara; Lefèvre, Vicente; Melquiond, Guillaume; Revol, Nathalie ; Torres, Serge (2018). Manual de aritmética de coma flotante (2ª ed.). Cham, Suiza: Birkhäuser. págs. 104-111 . doi : 10.1007/978-3-319-76526-6 . ISBN 978-3-319-76525-9Archivado del original el 28 de abril de 2023. Consultado el 20 de septiembre de 2020 .
- 1 2 3 Møller, Ole (marzo de 1965). "Cuasi doble precisión en la suma de punto flotante". BIT Numerical Mathematics . 5 : 37–50 . doi : 10.1007/BF01975722 . S2CID 119991676 .
- ↑ Kahan, W. (enero de 1965). "Observaciones adicionales sobre la reducción de errores de truncamiento" . Communications of the ACM . 8 (1). Association for Computing Machinery: 40. doi : 10.1145/363707.363723 . ISSN 0001-0782 . S2CID 22584810 .
- 1 2 Dekker, TJ (junio de 1971). " Una técnica de punto flotante para extender la precisión disponible" . Numerische Mathematik . 18 (3): 224–242 . doi : 10.1007/BF01397083 . S2CID 63218464. Archivado del original el 19 de julio de 2020. Recuperado el 24 de septiembre de 2020 .
- ↑ Shewchuk, Jonathan Richard (octubre de 1997). "Aritmética de punto flotante de precisión adaptativa y predicados geométricos robustos rápidos" . Geometría discreta y computacional . 18 (3): 305– 363. doi : 10.1007/PL00009321 .
- 1 2 Knuth, Donald E. (1998). El arte de la programación informática, Volumen II: Algoritmos seminuméricos (3.ª ed.). Addison–Wesley. pág. 236. ISBN 978-0-201-89684-8Archivado del original el 16 de julio de 2017. Consultado el 20 de septiembre de 2020 .
- ↑ Sterbenz, Pat H. (1974). Floating-Point Computation . Englewood Cliffs, NJ, Estados Unidos: Prentice-Hall. pp. 138–143 . ISBN 0-13-322495-3.
- aritmética informática
- Punto flotante
- Análisis numérico