Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/util/util_math_fast.h
| Show First 20 Lines • Show All 150 Lines • ▼ Show 20 Lines | if ((q & 1) != 0) { | ||||
| u = -u; | u = -u; | ||||
| } | } | ||||
| if (fabsf(u) > 1.0f) { | if (fabsf(u) > 1.0f) { | ||||
| u = 0.0f; | u = 0.0f; | ||||
| } | } | ||||
| return u; | return u; | ||||
| } | } | ||||
| ccl_device void fast_sincosf(float x, float *sine, float *cosine) | ccl_device void fast_sincosf(float x, ccl_private float *sine, ccl_private float *cosine) | ||||
| { | { | ||||
| /* Same argument reduction as fast_sin. */ | /* Same argument reduction as fast_sin. */ | ||||
| int q = fast_rint(x * M_1_PI_F); | int q = fast_rint(x * M_1_PI_F); | ||||
| float qf = (float)q; | float qf = (float)q; | ||||
| x = madd(qf, -0.78515625f * 4, x); | x = madd(qf, -0.78515625f * 4, x); | ||||
| x = madd(qf, -0.00024187564849853515625f * 4, x); | x = madd(qf, -0.00024187564849853515625f * 4, x); | ||||
| x = madd(qf, -3.7747668102383613586e-08f * 4, x); | x = madd(qf, -3.7747668102383613586e-08f * 4, x); | ||||
| x = madd(qf, -1.2816720341285448015e-12f * 4, x); | x = madd(qf, -1.2816720341285448015e-12f * 4, x); | ||||
| ▲ Show 20 Lines • Show All 485 Lines • Show Last 20 Lines | |||||