acos(x) = 2 * atan(sqrt(1 - x^2) / (1 + x)) if x != -1 pi if x == -1
| 1116 | // acos(x) = 2 * atan(sqrt(1 - x^2) / (1 + x)) if x != -1 |
| 1117 | // pi if x == -1 |
| 1118 | XlaOp Acos(XlaOp x) { |
| 1119 | return Select(Ne(x, FullLike(x, -1)), |
| 1120 | ScalarLike(x, 2.0) * Atan2(Sqrt(ScalarLike(x, 1.0) - x * x), |
| 1121 | ScalarLike(x, 1.0) + x), |
| 1122 | FullLike(x, M_PI)); |
| 1123 | } |
| 1124 | |
| 1125 | // asin(x) = 2 * atan(x / (1 + sqrt(1 - x^2))) |
| 1126 | XlaOp Asin(XlaOp x) { |