LibJuno 0.42.0
LibJuno is a lightweight C99 library designed specifically for embedded systems.
Loading...
Searching...
No Matches
juno_vec.h File Reference
#include "juno/math/juno_vec_types.h"
#include "juno_math_types.h"
#include <stdint.h>
#include <math.h>
Include dependency graph for juno_vec.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define Juno_Pow2(d)   (d*d)
 
#define Juno_Pow3(d)   (d*d*d)
 
#define Juno_Pow4(d)   (d*d*d*d)
 

Functions

static JUNO_VEC2_F64_T Juno_Vec2_F64_Add (JUNO_VEC2_F64_T tVec0, JUNO_VEC2_F64_T tVec1)
 
static JUNO_VEC2_F64_T Juno_Vec2_F64_Sub (JUNO_VEC2_F64_T tVec0, JUNO_VEC2_F64_T tVec1)
 
static JUNO_VEC2_F64_T Juno_Vec2_F64_Mult (JUNO_VEC2_F64_T tVec0, double dScalar)
 
static double Juno_Vec2_F64_Dot (JUNO_VEC2_F64_T tVec0, JUNO_VEC2_F64_T tVec1)
 
static double Juno_Vec2_F64_Cross (JUNO_VEC2_F64_T tVec0, JUNO_VEC2_F64_T tVec1)
 
static double Juno_Vec2_F64_L2Norm (JUNO_VEC2_F64_T tVec0)
 
static JUNO_VEC2_F32_T Juno_Vec2_F32_Add (JUNO_VEC2_F32_T tVec0, JUNO_VEC2_F32_T tVec1)
 
static JUNO_VEC2_F32_T Juno_Vec2_F32_Sub (JUNO_VEC2_F32_T tVec0, JUNO_VEC2_F32_T tVec1)
 
static JUNO_VEC2_F32_T Juno_Vec2_F32_Mult (JUNO_VEC2_F32_T tVec0, float dScalar)
 
static float Juno_Vec2_F32_Dot (JUNO_VEC2_F32_T tVec0, JUNO_VEC2_F32_T tVec1)
 
static float Juno_Vec2_F32_Cross (JUNO_VEC2_F32_T tVec0, JUNO_VEC2_F32_T tVec1)
 
static float Juno_Vec2_F32_L2Norm (JUNO_VEC2_F32_T tVec0)
 
static JUNO_VEC2_I32_T Juno_Vec2_I32_Add (JUNO_VEC2_I32_T tVec0, JUNO_VEC2_I32_T tVec1)
 Add two vec2i's.
 
static JUNO_VEC2_I32_T Juno_Vec2_I32_Sub (JUNO_VEC2_I32_T tVec0, JUNO_VEC2_I32_T tVec1)
 
static JUNO_VEC2_I32_T Juno_Vec2_I32_Mult (JUNO_VEC2_I32_T tVec0, int32_t dScalar)
 
static int32_t Juno_Vec2_I32_Dot (JUNO_VEC2_I32_T tVec0, JUNO_VEC2_I32_T tVec1)
 
static int32_t Juno_Vec2_I32_Cross (JUNO_VEC2_I32_T tVec0, JUNO_VEC2_I32_T tVec1)
 
static float Juno_Vec2_I32_L2Norm (JUNO_VEC2_I32_T tVec0)
 
static JUNO_VEC3_F64_T Juno_Vec3_F64_Add (JUNO_VEC3_F64_T tVec0, JUNO_VEC3_F64_T tVec1)
 
static JUNO_VEC3_F64_T Juno_Vec3_F64_Sub (JUNO_VEC3_F64_T tVec0, JUNO_VEC3_F64_T tVec1)
 
static JUNO_VEC3_F64_T Juno_Vec3_F64_Mult (JUNO_VEC3_F64_T tVec0, double dScalar)
 
static double Juno_Vec3_F64_Dot (JUNO_VEC3_F64_T tVec0, JUNO_VEC3_F64_T tVec1)
 
