Matemática flotante en WebAssembly
Instrucciones f64, más el cruce explícito desde los enteros.
(module
;; f64 carries the usual float instructions; convert_i32_s crosses
;; over from the integer world.
(func (export "hypotenuse") (param $a f64) (param $b f64) (result f64)
(f64.sqrt
(f64.add
(f64.mul (local.get $a) (local.get $a))
(f64.mul (local.get $b) (local.get $b)))))
(func (export "mean_of_counts") (param $sum i32) (param $n i32)
(result f64)
(f64.div
(f64.convert_i32_s (local.get $sum))
(f64.convert_i32_s (local.get $n))))
(func (export "clamp01") (param $x f64) (result f64)
(f64.min (f64.max (local.get $x) (f64.const 0)) (f64.const 1))))
Cómo funciona
f64.sqrty compañía trabajan la pila como las operaciones enteras.f64.convert_i32_ses la única forma en que un i32 se vuelve f64.f64.minyf64.maxse anidan en un clamp de una expresión.
Palabras clave y builtins usados aquí
exportf64funci32moduleparamresult
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 559
- Tokens
- 132
- Ritmo de tres estrellas
- 60 tpm
Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 132 segundos.
Paso 3 de 3 en Números; paso 6 de 28 en Fundamentos del lenguaje.