# Asin, Acos, Atan, Degrees, and Radians

Preferred way to use 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 it could 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}