Ну, это зависит от вашего оборудования.Очень хорошие таблицы с задержкой инструкций: http://www.agner.org/optimize/instruction_tables.pdf
1. Это зависит от кода.Также не забывайте, что это зависит не только от вычислений, но и от того, насколько хорошо можно прогнозировать результаты сравнения.
2. Обычно сложение / вычитание выполняется очень быстро, умножение чисел с плавающей запятойнемного медленнее.Деление с плавающей запятой довольно медленное (если вам нужно разделить на константу c, часто лучше предварительно вычислить 1 / c и умножить на него).Библиотечные функции обычно (я бы сказал, всегда) медленнее, чем простые операторы, если только компилятор не решит использовать SSE.Например, sqrt () и 1 / sqrt () могут быть вычислены с использованием одной инструкции SSE.
3. От одного цикла до нескольких десятков циклов.Текущие процессоры делают прогноз на условиях.Если прогноз верен, он будет быстрым.Однако, если прогноз неверен, процессор должен выбросить все предварительно загруженные инструкции (IIRC Sandy Bridge предварительно загружает до 30 инструкций) и начать обработку новых инструкций.
Это означает, что если у вас есть код, гдеусловие выполнено большую часть времени, это будет быстро.Точно так же, если у вас есть код, где условие не выполняется чаще всего, это будет быстро.Простые переменные условия (TFTFTF ...) обычно тоже бывают быстрыми.