Интервальная арифметика за интерфейсом селекторов
Неопределенная величина хранит нижнюю и верхнюю границы за интерфейсом, а арифметика строит новый интервал по крайним точкам.
Как арифметика может использовать диапазон без зависимости от способа хранения двух его границ?
- Построение интервала по нижней и верхней границам
- Сохранение представления в виде пары за селекторами границ
- Распространение границ при сложении интервалов
- Сравнение всех произведений крайних точек при разных знаках
make-interval сохраняет две границы в паре, но add-interval и mul-interval никогда не обращаются к этой паре напрямую. Они запрашивают компоненты у lower-bound и upper-bound, сохраняя тот же барьер абстракции, который использовался для рациональных чисел ранее в этой главе.
Сложение объединяет две нижние границы и две верхние границы. Умножение должно учитывать все четыре произведения крайних точек, поскольку наименьший или наибольший результат может возникнуть на другой вершине, когда интервал пересекает ноль. Результатом является интервальная оболочка этих возможных произведений.
- Вывод
- —
- Значение
- —
- Диагностика
- —
Первая программа возвращает (4 7). Вторая программа возвращает (-10 15).
Проследите за каждым вызовом селектора через барьер представления. При умножении найдите четыре произведения -8, -10, 12 и 15 до того, как min4 и max4 выберут возвращаемые границы. Трассы выполнения фиксируют точно выбранные интервалы.
Измените программу и сравните результат.
Измените второй интервал с (4, 5) на (-5, -4). Заранее определите все четыре произведения крайних точек и получающиеся нижнюю и верхнюю границы.
Показать подсказку
Не предполагайте, что первое произведение окажется нижней границей. Сравните все четыре значения после перемножения крайних точек.