EExponQuay
Espacio de programación con IA

Agregación log-sum-exp estable

Agrega hasta 1000 valores logarítmicos entre menos 1e300 y 1e300 restando su máximo antes de exponenciar.

● ● ●ExponQuay●
Flujos de trabajo · Agregación log-sum-exp estable ×
from math import exp, fsum, log, inf

def log_sum_exp(values):
    if type(values) not in (list, tuple) or len(values) > 1000:
        raise ValueError("values.container")
    values = tuple(values)
    if len(values) > 1000 or any(
        type(v) not in (int, float) or not -1e300 <= v <= 1e300 for v in values
    ):
        raise ValueError("values.range")
    if not values:
        return -inf
    peak = max(values)
    return peak + log(fsum(exp(v - peak) for v in values))
✳Agrega hasta 1000 valores logarítmicos entre menos 1e300 y 1e300 restando su máximo antes de exponenciar.
✓ CambiosRevisa antes de aplicar ↗
Vista ilustrativa
Revisa antes de aplicarCompara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.
ModelosConfigura 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.
ProyectoComprueba entrada vacía, valores grandes repetidos y muy negativos, devolviendo infinito negativo solo para entrada vacía y rechazando booleanos, no finitos o fuera de rango.
Flujos de trabajo

Agregación log-sum-exp estable

Flujos de trabajo ↗
Flujos de trabajo
from math import exp, fsum, log, inf

def log_sum_exp(values):
    if type(values) not in (list, tuple) or len(values) > 1000:
        raise ValueError("values.container")
    values = tuple(values)
    if len(values) > 1000 or any(
        type(v) not in (int, float) or not -1e300 <= v <= 1e300 for v in values
    ):
        raise ValueError("values.range")
    if not values:
        return -inf
    peak = max(values)
    return peak + log(fsum(exp(v - peak) for v in values))
Espacio de programación con IA

Revisa el comportamiento numérico antes de confiar en el nuevo resultado

ExponQuay es un cliente de programación con IA para Windows destinado a desarrolladores que necesitan explicar un cambio numérico en el contexto de su aplicación. Lleva el código, una entrada problemática y el comportamiento esperado a la conversación del proyecto. Una primera solicitud útil pide al modelo conectado que separe la operación matemática prevista de las limitaciones de la implementación actual.

Por ejemplo, una tarea de agregación logarítmica puede especificar valores de entrada acotados, un tamaño máximo de colección y un resultado para la entrada vacía. Pide al modelo que examine un enfoque de desplazamiento por el máximo conservando ese contrato. Incluye el código llamador que consume la respuesta, especialmente si distingue un agregado vacío de un resultado numérico finito. La conversación sigue tratando del código de tu proyecto.

Antes de aceptar la propuesta, ejecuta casos con valores grandes repetidos y valores muy negativos en tu entorno. Comprueba el rechazo de tipos no admitidos y entradas fuera de rango además del resultado habitual. Compara con una referencia adecuada a la precisión que necesita tu aplicación. Un método destinado a mejorar la estabilidad también merece verificarse con la carga de trabajo a la que realmente servirá.

Elige un endpoint compatible con OpenAI o de Anthropic admitido por ExponQuay. Si allí hay modelos de IA sin filtros disponibles, puedes seleccionar uno con las credenciales necesarias. Su etiqueta no promete precisión matemática; las restricciones del modelo, los límites de contexto y la compatibilidad con herramientas dependen de la configuración real del endpoint y del modelo.

Preparar una revisión de agregación numérica

¿Qué debe acompañar a una entrada numérica problemática?

Incluye el intervalo esperado o resultado de referencia, los tipos de entrada aceptados y el tratamiento de salidas especiales por el código llamador. Estos datos permiten abordar las necesidades de la aplicación en vez de limitarse a sustituir una expresión por una fórmula matemáticamente similar.

¿Debe una entrada vacía devolver un número ordinario?

Sigue el contrato que especifiques. El ejemplo usa infinito negativo para un agregado vacío, algo que el consumidor debe entender. Revisa ese código llamador y prueba el caso vacío por separado de entradas muy negativas pero válidas antes de aceptar un cambio propuesto.

¿Por qué probar valores grandes repetidos?

Ejercitan un límite útil del enfoque de agregación analizado en este ejemplo de proyecto. Indica el comportamiento esperado y compara la implementación con una referencia adecuada. No infieras precisión numérica general a partir de un único caso ordinario que evita valores extremos.

¿Puede el modelo elegir una tolerancia de error aceptable?

Puede explicar las alternativas, pero los requisitos de tu aplicación determinan la tolerancia. Proporciona ese requisito y los tipos numéricos usados. Ejecuta la propuesta resultante con entradas representativas y tus propias herramientas y documenta los límites observados durante la revisión.

Descargar para Windows ↗

ExponQuay · Actualizado 2026-10-25