EExponQuay
Spațiu de programare cu AI

Agregare log-sum-exp stabilă

Agregă cel mult 1000 de valori logaritmice de la minus 1e300 la 1e300 scăzând maximul înaintea exponențierii.

● ● ●ExponQuay●
Fluxuri de lucru · Agregare log-sum-exp stabilă ×
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))
✳Agregă cel mult 1000 de valori logaritmice de la minus 1e300 la 1e300 scăzând maximul înaintea exponențierii.
✓ ModificăriVerifică înainte de aplicare ↗
Ilustrarea spațiului de lucru
Verifică înainte de aplicareCompară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.
ModeleConfigurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.
ProiectVerifică intrare goală, valori mari repetate și foarte negative, returnând minus infinit numai pentru gol și respingând elemente booleene, nefinite sau în afara intervalului.
Fluxuri de lucru

Agregare log-sum-exp stabilă

Fluxuri de lucru ↗
Fluxuri de lucru
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))
Spațiu de programare cu AI

Verifică comportamentul numeric înainte de a avea încredere în noul rezultat

ExponQuay este un client Windows pentru programare cu IA, destinat dezvoltatorilor care au nevoie de explicarea unei modificări numerice în contextul aplicației. Adu sursa, o intrare problematică și comportamentul așteptat în conversația proiectului. O primă cerere utilă solicită modelului conectat să separe operația matematică dorită de limitele implementării actuale.

De exemplu, o sarcină de agregare logaritmică poate preciza valori de intrare limitate, o dimensiune maximă a colecției și un rezultat pentru intrarea goală. Cere modelului să examineze o abordare cu deplasare față de maxim, păstrând contractul. Include apelantul care consumă răspunsul, mai ales dacă distinge un agregat gol de un rezultat numeric finit. Discuția rămâne despre codul proiectului tău.

Înainte de a accepta propunerea, rulează în propriul mediu cazuri cu valori mari repetate și valori foarte negative. Verifică respingerea tipurilor neacceptate și a intrărilor din afara intervalului, precum și rezultatul obișnuit. Compară cu o referință potrivită preciziei necesare aplicației. O metodă menită să îmbunătățească stabilitatea merită totuși verificată pe sarcina reală pe care o va deservi.

Alege un endpoint compatibil OpenAI sau Anthropic acceptat de ExponQuay. Dacă acolo sunt disponibile modele IA nefiltrate, poți selecta unul cu datele de autentificare necesare. Eticheta sa nu promite precizie matematică; restricțiile modelului, limitele contextului și instrumentele acceptate depind de configurația efectivă a endpointului și modelului.

Pregătirea analizei unei agregări numerice

Ce trebuie să însoțească o intrare numerică problematică?

Include intervalul așteptat sau rezultatul de referință, tipurile de intrare acceptate și tratarea rezultatelor speciale de către apelant. Aceste fapte permit discuției să răspundă nevoilor aplicației, nu doar să înlocuiască o expresie cu o formulă matematic similară.

Intrarea goală trebuie să returneze un număr obișnuit?

Urmează contractul specificat. Exemplul folosește infinitul negativ pentru un agregat gol, pe care consumatorul trebuie să îl înțeleagă. Verifică apelantul și testează cazul gol separat de intrările foarte negative, dar valide, înainte de a accepta o modificare.

De ce să testez valori mari repetate?

Ele verifică o limită utilă a abordării de agregare discutate în acest exemplu de proiect. Precizează comportamentul așteptat și compară implementarea cu o referință adecvată. Nu deduce precizia numerică generală dintr-un singur caz obișnuit care evită valorile extreme.

Poate modelul să aleagă o toleranță acceptabilă a erorii?

Poate explica compromisurile, dar cerințele aplicației determină toleranța. Furnizează această cerință și tipurile numerice folosite. Rulează propunerea rezultată cu intrări reprezentative folosind propriile instrumente și documentează limitele observate în timpul analizei.

Descarcă pentru Windows ↗

ExponQuay · Actualizat 2026-10-25