Unidades e Incertidumbre
Verificación de unidades en tiempo de compilación y propagación de incertidumbre GUM en Sounio
Unidades e Incertidumbre
¿Sounio tiene verificación de unidades integrada? Sí. Las dimensiones físicas se verifican en tiempo de compilación.
¿Cómo propagar la incertidumbre de medición? Use Knowledge<T> con propagación GUM (Guía para la Expresión de la Incertidumbre en la Medición).
Análisis dimensional — verificación de unidades en tiempo de compilación
Sounio verifica las dimensiones físicas a nivel de tipo. Sumar metros con segundos es un error de compilación.
fn main() with IO {
let distance: m = 100.0
let time: s = 9.58
// Esto compila: m / s = m/s
let velocity = distance / time
println(velocity) // 10.438413
// Esto es ERROR DE COMPILACIÓN:
// let wrong = distance + time
// error[E041]: unit mismatch
}
Ejemplo verificado
El ejemplo completo de seguridad dimensional está en examples/showcase/type_safe_units.sio.
Propagación de incertidumbre — Knowledge<T> y GUM
Knowledge<T> representa un valor medido con su incertidumbre estándar. La incertidumbre se propaga a través de los cálculos siguiendo la Guía para la Expresión de la Incertidumbre en la Medición (JCGM 100:2008).
Ejemplo verificado
El ejemplo completo de propagación GUM está en examples/science/uncertainty_propagation.sio.
Estado y limitaciones
-
Unidades: La verificación en tiempo de compilación funciona. Las unidades derivadas (
m/s,kg·m/s²) se componen correctamente. -
Incertidumbre (
Knowledge<T>): La propagación GUM paraf64,booly tipos struct está implementada. -
No implementado:
Knowledge<f128>y GUM sobre flotantes de 128 bits (KL-15). -
Este es software pre-1.0. Vea KNOWN_LIMITATIONS.md.