Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/util/util_math_float3.h
| Show First 20 Lines • Show All 55 Lines • ▼ Show 20 Lines | |||||
| ccl_device_inline float3 max(const float3 &a, const float3 &b); | ccl_device_inline float3 max(const float3 &a, const float3 &b); | ||||
| ccl_device_inline float3 clamp(const float3 &a, const float3 &mn, const float3 &mx); | ccl_device_inline float3 clamp(const float3 &a, const float3 &mn, const float3 &mx); | ||||
| ccl_device_inline float3 fabs(const float3 &a); | ccl_device_inline float3 fabs(const float3 &a); | ||||
| ccl_device_inline float3 mix(const float3 &a, const float3 &b, float t); | ccl_device_inline float3 mix(const float3 &a, const float3 &b, float t); | ||||
| ccl_device_inline float3 rcp(const float3 &a); | ccl_device_inline float3 rcp(const float3 &a); | ||||
| ccl_device_inline float3 sqrt(const float3 &a); | ccl_device_inline float3 sqrt(const float3 &a); | ||||
| ccl_device_inline float3 floor(const float3 &a); | ccl_device_inline float3 floor(const float3 &a); | ||||
| ccl_device_inline float3 ceil(const float3 &a); | ccl_device_inline float3 ceil(const float3 &a); | ||||
| ccl_device_inline float3 fract(const float3 &a); | |||||
| #endif /* !__KERNEL_OPENCL__ */ | #endif /* !__KERNEL_OPENCL__ */ | ||||
| ccl_device_inline float min3(float3 a); | ccl_device_inline float min3(float3 a); | ||||
| ccl_device_inline float max3(float3 a); | ccl_device_inline float max3(float3 a); | ||||
| ccl_device_inline float len(const float3 a); | ccl_device_inline float len(const float3 a); | ||||
| ccl_device_inline float len_squared(const float3 a); | ccl_device_inline float len_squared(const float3 a); | ||||
| ccl_device_inline float3 reflect(const float3 incident, const float3 normal); | ccl_device_inline float3 reflect(const float3 incident, const float3 normal); | ||||
| ▲ Show 20 Lines • Show All 235 Lines • ▼ Show 20 Lines | |||||
| { | { | ||||
| # ifdef __KERNEL_SSE__ | # ifdef __KERNEL_SSE__ | ||||
| return float3(_mm_ceil_ps(a)); | return float3(_mm_ceil_ps(a)); | ||||
| # else | # else | ||||
| return make_float3(ceilf(a.x), ceilf(a.y), ceilf(a.z)); | return make_float3(ceilf(a.x), ceilf(a.y), ceilf(a.z)); | ||||
| # endif | # endif | ||||
| } | } | ||||
| ccl_device_inline float3 fract(const float3 &a) | |||||
| { | |||||
| return a - floor(a); | |||||
| } | |||||
| ccl_device_inline float3 mix(const float3 &a, const float3 &b, float t) | ccl_device_inline float3 mix(const float3 &a, const float3 &b, float t) | ||||
| { | { | ||||
| return a + t * (b - a); | return a + t * (b - a); | ||||
| } | } | ||||
| ccl_device_inline float3 rcp(const float3 &a) | ccl_device_inline float3 rcp(const float3 &a) | ||||
| { | { | ||||
| # ifdef __KERNEL_SSE__ | # ifdef __KERNEL_SSE__ | ||||
| ▲ Show 20 Lines • Show All 165 Lines • Show Last 20 Lines | |||||