Asin, Acos, Atan, Degrees, and Radians#
If the math expressions’ simplifications are completed, then these functions are usually not needed. Therefore they do not map to the hardware exactly. This means that these functions have a very high cost, and should be avoided at all times.
asin()
costs a massive 67 cycles:
fragColor.x = asin(t.x); // 67 cycles
// USC code omitted due to length
acos()
costs a massive 79 cycles:
fragColor.x = acos(t.x); // 79 cycles
// USC code omitted due to length
atan()
is still costly, but can be used if needed:
fragColor.x = atan(t.x); // 12 cycles (lots of conditionals)
// USC code omitted due to length
While degrees and radians take only one cycle, they can usually be avoided if only radians are used:
fragColor.x = degrees(t.x); // one cycle
{sop, sop}
fragColor.x = radians(t.x); // one cycle
{sop, sop}