ограничение ошибки в алгоритме аппроксимации функции

Предположим, у нас есть набор чисел с плавающей запятой с битовой мантиссой «m» и битами «e» для экспоненты. Предположим, что мы хотим аппроксимировать функцию "f".

Из теории мы знаем, что обычно используется «функция с уменьшенным диапазоном», а затем из такой функции мы получаем значение глобальной функции.

Например, пусть x = (sx,ex,mx) (знак exp и мантисса), тогда... log2(x) = ex + log2(1.mx), поэтому в основном функция с уменьшенным диапазоном "log2(1.mx)" .

В настоящее время я реализовал обратную, квадратный корень, log2 и exp2, недавно начал работать с тригонометрическими функциями. Но я блуждал, если, учитывая глобальную границу ошибки (особенно ошибку ulp), можно получить границу ошибки для функции с уменьшенным диапазоном, есть ли какие-то исследования по этой проблеме? Говоря о log2 (x) (в качестве примера), я хотел бы сказать...

«Хорошо, я хочу log2(x) с ошибкой k ulp, чтобы добиться этого, учитывая нашу систему с плавающей запятой, нам нужно аппроксимировать log2(1.mx) с ошибкой p ulp»

Помните, что, как я уже сказал, мы знаем, что работаем с числами с плавающей запятой, но формат является общим, поэтому это может быть классический F32, но даже, например, e = 10, m = 8 и так далее.

На самом деле я не могу найти ни одной ссылки, которая показывает такое исследование. Ссылка, которая у меня есть (например, книга Мюллера), не рассматривает тему таким образом, поэтому я искал какую-то бумагу или что-то подобное. Вы знаете какую-нибудь ссылку?

Я тоже пытаюсь вывести такую ​​привязку сама, но это не просто...


person user8469759    schedule 13.06.2015    source источник


Ответы (1)


Описание существующей практики, а также предлагаемые улучшения и анализ ошибок доступны по адресу https://hal.inria.fr/ensl-00086904/document. Описание текущей практики соответствует обзору на https://docs.oracle.com/cd/E37069_01/html/E39019/z4000ac119729.html, что согласуется с моей памятью о наиболее обсуждаемой проблеме, связанной с уменьшением диапазона тригонометрических функций по модулю пи.

Я думаю, что IEEE с плавающей запятой был большим шагом вперед только потому, что он стандартизировал вещи в то время, когда существовало множество компьютерных архитектур, тем самым снижая риски переноса кода между ними, но требования к точности, подразумеваемые этим, могли быть излишними: для Во многих задачах ограничением точности вывода является точность входных данных, а не точность вычисления промежуточных значений.

person mcdowella    schedule 14.06.2015
comment
Это мое впечатление, или эта статья просто делает пример с алгоритмом Ханека Пейна? Но в любом случае идея должна заключаться в том, чтобы вывести наихудший случай для уменьшения ошибки и вывести наихудшую ошибку из-за аппроксимации? - person user8469759; 16.06.2015
comment
Раздел 2 описывает их новую идею, хотя они возвращаются к Пейну и Ханеку для некоторых предложений. В случае тригонометрических функций, где редукция по модулю пи, они, кажется, говорят, что могут получить точное сокращение диапазона (раздел 1. Введение), что, я думаю, означает, что они используют достаточную точность, чтобы получить такое же сокращение, как произвольное пакет арифметики точности получит. Когда они говорят о наихудшем случае, они имеют в виду наибольший объем работы, необходимый для получения правильного результата, а не наихудшую ошибку. Так что в погрешность вносит только расчет по приведенному значению. - person mcdowella; 16.06.2015