Как эффективно применять полиномы в C++ без цикла? ⇐ C++
-
Гость
Как эффективно применять полиномы в C++ без цикла?
Я хочу получить точные аппроксимации некоторых сложных функций (pow, exp, log, log2. ..) быстрее, чем те, которые предоставляются cmath в стандартной библиотеке C++.
Для этого я хочу использовать способ кодирования чисел с плавающей запятой и получить экспоненту и мантиссу с помощью битовых манипуляций, а затем выполнить полиномиальные аппроксимации. Мантисса находится в диапазоне от 1 до 2, поэтому я использую полином n-го порядка для аппроксимации целевой функции в области x в [1, 2], а также выполняю битовые манипуляции и простые математические операции с выражением с плавающей запятой, чтобы вычисления работали.
Я использовал np.polyfit для генерации полиномов. В качестве примера ниже приведен полином 7-го порядка, который я использую для аппроксимации log2 на 1
Я хочу получить точные аппроксимации некоторых сложных функций (pow, exp, log, log2. ..) быстрее, чем те, которые предоставляются cmath в стандартной библиотеке C++.
Для этого я хочу использовать способ кодирования чисел с плавающей запятой и получить экспоненту и мантиссу с помощью битовых манипуляций, а затем выполнить полиномиальные аппроксимации. Мантисса находится в диапазоне от 1 до 2, поэтому я использую полином n-го порядка для аппроксимации целевой функции в области x в [1, 2], а также выполняю битовые манипуляции и простые математические операции с выражением с плавающей запятой, чтобы вычисления работали.
Я использовал np.polyfit для генерации полиномов. В качестве примера ниже приведен полином 7-го порядка, который я использую для аппроксимации log2 на 1
Мобильная версия