Я пытаюсь реализовать преобразование FP32 в BFloat16 в Tensorflow, и здесь я наткнулся на очень полезный поток StackOverflow: Преобразование FP32 в Bfloat16 в C ++
В нем верхОтвет достигает округления путем умножения на магическую константу (1.001957), прежде чем усечь 32-битное значение до 16 старших разрядов.
Я пытаюсь понять, откуда взялась эта «магическая» константа. Я понимаю, что он используется для попытки округления до ближайшего значения, "проталкивая" младшие биты в старшие 7 бит. Однако я не знаю, как бы я сам придумал значение 1.001957. Любая помощь будет принята с благодарностью!