rsq – vs
Berechnet die reziproke Quadratwurzel (nur positiv) des Quellskalars.
Syntax
rsq dst, src |
---|
where
- dst ist das Zielregister.
- src ist ein Quellregister. Das Quellregister erfordert die explizite Verwendung von repliziertem Swizzle, d. h. genau eine der Komponenten .x, .y, .z, .w swizzle (oder die Entsprechungen .r, .g, .b, .a) muss angegeben werden.
Bemerkungen
Vertex-Shaderversionen | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
rsq | x | x | x | x | x | x |
Das folgende Codefragment zeigt die ausgeführten Vorgänge.
float f = abs(src0);
if (f == 0)
f = FLT_MAX
else
{
if (f != 1.0)
f = 1.0/(float)sqrt(f);
}
dest.z = dest.y = dest.z = dest.w = f;
Der absolute Wert wird vor der Verarbeitung genommen.
Die Genauigkeit sollte mindestens 1,0/(2²) absoluter Fehler über den Bereich (1,0, 4,0) betragen, da gängige Implementierungen Mantissa und Exponent trennen.
Wenn die Quelle keine Subscripts aufweist, wird die x-Komponente verwendet. Die Ausgabe muss genau 1,0 sein, wenn die Eingabe genau 1,0 ist. Eine Quelle von 0,0 ergibt Unendlichkeit.
Zugehörige Themen