34#define Juno_Pow2(d) (d*d)
35#define Juno_Pow3(d) (d*d*d)
36#define Juno_Pow4(d) (d*d*d*d)
43 tVec0.
arr[0] += tVec1.
arr[0];
44 tVec0.
arr[1] += tVec1.
arr[1];
56 tVec0.
arr[0] -= tVec1.
arr[0];
57 tVec0.
arr[1] -= tVec1.
arr[1];
66 tVec0.
arr[0] *= dScalar;
67 tVec0.
arr[1] *= dScalar;
76 return tVec0.
arr[0] * tVec1.
arr[0] + tVec0.
arr[1] * tVec1.
arr[1];
85 return tVec0.
arr[0] * tVec1.
arr[1] - tVec0.
arr[1] * tVec1.
arr[0];
102 tVec0.
arr[0] += tVec1.
arr[0];
103 tVec0.
arr[1] += tVec1.
arr[1];
115 tVec0.
arr[0] -= tVec1.
arr[0];
116 tVec0.
arr[1] -= tVec1.
arr[1];
125 tVec0.
arr[0] *= dScalar;
126 tVec0.
arr[1] *= dScalar;
135 return tVec0.
arr[0] * tVec1.
arr[0] + tVec0.
arr[1] * tVec1.
arr[1];
144 return tVec0.
arr[0] * tVec1.
arr[1] - tVec0.
arr[1] * tVec1.
arr[0];
159 tVec0.
arr[0] += tVec1.
arr[0];
160 tVec0.
arr[1] += tVec1.
arr[1];
172 tVec0.
arr[0] -= tVec1.
arr[0];
173 tVec0.
arr[1] -= tVec1.
arr[1];
182 tVec0.
arr[0] *= dScalar;
183 tVec0.
arr[1] *= dScalar;
192 return tVec0.
arr[0] * tVec1.
arr[0] + tVec0.
arr[1] * tVec1.
arr[1];
201 return tVec0.
arr[0] * tVec1.
arr[1] - tVec0.
arr[1] * tVec1.
arr[0];
218 tVec0.
arr[0] += tVec1.
arr[0];
219 tVec0.
arr[1] += tVec1.
arr[1];
220 tVec0.
arr[2] += tVec1.
arr[2];
232 tVec0.
arr[0] -= tVec1.
arr[0];
233 tVec0.
arr[1] -= tVec1.
arr[1];
234 tVec0.
arr[2] -= tVec1.
arr[2];
243 tVec0.
arr[0] *= dScalar;
244 tVec0.
arr[1] *= dScalar;
245 tVec0.
arr[2] *= dScalar;
254 return tVec0.
arr[0] * tVec1.
arr[0] + tVec0.
arr[1] * tVec1.
arr[1] + tVec0.
arr[2] * tVec1.
arr[2];
264 tRes.
arr[0] = tVec0.
arr[1] * tVec1.
arr[2] - tVec0.
arr[2] * tVec1.
arr[1],
265 tRes.
arr[1] = tVec0.
arr[2] * tVec1.
arr[0] - tVec0.
arr[0] * tVec1.
arr[2],
266 tRes.
arr[2] = tVec0.
arr[0] * tVec1.
arr[1] - tVec0.
arr[1] * tVec1.
arr[0]
285 tVec0.
arr[0] += tVec1.
arr[0];
286 tVec0.
arr[1] += tVec1.
arr[1];
287 tVec0.
arr[2] += tVec1.
arr[2];
299 tVec0.
arr[0] -= tVec1.
arr[0];
300 tVec0.
arr[1] -= tVec1.
arr[1];
301 tVec0.
arr[2] -= tVec1.
arr[2];
310 tVec0.
arr[0] *= dScalar;
311 tVec0.
arr[1] *= dScalar;
312 tVec0.
arr[2] *= dScalar;
321 return tVec0.
arr[0] * tVec1.
arr[0] + tVec0.
arr[1] * tVec1.
arr[1] + tVec0.
arr[2] * tVec1.
arr[2];
331 tRes.
arr[0] = tVec0.
arr[1] * tVec1.
arr[2] - tVec0.
arr[2] * tVec1.
arr[1],
332 tRes.
arr[1] = tVec0.
arr[2] * tVec1.
arr[0] - tVec0.
arr[0] * tVec1.
arr[2],
333 tRes.
arr[2] = tVec0.
arr[0] * tVec1.
arr[1] - tVec0.
arr[1] * tVec1.
arr[0]
350 tVec0.
arr[0] += tVec1.
arr[0];
351 tVec0.
arr[1] += tVec1.
arr[1];
352 tVec0.
arr[2] += tVec1.
arr[2];
364 tVec0.
arr[0] -= tVec1.
arr[0];
365 tVec0.
arr[1] -= tVec1.
arr[1];
366 tVec0.
arr[2] -= tVec1.
arr[2];
375 tVec0.
arr[0] *= dScalar;
376 tVec0.
arr[1] *= dScalar;
377 tVec0.
arr[2] *= dScalar;
386 return tVec0.
arr[0] * tVec1.
arr[0] + tVec0.
arr[1] * tVec1.
arr[1] + tVec0.
arr[2] * tVec1.
arr[2];
396 tVec0.
arr[1] * tVec1.
arr[2] - tVec0.
arr[2] * tVec1.
arr[1],
397 tVec0.
arr[2] * tVec1.
arr[0] - tVec0.
arr[0] * tVec1.
arr[2],
398 tVec0.
arr[0] * tVec1.
arr[1] - tVec0.
arr[1] * tVec1.
arr[0]
442 q0.
arr[0] *= dScalar;
443 q0.
arr[1] *= dScalar;
444 q0.
arr[2] *= dScalar;
445 q0.
arr[3] *= dScalar;
static JUNO_VEC2_F64_T Juno_Vec2_F64_Sub(JUNO_VEC2_F64_T tVec0, JUNO_VEC2_F64_T tVec1)
Definition juno_vec.h:54
static double Juno_Vec2_F64_L2Norm(JUNO_VEC2_F64_T tVec0)
Definition juno_vec.h:91
static JUNO_RQUAT_F64_T Juno_RQuat_F64_Normalize(JUNO_RQUAT_F64_T q0)
Definition juno_vec.h:491
static double Juno_RQuat_F64_L2Norm(JUNO_RQUAT_F64_T q0)
Definition juno_vec.h:482
static JUNO_VEC3_I32_T Juno_Vec3_I32_Cross(JUNO_VEC3_I32_T tVec0, JUNO_VEC3_I32_T tVec1)
Definition juno_vec.h:393
static float Juno_Vec3_I32_L2Norm(JUNO_VEC3_I32_T tVec0)
Definition juno_vec.h:406
static double Juno_Vec3_F64_Dot(JUNO_VEC3_F64_T tVec0, JUNO_VEC3_F64_T tVec1)
Definition juno_vec.h:252
static JUNO_VEC2_F32_T Juno_Vec2_F32_Mult(JUNO_VEC2_F32_T tVec0, float dScalar)
Definition juno_vec.h:123
static JUNO_VEC2_F64_T Juno_Vec2_F64_Mult(JUNO_VEC2_F64_T tVec0, double dScalar)
Definition juno_vec.h:64
static JUNO_VEC3_I32_T Juno_Vec3_I32_Add(JUNO_VEC3_I32_T tVec0, JUNO_VEC3_I32_T tVec1)
Add two vec2i's.
Definition juno_vec.h:348
static JUNO_RQUAT_F64_T Juno_RQuat_F64_Recip(JUNO_RQUAT_F64_T q0)
Definition juno_vec.h:499
static float Juno_Vec2_F32_L2Norm(JUNO_VEC2_F32_T tVec0)
Definition juno_vec.h:150
static float Juno_Vec2_F32_Dot(JUNO_VEC2_F32_T tVec0, JUNO_VEC2_F32_T tVec1)
Definition juno_vec.h:133
static double Juno_Vec2_F64_Cross(JUNO_VEC2_F64_T tVec0, JUNO_VEC2_F64_T tVec1)
Definition juno_vec.h:83
static JUNO_RQUAT_F64_T Juno_RQuat_F64_Add(JUNO_RQUAT_F64_T q0, JUNO_RQUAT_F64_T q1)
Add two rquaternions.
Definition juno_vec.h:413
static double Juno_RQuat_F64_L2Norm2(JUNO_RQUAT_F64_T q0)
Definition juno_vec.h:474
static float Juno_Vec2_I32_L2Norm(JUNO_VEC2_I32_T tVec0)
Definition juno_vec.h:207
static JUNO_VEC2_I32_T Juno_Vec2_I32_Sub(JUNO_VEC2_I32_T tVec0, JUNO_VEC2_I32_T tVec1)
Definition juno_vec.h:170
static JUNO_VEC3_F32_T Juno_Vec3_F32_Add(JUNO_VEC3_F32_T tVec0, JUNO_VEC3_F32_T tVec1)
Definition juno_vec.h:283
static JUNO_RQUAT_F64_T Juno_RQuat_F64_Sub(JUNO_RQUAT_F64_T q0, JUNO_RQUAT_F64_T q1)
Definition juno_vec.h:428
static JUNO_RQUAT_F64_T Juno_RQuat_F64_Conj(JUNO_RQUAT_F64_T q0)
Definition juno_vec.h:466
static double Juno_Vec2_F64_Dot(JUNO_VEC2_F64_T tVec0, JUNO_VEC2_F64_T tVec1)
Definition juno_vec.h:74
static JUNO_VEC3_F32_T Juno_Vec3_F32_Mult(JUNO_VEC3_F32_T tVec0, float dScalar)
Definition juno_vec.h:308
static JUNO_VEC2_F64_T Juno_Vec2_F64_Add(JUNO_VEC2_F64_T tVec0, JUNO_VEC2_F64_T tVec1)
Definition juno_vec.h:41
static JUNO_VEC3_F64_T Juno_Vec3_F64_Sub(JUNO_VEC3_F64_T tVec0, JUNO_VEC3_F64_T tVec1)
Definition juno_vec.h:230
static JUNO_VEC2_I32_T Juno_Vec2_I32_Mult(JUNO_VEC2_I32_T tVec0, int32_t dScalar)
Definition juno_vec.h:180
static JUNO_VEC2_F32_T Juno_Vec2_F32_Add(JUNO_VEC2_F32_T tVec0, JUNO_VEC2_F32_T tVec1)
Definition juno_vec.h:100
static JUNO_RQUAT_F64_T Juno_RQuat_F64_Mult(JUNO_RQUAT_F64_T q0, double dScalar)
Definition juno_vec.h:440
static JUNO_RQUAT_F64_T Juno_RQuat_F64_HamProd(JUNO_RQUAT_F64_T q0, JUNO_RQUAT_F64_T q1)
Definition juno_vec.h:452
static JUNO_VEC2_F32_T Juno_Vec2_F32_Sub(JUNO_VEC2_F32_T tVec0, JUNO_VEC2_F32_T tVec1)
Definition juno_vec.h:113
static float Juno_Vec2_F32_Cross(JUNO_VEC2_F32_T tVec0, JUNO_VEC2_F32_T tVec1)
Definition juno_vec.h:142
static JUNO_VEC3_I32_T Juno_Vec3_I32_Mult(JUNO_VEC3_I32_T tVec0, int32_t dScalar)
Definition juno_vec.h:373
static float Juno_Vec3_F32_L2Norm(JUNO_VEC3_F32_T tVec0)
Definition juno_vec.h:341
static JUNO_VEC3_F32_T Juno_Vec3_F32_Cross(JUNO_VEC3_F32_T tVec0, JUNO_VEC3_F32_T tVec1)
Definition juno_vec.h:328
static int32_t Juno_Vec3_I32_Dot(JUNO_VEC3_I32_T tVec0, JUNO_VEC3_I32_T tVec1)
Definition juno_vec.h:384
#define Juno_Pow2(d)
Definition juno_vec.h:34
static double Juno_Vec3_F64_L2Norm(JUNO_VEC3_F64_T tVec0)
Definition juno_vec.h:274
static JUNO_VEC2_I32_T Juno_Vec2_I32_Add(JUNO_VEC2_I32_T tVec0, JUNO_VEC2_I32_T tVec1)
Add two vec2i's.
Definition juno_vec.h:157
static JUNO_VEC3_F32_T Juno_Vec3_F32_Sub(JUNO_VEC3_F32_T tVec0, JUNO_VEC3_F32_T tVec1)
Definition juno_vec.h:297
static JUNO_VEC3_I32_T Juno_Vec3_I32_Sub(JUNO_VEC3_I32_T tVec0, JUNO_VEC3_I32_T tVec1)
Definition juno_vec.h:362
static JUNO_VEC3_F64_T Juno_Vec3_F64_Mult(JUNO_VEC3_F64_T tVec0, double dScalar)
Definition juno_vec.h:241
static JUNO_VEC3_F64_T Juno_Vec3_F64_Cross(JUNO_VEC3_F64_T tVec0, JUNO_VEC3_F64_T tVec1)
Definition juno_vec.h:261
static int32_t Juno_Vec2_I32_Dot(JUNO_VEC2_I32_T tVec0, JUNO_VEC2_I32_T tVec1)
Definition juno_vec.h:190
static JUNO_VEC3_F64_T Juno_Vec3_F64_Add(JUNO_VEC3_F64_T tVec0, JUNO_VEC3_F64_T tVec1)
Definition juno_vec.h:216
static float Juno_Vec3_F32_Dot(JUNO_VEC3_F32_T tVec0, JUNO_VEC3_F32_T tVec1)
Definition juno_vec.h:319
static int32_t Juno_Vec2_I32_Cross(JUNO_VEC2_I32_T tVec0, JUNO_VEC2_I32_T tVec1)
Definition juno_vec.h:199
Right-handed quaternion (double precision).
Definition juno_vec_types.h:651
double arr[4]
Definition juno_vec_types.h:658
double k
Definition juno_vec_types.h:656
struct JUNO_RQUAT_F64_TAG::@0 tQuat
double j
Definition juno_vec_types.h:655
double s
Definition juno_vec_types.h:653
double i
Definition juno_vec_types.h:654
Definition juno_vec_types.h:125
float arr[2]
Definition juno_vec_types.h:128
2D vector union supporting Cartesian, polar, and array access (double precision).
Definition juno_vec_types.h:68
double arr[2]
Definition juno_vec_types.h:71
2D vector union supporting Cartesian, polar, and array access (32-bit integer).
Definition juno_vec_types.h:182
int32_t arr[2]
Definition juno_vec_types.h:185
3D vector union supporting Cartesian, spherical, and array access (float32 precision).
Definition juno_vec_types.h:300
float arr[3]
Definition juno_vec_types.h:303
3D vector union supporting Cartesian, spherical, and array access (double precision).
Definition juno_vec_types.h:241
double arr[3]
Definition juno_vec_types.h:244
3D vector union supporting Cartesian, spherical, and array access (32-bit integer).
Definition juno_vec_types.h:359
int32_t arr[3]
Definition juno_vec_types.h:362