19using mpq2 = VecBase<mpq_class, 2>;
20using mpq3 = VecBase<mpq_class, 3>;
24uint64_t hash_mpq_class(
const mpq_class &value);
28 return hash_mpq_class(vec.x) ^ (hash_mpq_class(vec.y) * 33);
33 return hash_mpq_class(vec.x) ^ (hash_mpq_class(vec.y) * 33) ^ (hash_mpq_class(vec.z) * 33 * 37);
40template<>
inline mpq_class
length(
const mpq2 &a)
49template<>
inline mpq_class
length(
const mpq3 &a)
57inline mpq_class distance_squared_with_buffer(
const mpq3 &a,
const mpq3 &
b, mpq3 &buffer)
61 return dot(buffer, buffer);
67inline mpq_class dot_with_buffer(
const mpq3 &a,
const mpq3 &
b, mpq3 &buffer)
SIMD_FORCE_INLINE btScalar length() const
Return the length of the vector.
local_group_size(16, 16) .push_constant(Type b
T length_squared(const VecBase< T, Size > &a)
uint64_t vector_hash(const T &vec)
unsigned __int64 uint64_t