13template<
class T>
struct dual {
85#ifdef __KERNEL_PRINTF__
86 printf(
"%s: {\nval = %.8f\n dx = %.8f\n dy = %.8f\n}\n",
99#ifdef __KERNEL_PRINTF__
100 printf(
"%s: {\nval = %.8f %.8f\n dx = %.8f %.8f\n dy = %.8f %.8f\n}\n",
116#ifdef __KERNEL_PRINTF__
117 printf(
"%s: {\nval = %.8f %.8f %.8f\n dx = %.8f %.8f %.8f\n dy = %.8f %.8f %.8f\n}\n",
#define ccl_device_inline
#define ccl_device_inline_method
#define CCL_NAMESPACE_END
ccl_device_inline_method dual(const float2 val)
ccl_device_inline_method dual(const float2 val, const float2 dx, const float2 dy)
ccl_device_inline_method dual(const float3 val)
ccl_device_inline_method dual(const float3 val, const float3 dx, const float3 dy)
ccl_device_inline_method dual(const float4 val)
ccl_device_inline_method dual(const float4 val, const float4 dx, const float4 dy)
ccl_device_inline_method dual(const T val, const T dx, const T dy)
ccl_device_inline_method dual(const T val)
ccl_device_inline dual3 make_float3(const ccl_private dual< T > &a)
ccl_device_inline void print_dual2(const ccl_private char *label, const dual2 a)
ccl_device_inline void print_dual1(const ccl_private char *label, const dual1 a)
ccl_device_inline void print_dual3(const ccl_private char *label, const dual3 a)
ccl_device_inline dual4 make_homogeneous(const dual3 a)