EExponQuay
Робоче середовище з ШІ для коду

Стійке агрегування log-sum-exp

Агрегуйте до 1000 логарифмічних значень від мінус 1e300 до 1e300, віднімаючи максимум перед експоненціюванням.

● ● ●ExponQuay●
Сценарії · Стійке агрегування log-sum-exp ×
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))
✳Агрегуйте до 1000 логарифмічних значень від мінус 1e300 до 1e300, віднімаючи максимум перед експоненціюванням.
✓ ЗміниПеревірте перед застосуванням ↗
Ілюстрація робочого середовища
Перевірте перед застосуваннямПорівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
МоделіНалаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
ПроєктПеревірте порожній ввід, повторювані великі й дуже від’ємні значення, повертаючи мінус нескінченність лише для порожнього вводу та відхиляючи логічні, нескінченні або позадіапазонні елементи.
Сценарії

Стійке агрегування log-sum-exp

Сценарії ↗
Сценарії
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))
Робоче середовище з ШІ для коду

Перевірте числову поведінку перед довірою до нового результату

ExponQuay — це клієнт програмування з ШІ у Windows для розробників, яким потрібне пояснення числової зміни в контексті застосунку. Додайте код, проблемні дані й очікувану поведінку до розмови про проєкт. Корисний перший запит просить підключену модель відокремити задуману математичну операцію від обмежень поточної реалізації.

Наприклад, завдання логарифмічного агрегування може задавати обмежені вхідні значення, максимальний розмір колекції й результат для порожніх даних. Попросіть модель дослідити підхід зі зсувом на максимум зі збереженням цього контракту. Додайте код споживача відповіді, особливо якщо він відрізняє порожнє агрегування від скінченного числового результату. Обговорення залишається про код вашого проєкту.

Перед прийняттям пропозиції запустіть у власному середовищі випадки з повторюваними великими й дуже від’ємними значеннями. Перевірте відхилення непідтримуваних типів і даних поза діапазоном разом зі звичайним результатом. Порівняйте з доречним еталоном для потрібної застосунку точності. Метод, призначений покращити стійкість, усе одно потребує перевірки на фактичному навантаженні.

Оберіть підтримувану ExponQuay кінцеву точку, сумісну з OpenAI, або Anthropic. Якщо там доступні моделі ШІ без фільтрів, можна обрати одну з потрібними обліковими даними. Її назва не обіцяє математичної точності; обмеження моделі, межі контексту й підтримка інструментів залежать від фактичної конфігурації кінцевої точки та моделі.

Підготовка перевірки числового агрегування

Що додати до проблемних числових даних?

Додайте очікуваний діапазон або еталонний результат, допустимі типи даних і спосіб обробки спеціальних результатів кодом виклику. Ці факти дають змогу обговорювати потреби застосунку, а не просто замінювати вираз математично подібною формулою.

Чи мають порожні дані повертати звичайне число?

Дотримуйтеся визначеного контракту. Приклад використовує від’ємну нескінченність для порожнього агрегування, що має розуміти споживач. Перевірте цей код і порожній випадок окремо від дуже від’ємних, але допустимих даних перед прийняттям зміни.

Навіщо перевіряти повторювані великі значення?

Вони перевіряють корисну межу підходу до агрегування, обговорюваного в цьому прикладі проєкту. Укажіть очікувану поведінку й порівняйте реалізацію з доречним еталоном. Не робіть висновку про загальну числову точність з одного звичайного тесту без крайніх значень.

Чи може модель обрати допустиму похибку?

Вона може пояснити компроміси, але допуск визначають вимоги застосунку. Надайте цю вимогу й використані числові типи. Запустіть отриману пропозицію на характерних даних власними інструментами та задокументуйте виявлені під час перевірки межі.

Завантажити для Windows ↗

ExponQuay · Оновлено 2026-10-25