Технологии

Ликбез о плавающей точке: сложение, катастрофическое сокращение и бабушка Кэхена

Краткое резюме

В статье анализируется библиотека TinyFloat для работы с числами с плавающей запятой на C++. Она использует 32-битные целые числа вместо встроенных типов данных для максимальной читаемости кода.

Мы продолжаем анализ библиотеки TinyFloat, которая считается одной из самых неоптимизированных 32-битных библиотек для работы с числами с плавающей запятой. Эта библиотека, созданная на языке C++, специально не использует встроенные типы данных для чисел с плавающей запятой, вместо этого полагаясь исключительно на 32-битные целые числа. Её цель — обеспечить максимальную читаемость кода, избегая сложных бит-хаков и запутанных техник. TinyFloat разрабатывается с целью повышения уровня грамотности в области программирования. Для этого автор стремится предоставить подробные пояснения о том, как функционирует библиотека «под капотом». Интересно, что для документирования кода на C++ был выбран необычный метод — полная перепись ключевых частей на Python. В этой статье мы рассмотрим механизмы сложения чисел с плавающей точкой и связанные с этим сложности. Это третья публикация из серии, предыдущие две статьи можно найти по указанным ссылкам.

Фильтры и сортировка