static JUNO_VEC3_F64_T Juno_Vec3_F64_Cross (JUNO_VEC3_F64_T tVec0, JUNO_VEC3_F64_T tVec1)
 
static double Juno_Vec3_F64_L2Norm (JUNO_VEC3_F64_T tVec0)
 
static JUNO_VEC3_F32_T Juno_Vec3_F32_Add (JUNO_VEC3_F32_T tVec0, JUNO_VEC3_F32_T tVec1)
 
static JUNO_VEC3_F32_T Juno_Vec3_F32_Sub (JUNO_VEC3_F32_T tVec0, JUNO_VEC3_F32_T tVec1)
 
static JUNO_VEC3_F32_T Juno_Vec3_F32_Mult (JUNO_VEC3_F32_T tVec0, float dScalar)
 
static float Juno_Vec3_F32_Dot (JUNO_VEC3_F32_T tVec0, JUNO_VEC3_F32_T tVec1)
 
static JUNO_VEC3_F32_T Juno_Vec3_F32_Cross (JUNO_VEC3_F32_T tVec0, JUNO_VEC3_F32_T tVec1)
 
static float Juno_Vec3_F32_L2Norm (JUNO_VEC3_F32_T tVec0)
 
static JUNO_VEC3_I32_T Juno_Vec3_I32_Add (JUNO_VEC3_I32_T tVec0, JUNO_VEC3_I32_T tVec1)
 Add two vec2i's.
 
static JUNO_VEC3_I32_T Juno_Vec3_I32_Sub (JUNO_VEC3_I32_T tVec0, JUNO_VEC3_I32_T tVec1)
 
static JUNO_VEC3_I32_T Juno_Vec3_I32_Mult (JUNO_VEC3_I32_T tVec0, int32_t dScalar)
 
static int32_t Juno_Vec3_I32_Dot (JUNO_VEC3_I32_T tVec0, JUNO_VEC3_I32_T tVec1)
 
static JUNO_VEC3_I32_T Juno_Vec3_I32_Cross (JUNO_VEC3_I32_T tVec0, JUNO_VEC3_I32_T tVec1)
 
static float Juno_Vec3_I32_L2Norm (JUNO_VEC3_I32_T tVec0)
 
static JUNO_RQUAT_F64_T Juno_RQuat_F64_Add (JUNO_RQUAT_F64_T q0, JUNO_RQUAT_F64_T q1)
 Add two rquaternions.
 
static JUNO_RQUAT_F64_T Juno_RQuat_F64_Sub (JUNO_RQUAT_F64_T q0, JUNO_RQUAT_F64_T q1)
 
static JUNO_RQUAT_F64_T Juno_RQuat_F64_Mult (JUNO_RQUAT_F64_T q0, double dScalar)
 
static JUNO_RQUAT_F64_T Juno_RQuat_F64_HamProd (JUNO_RQUAT_F64_T q0, JUNO_RQUAT_F64_T q1)
 
static JUNO_RQUAT_F64_T Juno_RQuat_F64_Conj (JUNO_RQUAT_F64_T q0)
 
static double Juno_RQuat_F64_L2Norm2 (JUNO_RQUAT_F64_T q0)
 
static double Juno_RQuat_F64_L2Norm (JUNO_RQUAT_F64_T q0)
 
static JUNO_RQUAT_F64_T Juno_RQuat_F64_Normalize (JUNO_RQUAT_F64_T q0)
 
static JUNO_RQUAT_F64_T Juno_RQuat_F64_Recip (JUNO_RQUAT_F64_T q0)
 

Macro Definition Documentation

◆ Juno_Pow2

#define Juno_Pow2 (   d)    (d*d)

◆ Juno_Pow3

#define Juno_Pow3 (   d)    (d*d*d)

◆ Juno_Pow4

#define Juno_Pow4 (   d)    (d*d*d*d)

Function Documentation

◆ Juno_RQuat_F64_Add()

static JUNO_RQUAT_F64_T Juno_RQuat_F64_Add ( JUNO_RQUAT_F64_T  q0,
JUNO_RQUAT_F64_T  q1 
)
inlinestatic

