13#ifndef __KERNEL_NATIVE_VECTOR_TYPES__
14# ifdef __KERNEL_ONEAPI__
60# ifndef __KERNEL_GPU__
78# if defined(__KERNEL_GPU__)
80# elif defined(__KERNEL_SSE__)
83 return {
x,
y,
z, 0.0f};
91#if defined(__KERNEL_GPU__)
93#elif defined(__KERNEL_SSE__)
94 return float3(_mm_set1_ps(f));
112#ifdef __KERNEL_PRINTF__
113 printf(
"%s: %.8f %.8f %.8f\n", label, (
double)a.
x, (
double)a.
y, (
double)a.
z);
127#if defined(__KERNEL_GPU__)
129#elif defined(__KERNEL_SSE__)
130 return int4(_mm_cvtps_epi32(f.m128));
132 return make_int4((
int)f.
x, (
int)f.
y, (
int)f.
z, (
int)f.w);
141#if defined(__KERNEL_METAL__)
143#elif defined(__KERNEL_CUDA__) || defined(__KERNEL_HIP__) || defined(__KERNEL_ONEAPI__)
169static_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 float3 make_float3(const float x, const float y, float z)
ccl_device_inline float2 make_float2(const float3 a)