Fixed Point Arithmetic
0
Fixed-point math library.
|
Modules | |
Quaternion Errors | |
This functions calculate the rotation needed to go from 'pos' (current position) to 'setp' (setpoint), in the same reference frame as 'pos'. | |
Data Structures | |
struct | quat |
Single precision quaternion. More... | |
struct | dquat |
Double precision quaternion. More... | |
Macros | |
#define | UNIT_QUAT {{FRAC_1_V}, VEC0} |
Literal for Unit quaternion. More... | |
#define | UNIT_DQUAT {{DFRAC_1_V}, VEC0} |
Literal for double precision Unit quaternion. More... | |
Functions | |
quat | dq_to_q (dquat q) |
Truncate double precision quaternion to single precision. More... | |
frac | q_xnormerror (quat q) |
Pseudo-error of the quaternion norm. More... | |
dquat | q_scale_dq (quat q, frac f) |
Scale a quaternion by a fractional, return double precision quaternion. More... | |
quat | q_scale (quat q, frac f) |
Scale a quaternion by a fractional, return simple precision quaternion. More... | |
quat | q_conj (quat q) |
Conjugate quaternion. More... | |
quat | q_mul (quat q, quat p) |
Quaternion multiplication, return value is simple precision. More... | |
dquat | q_mul_s_dq (quat q, quat p, int f) |
Scaled Quaternion multiplication, return value is double precision. More... | |
dquat | q_mul_dq (quat q, quat p) |
Quaternion multiplication, return value is double precision. More... | |
dquat | dq_add (dquat q, dquat p) |
Quaternion addition (double precision). More... | |
quat | q_add (quat q, quat p) |
Quaternion addition (single precision) More... | |
vec3 | q_rot (quat q, vec3 v) |
Rotate 3D vector by quaternion. More... | |
quat | q_xrenorm (quat q) |
Renormalize quaternion (single precision) More... | |
dquat | dq_xrenorm (dquat q) |
Renormalize quaternion. More... | |
quat | q_udecompose (quat q, vec_axis axis) |
Extract a component from a unit quaternion. More... | |
struct quat |
Single precision quaternion.
Components are represented by value of frac type
Definition at line 52 of file quaternion_types.h.
Data Fields | ||
---|---|---|
frac | r |
Scalar part |
vec3 | v |
Vector part |
struct dquat |
Double precision quaternion.
Components are represented by value of dfrac type.
Definition at line 61 of file quaternion_types.h.
Data Fields | ||
---|---|---|
dfrac | r |
Scalar part |
dvec3 | v |
Vector part |
#define UNIT_DQUAT {{DFRAC_1_V}, VEC0} |
Literal for double precision Unit quaternion.
Definition at line 71 of file quaternion_types.h.
#define UNIT_QUAT {{FRAC_1_V}, VEC0} |
Literal for Unit quaternion.
Definition at line 69 of file quaternion_types.h.
Quaternion addition (double precision).
Definition at line 213 of file quaternion.h.
Truncate double precision quaternion to single precision.
Definition at line 51 of file quaternion.h.
Quaternion addition (single precision)
Definition at line 230 of file quaternion.h.
Quaternion multiplication, return value is simple precision.
Definition at line 131 of file quaternion.h.
Quaternion multiplication, return value is double precision.
Definition at line 187 of file quaternion.h.
Scaled Quaternion multiplication, return value is double precision.
Definition at line 159 of file quaternion.h.
Rotate 3D vector by quaternion.
Creates a purely imaginary quaternion V with vector part equal to v and returns the vector part of q*(V*q')'.
Definition at line 250 of file quaternion.h.
Scale a quaternion by a fractional, return simple precision quaternion.
Definition at line 99 of file quaternion.h.
Scale a quaternion by a fractional, return double precision quaternion.
Definition at line 84 of file quaternion.h.
Extract a component from a unit quaternion.
q | A unit quaternion. |
axis | Axis to return. |
Definition at line 302 of file quaternion.h.
Pseudo-error of the quaternion norm.
Calculates an approximation to (1 - norm(q)) The approximation used is sqrt(x) = 0.5(x + 1) for x near 1
Definition at line 72 of file quaternion.h.
Renormalize quaternion (single precision)
This function attempts to bring the norm of the quaternion closer to 1. It only works for quaternions whose norm is already close to 1. It uses and approximation for the norm (q_xnormerror).
Definition at line 268 of file quaternion.h.