Мне нужно эффективно добавить или умножить некоторые константы на результат типа double в цикле, чтобы предотвратить потерю значимости. Например, если у нас есть int, умножение в степени 2 будет быстрым, так как компилятор будет использовать битовый сдвиг. Существует ли форма констант для эффективного double
сложения и умножения?
Редактировать :Похоже, не многие понимают мой вопрос, извиняюсь за неряшливость. Я добавлю немного кода. Если a
является целым числом, это (умножение на степень 2 )будет более эффективным
int a = 1;
for(...)
for(...)
a *= somefunction() * 1024;
чем когда 1024 заменяется, скажем, 1023. не уверен, что лучше всего, если мы хотим добавить к int, но это меня не интересует. Меня интересует случай, когда a
— двойник.Каковы формы констант(например. степени 2 ), что мы можем эффективно сложить и умножить на двойное? Константа произвольная , просто она должна быть достаточно большой, чтобы предотвратить потерю значимости.
Вероятно, это не ограничивается только C и C++, но я не знаю более подходящего тега.