C++ exp LUT (таблица поиска)

В симуляции, связанной с процессором C++ -, которую я пишу, я проследил узкое место через valgrind в моей программе до cmath::exp. В настоящее время он съедает более 40% моего времени моделирования. Я могу привязать ввод к относительно небольшой области, но я хотел бы контролировать точность. Я рассматривал возможность перехода к таблице поиска LUT ()для замены exp, но я не совсем уверен, как это сделать «правильно» (tm ). Опасения, которые у меня есть:

  1. Большие таблицы поиска не помещаются в кэш, что замедляет доступ
  2. . Лучший способ преобразовать двойной ввод в целое число для доступа к таблице поиска
  3. Зависит ли ответ на (2 )от наклона входной функции?
  4. Я заново изобретаю велосипед -это уже было сделано раньше?

Как лучше всего реализовать/(включить из библиотеки )LUT для exp?

7
задан Hooked 25 July 2012 в 20:42
поделиться