Add two rquaternions.

◆ Juno_RQuat_F64_Conj()

static JUNO_RQUAT_F64_T Juno_RQuat_F64_Conj ( JUNO_RQUAT_F64_T  q0)
inlinestatic

The conjugate product of two rquaternions.

◆ Juno_RQuat_F64_HamProd()

static JUNO_RQUAT_F64_T Juno_RQuat_F64_HamProd ( JUNO_RQUAT_F64_T  q0,
JUNO_RQUAT_F64_T  q1 
)
inlinestatic

The hamilton product of two rquaternions.

◆ Juno_RQuat_F64_L2Norm()

static double Juno_RQuat_F64_L2Norm ( JUNO_RQUAT_F64_T  q0)
inlinestatic

Get L2 norm of rquaternions

◆ Juno_RQuat_F64_L2Norm2()

static double Juno_RQuat_F64_L2Norm2 ( JUNO_RQUAT_F64_T  q0)
inlinestatic

◆ Juno_RQuat_F64_Mult()

static JUNO_RQUAT_F64_T Juno_RQuat_F64_Mult ( JUNO_RQUAT_F64_T  q0,
double  dScalar 
)
inlinestatic

Multiply scalar with rquaternion

◆ Juno_RQuat_F64_Normalize()

static JUNO_RQUAT_F64_T Juno_RQuat_F64_Normalize ( JUNO_RQUAT_F64_T  q0)
inlinestatic

Get L2 norm of rquaternions

◆ Juno_RQuat_F64_Recip()

static JUNO_RQUAT_F64_T Juno_RQuat_F64_Recip ( JUNO_RQUAT_F64_T  q0)
inlinestatic

Get L2 norm of rquaternions

◆ Juno_RQuat_F64_Sub()

static JUNO_RQUAT_F64_T Juno_RQuat_F64_Sub ( JUNO_RQUAT_F64_T  q0,
JUNO_RQUAT_F64_T  q1 
)
inlinestatic

Subtract to rquaternions

Parameters
q0The rquat to subtract from
q1The rquat to subtract

◆ Juno_Vec2_F32_Add()

static JUNO_VEC2_F32_T Juno_Vec2_F32_Add ( JUNO_VEC2_F32_T  tVec0,
JUNO_VEC2_F32_T  tVec1 
)
inlinestatic

Add two vecf's together

◆ Juno_Vec2_F32_Cross()

static float Juno_Vec2_F32_Cross ( JUNO_VEC2_F32_T  tVec0,
JUNO_VEC2_F32_T  tVec1 
)
inlinestatic

The cross product of two vec2f's. The result is a psedoscalar

◆ Juno_Vec2_F32_Dot()

static float Juno_Vec2_F32_Dot ( JUNO_VEC2_F32_T  tVec0,
JUNO_VEC2_F32_T  tVec1 
)
inlinestatic

Dot product of two vec2f's

◆ Juno_Vec2_F32_L2Norm()

static float Juno_Vec2_F32_L2Norm ( JUNO_VEC2_F32_T  tVec0)
inlinestatic

Get L2 norm of vector

◆ Juno_Vec2_F32_Mult()

static JUNO_VEC2_F32_T Juno_Vec2_F32_Mult ( JUNO_VEC2_F32_T  tVec0,
float  dScalar 
)
inlinestatic

Multiply scalar with vec2f's

◆ Juno_Vec2_F32_Sub()

static JUNO_VEC2_F32_T Juno_Vec2_F32_Sub ( JUNO_VEC2_F32_T  tVec0,
JUNO_VEC2_F32_T  tVec1 
)
inlinestatic

Subtract to vec2f's

Parameters
tVec0The vec to subtract from
tVec1The vec to subtract

◆ Juno_Vec2_F64_Add()

static JUNO_VEC2_F64_T Juno_Vec2_F64_Add ( JUNO_VEC2_F64_T  tVec0,
JUNO_VEC2_F64_T  tVec1 
)
inlinestatic

Add two vecf's together

◆ Juno_Vec2_F64_Cross()

