Я программирую программу численного анализа, и иногда исчисление дает некоторые из коэффициентов действительно малых чисел, т.е. a0=1.234542e-12
Если я вычислю массив из 10 значений (из которых 6 из них являются небольшими числами), а затем умножу каждое из них на t ^ x (просто в качестве примера)
если x = 1: 10, что быстрее в вычислительном отношении?
threshold
и заменить их на 0,0Вопрос в основном потому, что, возможно, компилятор просто не делает исчисление числа, умноженного на 0, потому что оно всегда равно 0, или он может просто умножить его, и я делаю программу медленнее для добавления if
условные просто проверить, является ли число 0 или нет.
Если вы спрашиваете, как вам кажется, какая из этих двух операций выполняется быстрее:
хорошо, я думаю, что в пределе 1 будет быстрее, чем 2.
Я предполагаю, что массив не является константой, а является промежуточным результатом вашей программы.
Тогда не было бы абсолютно никакой разницы в скорости между умножением на 0 и умножением на небольшое число, потому что машинный код, выполняемый в обоих случаях, абсолютно одинаков. Компилятор не имеет представления о содержимом массива.