14#ifndef __KERNEL_NATIVE_VECTOR_TYPES__
15# ifdef __KERNEL_ONEAPI__
61# ifndef __KERNEL_GPU__
79# if defined(__KERNEL_GPU__)
81# elif defined(__KERNEL_SSE__)
84 return {
x,
y,
z, 0.0f};
92#if defined(__KERNEL_GPU__)
94#elif defined(__KERNEL_SSE__)
95 return float3(_mm_set1_ps(f));
114 return float3(_mm_cvtepi32_ps(
i.m128));
125#if defined __METAL_PRINTF__
126# define print_float3(label, a) \
127 metal::os_log_default.log_debug(label ": %.8f %.8f %.8f", a.x, a.y, a.z)
131# ifdef __KERNEL_PRINTF__
132 printf(
"%s: %.8f %.8f %.8f\n", label, (
double)a.
x, (
double)a.
y, (
double)a.
z);
147#if defined(__KERNEL_GPU__)
149#elif defined(__KERNEL_SSE__)
150 return int4(_mm_cvtps_epi32(f.m128));
152 return make_int4((
int)f.
x, (
int)f.
y, (
int)f.
z, (
int)f.w);
159 return int3(_mm_cvtps_epi32(f.m128));
170#if defined(__KERNEL_METAL__)
172#elif defined(__KERNEL_CUDA__) || defined(__KERNEL_HIP__) || defined(__KERNEL_ONEAPI__)
198static_assert(
sizeof(
packed_float3) == 12,
"packed_float3 expected to be exactly 12 bytes");
btGeneric6DofConstraint & operator=(btGeneric6DofConstraint &other)
SIMD_FORCE_INLINE btVector3 & operator[](int i)
Get a mutable reference to a row of the matrix as a vector.
SIMD_FORCE_INLINE const btScalar & z() const
Return the z value.
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
#define util_assert(statement)
#define ccl_device_inline
#define ccl_try_align(...)
#define ccl_device_inline_method
#define CCL_NAMESPACE_END
VecBase< float, 3 > float3
ccl_device_inline_method packed_float3(const float3 &a)
ccl_device_inline_method packed_float3 & operator=(const float3 &a)
ccl_device_inline_method packed_float3()=default
ccl_device_inline int4 make_int4(const float3 f)
ccl_device_inline void print_float3(const ccl_private char *label, const float3 a)
ccl_device_inline int3 make_int3(const float3 f)
ccl_device_inline float3 make_float3(const float x, const float y, float z)