avr-fast-multiply
Оптимизированное умножение 16-битных беззнаковых чисел с расширением результата до 32 бит для AVR
Установка
Последняя опубликованная версия- Скачайте архив — реестр отдает его уже проверенным.
- В Arduino IDE выберите «Скетч → Подключить библиотеку → Добавить .ZIP библиотеку».
- Укажите скачанный файл — библиотека появится в списке доступных.
SHA-256:d5e0ddbf01736c75666e44c8dd05fffafdf2d645e16e504a1e6b3f792bcc8882avr_fast_multiply-1.0.0-d5e0ddbf.zipОписание
Стандартный AVR-GCC не умеет делать расширяющее умножение: когда вы перемножаете два 16-битных числа, результат всё ещё остаётся 16-битным, что приводит к переполнению. Обходить это приходится через приведение типов, но получившийся код работает медленнее, чем мог бы. На 8-битном процессоре AVR такие операции требуют множества команд и сложений — например, умножение 16×16 в 32-битный результат выполняется почти в два раза дольше необходимого. Эта библиотека оптимизирует именно эти операции, реализуя быстрое умножение 16×16→32 и 16×32→32 для беззнаковых целых чисел. На AtMega2560 функции работают на 18% быстрее стандартного варианта. Просто подключите заголовок и замените обычные операции умножения на вызовы fast multiply().