Цитата:
Сообщение от младшой
Сравнивать время выполнения 3000 MUL (float) 3000 XOR (long int) мне кажется не вполне корректно, но пусть даже если умножение float на -1 производилось бы операцией XOR, вряд ли бы это уменьшило время выполнения операции настолько значительно (в случае 3000 операций разница 84 мс, но в случае одной разница будет составлять 30 мкс, если я не ошибся в подсчетах). А часто ли нам требуется умножение именно на -1?
|
Вот этого я и добивался от уважаемого
tvf - хорошо проработанного вопроса
На настолько хорошо заданный вопрос очень легко ответить: введение "инверсии" для чисел с плавающей точкой действительно нецелесообразно.
Потери времени также зависят и от второго множителя. Что наблюдается "торможение" степенях двойки - это связано с несколько более лучшим "ускорением" операций с остальными числами.
В оригинальной мат. библиотеке для ядра AVR операция умножения в среднем выполняется в несколько раз медленнее, чем в нашей библиотеке. Я не помню точную величину, но раза в 4 дольше - это точно.