In the specification text of NV_vertex_program1_1, the upper
limit of the RCC instruction is written as 1.
884467e+19 in
scientific notation, but as 0x5F800000 in binary. But the binary
version translates to 1.84467e+19 rather than 1.
884467e+19 in
scientific notation.
Since the lower-limit equals 2^-64 and the binary version equals
2^+64, let's assume the value in scientific notation is a typo
and implement this using the value from the binary version
instead.
Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
float recip = 1.0f / src->f[i];
if (recip > 0.0f)
- dst->f[i] = CLAMP(recip, 5.42101e-020f, 1.884467e+019f);
+ dst->f[i] = CLAMP(recip, 5.42101e-020f, 1.84467e+019f);
else
- dst->f[i] = CLAMP(recip, -1.884467e+019f, -5.42101e-020f);
+ dst->f[i] = CLAMP(recip, -1.84467e+019f, -5.42101e-020f);
}
}
.. math::
- dst = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020)
+ dst = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.84467e+019) : clamp(1 / src.x, -1.84467e+019, -5.42101e-020)
.. opcode:: DPH - Homogeneous Dot Product