static double Juno_Vec2_F64_Cross ( JUNO_VEC2_F64_T  tVec0,
JUNO_VEC2_F64_T  tVec1 
)
inlinestatic

The cross product of two vec2f's. The result is a psedoscalar

◆ Juno_Vec2_F64_Dot()

static double Juno_Vec2_F64_Dot ( JUNO_VEC2_F64_T  tVec0,
JUNO_VEC2_F64_T  tVec1 
)
inlinestatic

Dot product of two vec2f's

◆ Juno_Vec2_F64_L2Norm()

static double Juno_Vec2_F64_L2Norm ( JUNO_VEC2_F64_T  tVec0)
inlinestatic

Get L2 norm of vector

◆ Juno_Vec2_F64_Mult()

static JUNO_VEC2_F64_T Juno_Vec2_F64_Mult ( JUNO_VEC2_F64_T  tVec0,
double  dScalar 
)
inlinestatic

Multiply scalar with vec2f's

◆ Juno_Vec2_F64_Sub()

static JUNO_VEC2_F64_T Juno_Vec2_F64_Sub ( JUNO_VEC2_F64_T  tVec0,
JUNO_VEC2_F64_T  tVec1 
)
inlinestatic

Subtract to vec2f's

Parameters
tVec0The vec to subtract from
tVec1The vec to subtract

◆ Juno_Vec2_I32_Add()

static JUNO_VEC2_I32_T Juno_Vec2_I32_Add ( JUNO_VEC2_I32_T  tVec0,
JUNO_VEC2_I32_T  tVec1 
)
inlinestatic

Add two vec2i's.

◆ Juno_Vec2_I32_Cross()

static int32_t Juno_Vec2_I32_Cross ( JUNO_VEC2_I32_T  tVec0,
JUNO_VEC2_I32_T  tVec1 
)
inlinestatic

The cross product of two vec2i's. The result is a psedoscalar

◆ Juno_Vec2_I32_Dot()

static int32_t Juno_Vec2_I32_Dot ( JUNO_VEC2_I32_T  tVec0,
JUNO_VEC2_I32_T  tVec1 
)
inlinestatic

Dot product of two vec2i's

◆ Juno_Vec2_I32_L2Norm()

static float Juno_Vec2_I32_L2Norm ( JUNO_VEC2_I32_T  tVec0)
inlinestatic

Get L2 norm of vector

◆ Juno_Vec2_I32_Mult()

static JUNO_VEC2_I32_T Juno_Vec2_I32_Mult ( JUNO_VEC2_I32_T  tVec0,
int32_t  dScalar 
)
inlinestatic

Multiply scalar with vec2f's

◆ Juno_Vec2_I32_Sub()

static JUNO_VEC2_I32_T Juno_Vec2_I32_Sub ( JUNO_VEC2_I32_T  tVec0,
JUNO_VEC2_I32_T  tVec1 
)
inlinestatic

Subtract to vec2i's

Parameters
tVec0The vec to subtract from
tVec1The vec to subtract

◆ Juno_Vec3_F32_Add()

static JUNO_VEC3_F32_T Juno_Vec3_F32_Add ( JUNO_VEC3_F32_T  tVec0,
JUNO_VEC3_F32_T  tVec1 
)
inlinestatic

Add two vecf's together

◆ Juno_Vec3_F32_Cross()

static JUNO_VEC3_F32_T Juno_Vec3_F32_Cross ( JUNO_VEC3_F32_T  tVec0,
JUNO_VEC3_F32_T  tVec1 
)
inlinestatic

The cross product of two vec2f's. The result is a psedoscalar

◆ Juno_Vec3_F32_Dot()

static float Juno_Vec3_F32_Dot ( JUNO_VEC3_F32_T  tVec0,
JUNO_VEC3_F32_T  tVec1 
)
inlinestatic

Dot product of two vec2f's

◆ Juno_Vec3_F32_L2Norm()

static float Juno_Vec3_F32_L2Norm ( JUNO_VEC3_F32_T  tVec0)
inlinestatic

