Localized V2 rewrite for this language is in progress. Showing English-first content for now.

Incertidumbre

Cómo Sounio representa y (eventualmente) propaga la incertidumbre de medición.

Incertidumbre

El código científico está lleno de mediciones, y las mediciones nunca son exactas. Sounio trata la incertidumbre como dato de primera clase, en lugar de algo que rastreas en comentarios o hojas de cálculo.

Lo que Funciona Hoy (Realidad del Compilador)

El compilador aplica la regla de “sin unwrap silencioso” para Knowledge<T> (ver Knowledge<T>). Esto te da un límite confiable donde la información epistémica se descarta de forma intencional.

Más allá de eso, la propagación automática completa de incertidumbre depende de cuánto uses la stdlib epistémica y de qué features/backends del compilador estén habilitados.

En la Spec / Semántica Intencionada

El modelo intencionado sigue la práctica estándar de metrología (propagación estilo GUM para entradas independientes):

  • Para c = a ± b:
    • u(c) = sqrt(u(a)^2 + u(b)^2)
  • Para c = a * b o c = a / b (forma relativa):
    • u_rel(c) = sqrt(u_rel(a)^2 + u_rel(b)^2), donde u_rel(x) = u(x) / x

A nivel de lenguaje, el objetivo es que las operaciones sobre Knowledge<T>:

  • calculen la nueva estimación puntual
  • propaguen la incertidumbre
  • actualicen la confianza (cuando aplique)
  • anexen la procedencia

Guía Práctica

  • Mantén los valores como Knowledge<T> tanto como puedas.
  • Cuando debas cruzar a “datos planos”, usa unwrap(reason) y registra el motivo.
  • Para código de dominio (PK/PD, neuroimagen, etc.), prefiere módulos de la stdlib que ya modelan incertidumbre y procedencia explícitamente.

Siguiente