* @brief Return fast, but approximate, vector atan2(x, y). */
| 299 | * @brief Return fast, but approximate, vector atan2(x, y). |
| 300 | */ |
| 301 | ASTCENC_SIMD_INLINE vfloat atan2(vfloat y, vfloat x) |
| 302 | { |
| 303 | vfloat z = atan(abs(y / x)); |
| 304 | vmask xmask = x < vfloat::zero(); |
| 305 | return change_sign(select(z, vfloat(astc::PI) - z, xmask), y); |
| 306 | } |
| 307 | |
| 308 | /* |
| 309 | * @brief Factory that returns a unit length 4 component vfloat4. |