Get L2 norm of vector

◆ Juno_Vec3_F32_Mult()

static JUNO_VEC3_F32_T Juno_Vec3_F32_Mult ( JUNO_VEC3_F32_T  tVec0,
float  dScalar 
)
inlinestatic

Multiply scalar with vec2f's

◆ Juno_Vec3_F32_Sub()

static JUNO_VEC3_F32_T Juno_Vec3_F32_Sub ( JUNO_VEC3_F32_T  tVec0,
JUNO_VEC3_F32_T  tVec1 
)
inlinestatic

Subtract to vec2f's

Parameters
tVec0The vec to subtract from
tVec1The vec to subtract

◆ Juno_Vec3_F64_Add()

static JUNO_VEC3_F64_T Juno_Vec3_F64_Add ( JUNO_VEC3_F64_T  tVec0,
JUNO_VEC3_F64_T  tVec1 
)
inlinestatic

Add two vecf's together

◆ Juno_Vec3_F64_Cross()

static JUNO_VEC3_F64_T Juno_Vec3_F64_Cross ( JUNO_VEC3_F64_T  tVec0,
JUNO_VEC3_F64_T  tVec1 
)
inlinestatic

The cross product of two vec2f's. The result is a psedoscalar

◆ Juno_Vec3_F64_Dot()

static double Juno_Vec3_F64_Dot ( JUNO_VEC3_F64_T  tVec0,
JUNO_VEC3_F64_T  tVec1 
)
inlinestatic

Dot product of two vec2f's

◆ Juno_Vec3_F64_L2Norm()

static double Juno_Vec3_F64_L2Norm ( JUNO_VEC3_F64_T  tVec0)
inlinestatic

Get L2 norm of vector

◆ Juno_Vec3_F64_Mult()

static JUNO_VEC3_F64_T Juno_Vec3_F64_Mult ( JUNO_VEC3_F64_T  tVec0,
double  dScalar 
)
inlinestatic

Multiply scalar with vec2f's

◆ Juno_Vec3_F64_Sub()

static JUNO_VEC3_F64_T Juno_Vec3_F64_Sub ( JUNO_VEC3_F64_T  tVec0,
JUNO_VEC3_F64_T  tVec1 
)
inlinestatic

Subtract to vec2f's

Parameters
tVec0The vec to subtract from
tVec1The vec to subtract

◆ Juno_Vec3_I32_Add()

static JUNO_VEC3_I32_T Juno_Vec3_I32_Add ( JUNO_VEC3_I32_T  tVec0,
JUNO_VEC3_I32_T  tVec1 
)
inlinestatic

Add two vec2i's.

◆ Juno_Vec3_I32_Cross()

static JUNO_VEC3_I32_T Juno_Vec3_I32_Cross ( JUNO_VEC3_I32_T  tVec0,
JUNO_VEC3_I32_T  tVec1 
)
inlinestatic

The cross product of two vec2i's. The result is a psedoscalar

◆ Juno_Vec3_I32_Dot()

static int32_t Juno_Vec3_I32_Dot ( JUNO_VEC3_I32_T  tVec0,
JUNO_VEC3_I32_T  tVec1 
)
inlinestatic

Dot product of two vec2i's

◆ Juno_Vec3_I32_L2Norm()

static float Juno_Vec3_I32_L2Norm ( JUNO_VEC3_I32_T  tVec0)
inlinestatic

Get L2 norm of vector

◆ Juno_Vec3_I32_Mult()

static JUNO_VEC3_I32_T Juno_Vec3_I32_Mult ( JUNO_VEC3_I32_T  tVec0,
int32_t  dScalar 
)
inlinestatic

Multiply scalar with vec2f's

◆ Juno_Vec3_I32_Sub()

static JUNO_VEC3_I32_T Juno_Vec3_I32_Sub ( JUNO_VEC3_I32_T  tVec0,
JUNO_VEC3_I32_T  tVec1 
)
inlinestatic

Subtract to vec2i's

Parameters
tVec0The vec to subtract from
tVec1The vec to subtract