39#ifdef VF_DOUBLE_ACCURACY
48#define INVALID_INDEX 4294967295
57 return { a.
x +
b.x, a.
y +
b.y, a.
z +
b.z };
62 a.
x +=
b.x; a.
y +=
b.y; a.
z +=
b.z;
67 return { a.
x -
b.x, a.
y -
b.y, a.
z -
b.z };
72 return { a.
x *
b, a.
y *
b, a.
z *
b };
77 return { a *
b.
x, a *
b.y, a *
b.z };
82 return { a.
x /
b, a.
y /
b, a.
z /
b };
87 return { a.
x /
b.x, a.
y /
b.y, a.
z /
b.z };
99 return a.
x *
b.x + a.
y *
b.y + a.
z *
b.z;
104 return a.
x * a.
x + a.
y * a.
y + a.
z * a.
z;
109 return a.
x ==
b.x && a.
y ==
b.y && a.
z ==
b.z;
constexpr bool operator==(const real3 &a, const real3 &b)
constexpr void operator/=(real3 &a, real b)
std::numeric_limits< real > realLim
constexpr void operator+=(real3 &a, const real3 &b)
std::shared_ptr< T > SPtr
constexpr real3 operator+(const real3 &a, const real3 &b)
constexpr real3 operator-(const real3 &a, const real3 &b)
constexpr real3 operator*(const real3 &a, real b)
constexpr real dot(const real3 &a, const real3 &b)
constexpr real square(const real3 &a)
constexpr real3 operator/(const real3 &a, real b)