UUlpNacre
Ambiente de programação com IA

Distância ULP binária64 finita

Meça a distância em passos representáveis entre dois valores binary64 finitos, igualando os zeros com sinal.

● ● ●UlpNacre●
Fluxos de trabalho · Distância ULP binária64 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))
✳Distância ULP binária64 finita
✓ AlteraçõesRevise antes de aplicar ↗
Ilustração do ambiente
Modelos
Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.
Projeto
Teste subnormais adjacentes e ambos os sinais, rejeitando inteiros, infinitos e NaN sem chamar o resultado de erro relativo.
Revise antes de aplicar
Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
Fluxos de trabalho

Distância ULP binária64 finita

Fluxos de trabalho ↗
Fluxos de trabalho
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))
Ambiente de programação com IA

Use a regra de comparação adequada para uma discrepância numérica

Duas saídas numéricas podem parecer iguais na impressão, mas diferir na representação subjacente. UlpNacre oferece um ambiente de programação com IA para Windows para investigar se essa diferença importa à aplicação. Traga as entradas, o cálculo e a comparação reais que motivaram a preocupação. Peça ao assistente que examine como os valores são produzidos e avaliados antes de substituir uma verificação de igualdade por outra regra.

O exemplo de distância entre representações de ponto flutuante oferece uma tarefa possível. Você pode examinar entradas finitas e zero com sinal e discutir como um resultado de distância deve orientar um teste ou diagnóstico. Mantenha a decisão sobre tolerância da aplicação separada da medição em si. O exemplo de código é em Python; o nome do domínio não comprova a existência de um depurador específico para PHP nem torna suas premissas válidas em todos os ambientes de execução numérica.

Use um endpoint compatível com OpenAI ou da Anthropic que seja suportado para selecionar um modelo de IA abliterado disponível, com credenciais quando necessário. Contexto, ferramentas e restrições dependem desse modelo e servidor. Revise o código de comparação proposto e execute-o com valores representativos relevantes para a aplicação. Um servidor de modelo local separado atende à inferência, enquanto ferramentas conectadas ainda podem operar por serviços externos.

Investigue diferenças de representação

Toda pequena distância entre representações deve contar como igualdade?

Isso é um requisito da aplicação, não uma conclusão fornecida pela medição. Considere como o valor é usado e defina uma regra de comparação aceitável. Peça que a proposta explique seus limites e teste valores próximos das decisões que seu software realmente toma.

Por que incluir o cálculo que produziu os valores?

A origem pode explicar por que os valores diferem e se a discrepância é esperada. Examine conversões e operações antes de alterar a comparação final. Uma nova tolerância pode ocultar um defeito em outro lugar se o caminho do cálculo continuar sem explicação.

O exemplo pode comparar toda entrada numérica possível?

Não. Seu contrato declarado aceita entradas finitas de ponto flutuante, e outros valores precisam de uma política explícita. Mantenha as entradas rejeitadas visíveis na revisão, em vez de supor que uma função de distância entre representações abrange todo tipo numérico ou valor excepcional.

O que devo verificar ao levar a ideia para outro ambiente de execução?

Verifique a representação numérica, o comportamento de conversão e as operações disponíveis nesse ambiente. Recrie nele os casos-limite relevantes. O exemplo em Python fornecido é um ponto de partida para investigação, não uma evidência de que uma tradução não testada tenha comportamento idêntico.

Baixar para Windows ↗

UlpNacre · Atualizado 2026-10-25