Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
zasadadada
2 / 2 / 0
Регистрация: 03.05.2013
Сообщений: 446
#1

Скорость работы функции pow - C++

07.07.2015, 18:18. Просмотров 328. Ответов 4
Метки нет (Все метки)

В программе цикл, который вызывается примерно 50 000 в секунду. В каждой итерации ещё цикл от 1 до 100 повторов. В каждой итерации вызывается 2 раза функция pow. Загрузка процессора 60 процентов при втором цикле 100 повторов. Если убрать функцию pow то нагрузка падает до 9 процентов. Есть ли какие то трюки по ускорению работы функции? Использую опцию qpar.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2015, 18:18     Скорость работы функции pow
Посмотрите здесь:

Вопрос по функции POW C++
C++ pow: неоднозначный вызов перегруженной функции
C++ при вызове функции pow() выдаёт ошибку: test.cpp:(.text+0x59b): undefined reference to `pow'
Исправить ошибку в функции pow C++
C++ неоднозначный вызов перегруженной функции pow
Некорректная работа функции pow C++
Pow не работает в функции C++
C++ Pow: неоднозначный вызов перегруженной функции
Скорость работы функции C++
C++ Использование функции pow
C++ Pow: нет перегруженной функции
C++ Вычислить S=2n, без функции pow()

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Raali
622 / 326 / 34
Регистрация: 06.07.2013
Сообщений: 1,054
Завершенные тесты: 1
07.07.2015, 18:23     Скорость работы функции pow #2
для каких вычислений используется pow? дробные числа?
zasadadada
2 / 2 / 0
Регистрация: 03.05.2013
Сообщений: 446
07.07.2015, 18:26  [ТС]     Скорость работы функции pow #3
да, double.
Raali
622 / 326 / 34
Регистрация: 06.07.2013
Сообщений: 1,054
Завершенные тесты: 1
07.07.2015, 18:33     Скорость работы функции pow #4
есть упрощенная и приближенная замена функции pow , но не знаю насколько точные вам нужны результаты

C++
1
2
3
4
5
6
7
8
9
inline double fastPow(double a, double b) {
  union {
    double d;
    int x[2];
  } u = { a };
  u.x[1] = (int)(b * (u.x[1] - 1072632447) + 1072632447);
  u.x[0] = 0;
  return u.d;
}
zasadadada
2 / 2 / 0
Регистрация: 03.05.2013
Сообщений: 446
07.07.2015, 18:44  [ТС]     Скорость работы функции pow #5
спасибо в 2 раза быстрее.
Yandex
Объявления
07.07.2015, 18:44     Скорость работы функции pow
Ответ Создать тему
Опции темы

Текущее время: 09:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru