Внимательно прочитал очень хорошие статьи от ArtemKaravaev по сложению чисел с плавающей точкой. Тема очень интересная и хочется её продолжить и показать на примерах, как работать с числами с плавающей точкой на практике. В качестве эталона возьмём библиотеку GNU glibc (libm). А чтобы статья не была уж скучной, добавим соревновательную составляющую: попробуем не только повторить, но и улучшить код библиотеки, сделав его более быстрым/точным.
В качестве примера я выбрал тригонометрическую функцию синуса. Это широко распространённая функция, математика которой хорошо известна со школы и университета. В тоже время при её имплементации появятся много ярких примеров «правильной» работы с числами. В качестве числа с плавающей точкой я буду использовать double.
В данном цикле статей планируется много всего начиная от математики, заканчивая машинными кодами и опциями компилятора. Язык написания статьи С++, но без «излишеств». В отличии от языка С, работающие примеры будут более удобочитаемыми даже для людей не знакомых с этим языком и занимать меньше строк.
На старой железяке далеко не улетишь,
На старой железяке далеко не уплывешь.
Хорош сидеть во мраке
И ворочать железяки,
Вся жизнь твоя изменится, как только подберешь
Тот самый пин-код
Пин-код
Тот самый пин-код
Пин-код
Пин-код пин-код
Пин пин пин пин
Наука штука хитрая — мозги прокипятишь.
Наука штука крепкая — все зубы обдерешь.
Хорош сидеть во мраке
И ворочать железяки
Вся жизнь твоя изменится, как только подберешь
Тот самый пин-код
Пин-код
Тот самый пин-код
Пин-код
Пин-код пин-код
Пин пин пин пин
Тот самый
Пин-код пин-код
Тот самый
Пин-код пин-код
Тот самый
Пин код пин ко-о-од
Пин пин пин пин!