UUlpNacre
Espacio de programación con IA

Distancia ULP binaria64 finita

Mide la distancia de pasos representables entre dos flotantes binary64 finitos, considerando iguales los ceros con signo.

● ● ●UlpNacre●
Flujos de trabajo · Distancia ULP binaria64 finita ×
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))
✳Distancia ULP binaria64 finita
✓ CambiosRevisa antes de aplicar ↗
Vista ilustrativa
Modelos
Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.
Proyecto
Prueba subnormales adyacentes y ambos signos, rechazando enteros, infinitos y NaN sin interpretar el resultado como error relativo.
Revisa antes de aplicar
Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.
Flujos de trabajo

Distancia ULP binaria64 finita

Flujos de trabajo ↗
Flujos de trabajo
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))
Espacio de programación con IA

Aplica la regla de comparación adecuada a una discrepancia numérica

Dos salidas numéricas pueden imprimirse igual y diferir en su representación subyacente. UlpNacre te ofrece un espacio de programación con IA para Windows donde investigar si esa diferencia importa a tu aplicación. Aporta las entradas, el cálculo y la comparación reales que suscitaron la duda. Pide al asistente que examine cómo se producen y evalúan los valores antes de sustituir una comprobación de igualdad por otra regla.

El ejemplo de distancia entre representaciones de coma flotante ofrece una posible tarea. Puedes examinar entradas finitas y el cero con signo, y analizar cómo debe orientar una distancia una prueba o un diagnóstico. Mantén separada la decisión de tolerancia de la aplicación de la medición en sí. El ejemplo fuente es Python; el nombre del dominio no establece un depurador específico de PHP ni hace válidos sus supuestos para todos los entornos numéricos.

Utiliza un endpoint compatible con OpenAI o de Anthropic admitido para seleccionar un modelo de IA ablacionado disponible, con credenciales cuando sean necesarias. El contexto, las herramientas y las restricciones dependen del modelo y del servidor. Revisa el código de comparación propuesto y ejecútalo con valores representativos pertinentes para tu aplicación. Un servidor de modelos local independiente se ocupa de la inferencia, mientras que las herramientas conectadas pueden seguir funcionando mediante servicios externos.

Investigar diferencias de representación

¿Debe considerarse igual toda distancia pequeña entre representaciones?

Eso es un requisito de la aplicación, no una conclusión que proporcione la medición. Considera cómo se utiliza el valor y define una regla de comparación aceptable. Pide que la propuesta explique sus límites y prueba valores cercanos a las decisiones que realmente toma tu software.

¿Por qué incluir el cálculo que produjo los valores?

El origen puede explicar por qué difieren los valores y si la discrepancia es esperable. Examina conversiones y operaciones antes de cambiar la comparación final. Una nueva tolerancia puede ocultar un defecto en otro lugar si el proceso de cálculo sigue sin explicarse.

¿Puede el ejemplo comparar cualquier entrada numérica posible?

No. Su contrato declarado acepta entradas finitas de coma flotante, y otros valores necesitan una política explícita. Mantén visibles las entradas rechazadas en la revisión en vez de suponer que una función de distancia entre representaciones abarca todos los tipos numéricos o valores excepcionales.

¿Qué debo verificar al trasladar la idea a otro entorno de ejecución?

Comprueba la representación numérica, el comportamiento de conversión y las operaciones disponibles del entorno. Recrea en él los casos límite pertinentes. El ejemplo de Python proporcionado es un punto de partida para investigar, no una prueba de que una traducción sin probar tenga un comportamiento idéntico.

Descargar para Windows ↗

UlpNacre · Actualizado 2026-10-25