Формы констант для высокопроизводительного сложения и умножения на double

Мне нужно эффективно добавить или умножить некоторые константы на результат типа double в цикле, чтобы предотвратить потерю значимости. Например, если у нас есть int, умножение в степени 2 будет быстрым, так как компилятор будет использовать битовый сдвиг. Существует ли форма констант для эффективного doubleсложения и умножения?

Редактировать :Похоже, не многие понимают мой вопрос, извиняюсь за неряшливость. Я добавлю немного кода. Если aявляется целым числом, это (умножение на степень 2 )будет более эффективным

int a = 1;
for(...)
    for(...)
        a *= somefunction() * 1024;

чем когда 1024 заменяется, скажем, 1023. не уверен, что лучше всего, если мы хотим добавить к int, но это меня не интересует. Меня интересует случай, когда a— двойник.Каковы формы констант(например. степени 2 ), что мы можем эффективно сложить и умножить на двойное? Константа произвольная , просто она должна быть достаточно большой, чтобы предотвратить потерю значимости.

Вероятно, это не ограничивается только C и C++, но я не знаю более подходящего тега.

5
задан ggg 4 August 2012 в 07:51
поделиться