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

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

Восстановить пароль Регистрация
 
zasadadada
2 / 2 / 0
Регистрация: 03.05.2013
Сообщений: 338
07.07.2015, 18:18     Скорость работы функции pow #1
В программе цикл, который вызывается примерно 50 000 в секунду. В каждой итерации ещё цикл от 1 до 100 повторов. В каждой итерации вызывается 2 раза функция pow. Загрузка процессора 60 процентов при втором цикле 100 повторов. Если убрать функцию pow то нагрузка падает до 9 процентов. Есть ли какие то трюки по ускорению работы функции? Использую опцию qpar.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
07.07.2015, 18:23     Скорость работы функции pow #2
для каких вычислений используется pow? дробные числа?
zasadadada
2 / 2 / 0
Регистрация: 03.05.2013
Сообщений: 338
07.07.2015, 18:26  [ТС]     Скорость работы функции pow #3
да, double.
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 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
Сообщений: 338
07.07.2015, 18:44  [ТС]     Скорость работы функции pow #5
спасибо в 2 раза быстрее.
Yandex
Объявления
07.07.2015, 18:44     Скорость работы функции pow
Ответ Создать тему
Опции темы

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