Tengo un caso particular de adición de punto flotante. Como ya sabe, para los números de punto flotante dados \ $ x, y \ $ uno de los pasos de la suma implica la suma del punto fijo:
$$ s = 1.m_x + (-1) ^ {s_x \ oplus s_y} 2 ^ {- \ delta} 1.m_y, $$
Estoy asumiendo $ | x | > | y | $, sx y sy son signos de entrada, delta es la diferencia de exponente. En toda mi referencia, la utilidad de los bits de guardia, redondos y adhesivos siempre se explica cuando se realiza una resta, lo que implicaría un desplazamiento a la izquierda como paso de normalización. Ahora tengo este caso especial para analizar
$$ t = 1.m_x + 2 ^ {- \ gamma} 1.m_y + 2 ^ {- \ delta} 1.m_z $$
donde $$ 0 \ leq \ gamma \ leq \ delta. $$
Es fácil ver que el proceso de normalización en tal caso siempre implicaría un cambio "correcto", nunca un cambio a la izquierda. Quiero realizar una operación correctamente redondeada, por lo que me gustaría entender cómo implementarla. Como punto de partida, comencé a partir del cálculo de s
, propongo analizar este caso especial:
$$ s = 1.m_x + 2 ^ {- \ delta} 1.m_y, $$
¿En este caso, todavía son necesarios los tres bits especiales? ¿O solo son necesarios dos de ellos? (¿Guardia y pegajosa tal vez?)
Una vez respondida a esa pregunta, ¿cómo puedo entender cuántos bits debo mirar cuando hago la suma de tres números?