[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/WebAssembly/Reference/Numeric/ceil [Back]  [Original]

ceil: Wasm numerische Anweisung - WebAssembly | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

ceil: Wasm numerische Anweisung

Die ceil numerische Anweisung wird verwendet, um den Wert einer Zahl auf die nchste ganze Zahl aufzurunden.

In diesem Artikel

Probieren Sie es aus

(module
  (import "console" "log" (func $log (param f32)))
  (func $main

    f32.const 2.7 ;; load a number onto the stack
    f32.ceil ;; round up
    call $log ;; log the result

  )
  (start $main)
)
const url = "{%wasm-url%}";
await WebAssembly.instantiateStreaming(fetch(url), { console });

Syntax

value_type.ceil
value_type

Der Typ des Wertes, auf dem die Anweisung ausgefhrt wird. Die folgenden Typen untersttzen ceil:

  • f32
  • f64
  • v128 Interpretationen:
    • f32x4
    • f64x2
ceil

Die ceil Anweisung. Muss immer nach dem value_type und einem Punkt (.) eingefgt werden.

Typ

[input] -> [output]
input

Der Eingabewert.

output

Der Ausgabewert.

Bei einem nicht-SIMD ceil sind dies grundlegende numerische Werte wie 14.3 oder 3.0.

Bei einem SIMD ceil sind dies v128 Wertinterpretationen, zum Beispiel f32x4 1.9 2.5 0.5 12.1. Jede Spur des Outputs, die auf den Stapel geschoben wird, ist der aufgerundete Wert der entsprechenden Spur im Input.

Binre Codierung

Anweisung Binrformat Beispieltext => binr
f32.ceil 0x8d f32.ceil => 0x8d
f64.ceil 0x9b f64.ceil => 0x9b
f32x4.ceil 0xfd 103:u32 f32x4.ceil => 0xfd 0x67
f64x2.ceil 0xfd 116:u32 f64x2.ceil => 0xfd 0x74

Beispiele

SIMD ceil Beispiel

In diesem Beispiel demonstrieren wir die Ausfhrung von ceil auf einem SIMD-Wert und geben einen der Spurwerte des Ergebnisses aus.

JavaScript

In unserem Skript greifen wir auf ein <p>-Element zu, in das wir unser Ergebnis ausgeben werden, und definieren dann ein Objekt fr den Import in Wasm, das eine einzelne Funktion enthlt, die einen Wert in das Ausgabeelement <p> schreibt. Anschlieend kompilieren und instanziieren wir unser Wasm-Modul mit der Methode WebAssembly.instantiateStreaming(), wobei wir das Objekt im Prozess importieren.

js
const outputElem = document.querySelector("p");

const obj = {
  output(val) {
    outputElem.textContent += val;
  },
};

WebAssembly.instantiateStreaming(fetch("{%wasm-url%}"), {
  obj,
});

Wasm

In unserem Wasm-Modul importieren wir zuerst die JavaScript-Funktion output(), wobei wir sicherstellen, dass sie einen f64-Parameter hat. Dann deklarieren wir einen SIMD f64x2-Wert und verwenden f64x2.ceil, um jede Spur auf die nchste ganze Zahl aufzurunden. Schlielich extrahieren wir den in Spur 1 gespeicherten Wert des Outputs mit der extract_lane Anweisung und geben ihn an das DOM aus, indem wir die importierte output()-Funktion aufrufen.

wat
(module
  ;; Import output function
  (import "obj" "output" (func $output (param f64)))

  (func $main
    ;; load a SIMD value onto the stack
    v128.const f64x2 3.9 2000.1

    f64x2.ceil ;; round up each value
    f64x2.extract_lane 1 ;; Extract a value from the result
    call $output
  )

  (start $main)
)

Ergebnis

Der Output ist wie folgt:

2001 wird ausgegeben, weil dies das Ergebnis des Aufrundens der Spur 1 des Eingabewertes (2000.1) auf die nchste ganze Zahl ist.

Spezifikationen

Spezifikation
WebAssembly Core Specification
# numeric-instructions%E2%91%A8

Browser-Kompatibilitt


Web Proxy Viewer  |  New URL  |  Original Page