Konvertierungsregeln für float to XR_BIAS
Dieser Abschnitt gilt nur für Windows 7- und höher-Betriebssysteme.
Die folgenden Regeln gelten für die Konvertierung von float in XR_BIAS. Nehmen wir in diesen Regeln an, dass der Gleitkomma-Startwert c ist.
Wenn c naN ist, ist das Ergebnis 0; Andernfalls gelten die folgenden Regeln. NaN steht für "keine Zahl", d. h. eine symbolische Entität, die einen Wert darstellt, der sonst nicht im Gleitkommaformat verfügbar ist.
Führen Sie den folgenden Vorgang aus, um von der Float-Skalierung in die Ganzzahlskalierung zu konvertieren:
c = c * 510
Der vorherige Vorgang kann einen Überlauf auslösen.
Führen Sie den folgenden Vorgang für Verzerrungen aus:
c = c + 384
Der vorherige Vorgang kann einen Überlauf auslösen.
Führen Sie je nach Exponent von c einen der folgenden Klammervorgänge aus:
Wenn nach der Verzerrung der Exponent von c größer oder gleich 2 ist (>= 2 oder c ist INF), ist das Ergebnis 0x3ff, was ungefähr 1,2529 entspricht.
Wenn nach der Verzerrung der Exponent von c kleiner als 0 (< 0 oder c ist -INF) ist, ist das Ergebnis 0x0, was ungefähr -0,7529 darstellt.
Interpretieren Sie die bedeutendsten 10 Bits der Mantisse von c als Ergebnis neu.
Die Konvertierung von float in XR_BIAS ist auf der XR-Seite zulässige Toleranz von 0,6f Unit-Last-Place (ULP). Diese Toleranz bedeutet, dass nach der Konvertierung von float in XR jeder Wert innerhalb von 0,6f ULP eines representfähigen Zielformatwerts diesem Wert zugeordnet werden darf. Beachten Sie, dass 1 ULP des unendlich genauen Ergebnisses bedeutet, dass z. B. eine Implementierung erlaubt ist, Ergebnisse auf 32-Bit abzuschneiden, anstatt round-to-nearest-even durchzuführen, da dies zu einem Fehler von höchstens einer Einheit an der letzten (am wenigsten signifikanten) Stelle führen würde, die in der Gleitkommazahl dargestellt wird.
Die Standardanforderung für Direct3D Version 10 für das Invertieren von Daten gilt ebenfalls.