UUlpNacre
Рабочая среда с ИИ для кода

ULP-расстояние конечных чисел binary64

UlpNacre — пространство Windows для проверки представления чисел с плавающей точкой с ИИ. Откройте проект и обсудите соседние binary64 с совместимой моделью, отдельно оценивая выводы о точности.

● ● ●UlpNacre●
Конкретная отправная точка · ULP-расстояние конечных чисел binary64 ×
import math, struct

def ulp_distance(a, b):
    if any(type(x) is not float or not math.isfinite(x) for x in (a, b)):
        raise ValueError("ulp.finite")
    def key(value):
        bits = struct.unpack(">Q", struct.pack(">d", value))[0]
        magnitude = bits & ((1 << 63)-1)
        return (1 << 63)-magnitude if bits >> 63 else (1 << 63)+magnitude
    return abs(key(a)-key(b))
✳ULP-расстояние конечных чисел binary64
✓ ИзмененияПроверьте перед применением ↗
Иллюстрация рабочей среды
Подключение
Базовый URL, учётные данные и доступный сервер.
Проект
Проверьте соседние субнормальные числа и оба знака, отклоняя целые числа, бесконечности и NaN без толкования результата как относительной ошибки.
Проверьте перед применением
Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.
Сценарии

ULP-расстояние конечных чисел binary64

Сценарии ↗
Конкретная отправная точка
import math, struct

def ulp_distance(a, b):
    if any(type(x) is not float or not math.isfinite(x) for x in (a, b)):
        raise ValueError("ulp.finite")
    def key(value):
        bits = struct.unpack(">Q", struct.pack(">d", value))[0]
        magnitude = bits & ((1 << 63)-1)
        return (1 << 63)-magnitude if bits >> 63 else (1 << 63)+magnitude
    return abs(key(a)-key(b))
Рабочая среда с ИИ для кода

Подберите правильное правило сравнения для числового расхождения

Два числовых результата могут одинаково выглядеть при выводе, но различаться внутренним представлением. UlpNacre даёт рабочую среду программирования с ИИ в Windows для выяснения значимости различия для приложения. Предоставьте реальные входные данные, вычисление и сравнение, вызвавшие вопрос. Попросите помощника изучить получение и оценку значений, прежде чем заменять проверку равенства другим правилом.

Одна возможная задача — пример расстояния между представлениями чисел с плавающей точкой. Можно изучить конечные значения и ноль со знаком, затем обсудить использование расстояния в тесте или диагностике. Отделяйте решение о допустимой погрешности от самого измерения. Исходный пример написан на Python; имя домена не означает наличие отладчика для PHP и не делает допущения подходящими для любой числовой среды выполнения.

Выберите доступную ИИ-модель с удалёнными механизмами ограничений через поддерживаемую конечную точку, совместимую с OpenAI, или Anthropic с учётными данными при необходимости. Контекст, инструменты и ограничения зависят от модели и сервера. Проверьте предложенный код сравнения и запустите его на характерных для приложения значениях. Отдельный локальный сервер модели выполняет вывод, но подключённые инструменты всё равно могут работать через внешние сервисы.

Исследование различий представления

Должно ли любое малое расстояние между представлениями означать равенство?

Это требование приложения, а не вывод из измерения. Учтите использование значения и задайте допустимое правило сравнения. Попросите объяснить ограничения предложения и протестируйте значения вблизи реально принимаемых программой решений.

Зачем включать вычисление, давшее эти значения?

Происхождение может объяснить различие и его ожидаемость. Изучите преобразования и операции до изменения конечного сравнения. Новая погрешность может скрыть другую ошибку, если путь вычисления остаётся необъяснённым.

Можно ли этим примером сравнить любые числовые данные?

Нет. Заявленный контракт принимает конечные числа с плавающей точкой, а остальные значения требуют явной политики. Сохраняйте отклоняемые данные в поле зрения, не предполагая, что функция расстояния охватывает все числовые типы и особые значения.

Что проверить при переносе идеи в другую среду выполнения?

Проверьте числовое представление, поведение преобразований и доступные операции этой среды. Воспроизведите в ней значимые граничные случаи. Пример Python — отправная точка исследования, а не доказательство идентичного поведения непроверенного переноса.

Скачать для Windows ↗

UlpNacre · Обновлено 2026-10-25