Арифметическая библиотека для отслеживания наихудшей ошибки

(изм)
Существует ли какая-либо библиотека или инструмент, позволяющий узнать максимальную накопленную ошибку в арифметических операциях?

Например, если я сделаю какой-то итерационный расчет...

myVars = initialValues;
while (notEnded) {
    myVars = updateMyVars(myVars)
}

... Я хочу знать в конце не только вычисленные значения, но также и потенциальную ошибку (диапазон возможных значений, если результаты в каждой отдельной операции принимали пределы диапазона для каждого операнда).

Я уже написал Java-класс EADouble.java (советник по учету ошибок), который содержит и обновляет максимальные положительные и отрицательные ошибки вместе с вычисленным значением для некоторых базовых операций, но, боюсь, я мог бы заново изобрести квадратное колесо,

Любые библиотеки / что-нибудь в Java/ что-нибудь? Какие-либо предложения?


  • Обновлено 11 июля: изучены существующие библиотеки и добавлена ​​ссылка на образец кода.
  • Как прокомментировали ребята, существует концепция интервальной арифметики, и был задан предыдущий вопрос ( Хорошая арифметическая библиотека (интервал)?) По этой теме. Есть только пара небольших вопросов о моем намерении:
    • Меня больше волнует "главное" значение, чем верхняя и нижняя границы. Однако добавить это дополнительное значение к открытой библиотеке должно быть просто.
    • Учет ошибки как независимой плавающей запятой может обеспечить более высокую точность (например, для сложения верхняя граница будет увеличена только на половину ULP вместо всей ULP).
  • Библиотеки, на которые я посмотрел:
  • Пример кода ( TestEADouble.java) хорошо выполняет баллистическое моделирование и вычисление числа e. Однако это не очень сложные сценарии.

1 ответ

Возможно, слишком поздно, но посмотрите на BIAS / Profil: http://www.ti3.tuhh.de/keil/profil/index_e.html Довольно полная, простая, объясняющая ошибки компьютера, и если ваши ошибки центрированы, то легкий доступ к Ваш номинал (через Mid(...)).

Другие вопросы по тегам