* @brief Return fast, but approximate, vector atan2(x, y). */
| 275 | * @brief Return fast, but approximate, vector atan2(x, y). |
| 276 | */ |
| 277 | ASTCENC_SIMD_INLINE vfloat atan2(vfloat y, vfloat x) |
| 278 | { |
| 279 | vfloat z = atan(abs(y / x)); |
| 280 | vmask xmask = x < vfloat::zero(); |
| 281 | return change_sign(select(z, vfloat(astc::PI) - z, xmask), y); |
| 282 | } |
| 283 | |
| 284 | /* |
| 285 | * @brief Factory that returns a unit length 4 component vfloat4. |