Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
Generic Algebra macros
+ Collaboration diagram for Generic Algebra macros:

Macros

#define SQUARE(_a)   ((_a)*(_a))
 
#define VECT2_ASSIGN(_a, _x, _y)
 
#define VECT2_COPY(_a, _b)
 
#define VECT2_ADD(_a, _b)
 
#define VECT2_SUB(_a, _b)
 
#define VECT2_SUM(_c, _a, _b)
 
#define VECT2_DIFF(_c, _a, _b)
 
#define VECT2_SMUL(_vo, _vi, _s)
 
#define VECT2_SDIV(_vo, _vi, _s)
 
#define VECT2_STRIM(_v, _min, _max)
 
#define VECT2_DOT_PRODUCT(_v1, _v2)   ((_v1).x*(_v2).x + (_v1).y*(_v2).y)
 
#define VECT2_NORM2(_v)   ((_v).x*(_v).x + (_v).y*(_v).y)
 
#define VECT3_ASSIGN(_a, _x, _y, _z)
 
#define VECT3_ASSIGN_ABS(_a, _x, _y, _z)
 
#define VECT3_COPY(_a, _b)
 
#define VECT3_ADD(_a, _b)
 
#define VECT3_SUB(_a, _b)
 
#define VECT3_SUM(_c, _a, _b)
 
#define VECT3_ADD_SCALED(_a, _b, _s)
 
#define VECT3_SUM_SCALED(_c, _a, _b, _s)
 
#define VECT3_DIFF(_c, _a, _b)
 
#define VECT3_SMUL(_vo, _vi, _s)
 
#define VECT3_SDIV(_vo, _vi, _s)
 
#define VECT3_STRIM(_v, _min, _max)
 
#define VECT3_EW_DIV(_vo, _va, _vb)
 
#define VECT3_EW_MUL(_vo, _va, _vb)
 
#define VECT3_BOUND_CUBE(_v, _min, _max)
 
#define VECT3_BOUND_BOX(_v, _v_min, _v_max)
 
#define VECT3_ABS(_vo, _vi)
 
#define VECT3_CROSS_PRODUCT(_vo, _v1, _v2)
 
#define VECT3_DOT_PRODUCT(_v1, _v2)   ((_v1).x*(_v2).x + (_v1).y*(_v2).y + (_v1).z*(_v2).z)
 
#define VECT3_NORM2(_v)   ((_v).x*(_v).x + (_v).y*(_v).y + (_v).z*(_v).z)
 
#define VECT3_RATES_CROSS_VECT3(_vo, _r1, _v2)
 
#define EULERS_COPY(_a, _b)
 
#define EULERS_ASSIGN(_e, _phi, _theta, _psi)
 
#define EULERS_ADD(_a, _b)
 
#define EULERS_SUB(_a, _b)
 
#define EULERS_DIFF(_c, _a, _b)
 
#define EULERS_SMUL(_eo, _ei, _s)
 
#define EULERS_SDIV(_eo, _ei, _s)
 
#define EULERS_BOUND_CUBE(_v, _min, _max)
 
#define RATES_ASSIGN(_ra, _p, _q, _r)
 
#define RATES_COPY(_a, _b)
 
#define RATES_ADD(_a, _b)
 
#define RATES_SUB(_a, _b)
 
#define RATES_SUM(_c, _a, _b)
 
#define RATES_SUM_SCALED(_c, _a, _b, _s)
 
#define RATES_DIFF(_c, _a, _b)
 
#define RATES_SMUL(_ro, _ri, _s)
 
#define RATES_SDIV(_ro, _ri, _s)
 
#define RATES_EWMULT_RSHIFT(c, a, b, _s)
 
#define RATES_BOUND_CUBE(_v, _min, _max)
 
#define RATES_BOUND_BOX(_v, _v_min, _v_max)
 
#define RATES_BOUND_BOX_ABS(_v, _v_max)
 
#define RATES_ADD_SCALED_VECT(_ro, _v, _s)
 
#define MAT33_ELMT(_m, _row, _col)   ((_m).m[(_row)*3+(_col)])
 
#define MAT33_COPY(_mat1, _mat2)
 
#define MAT33_MULT_SCALAR(_mat1, _scalar)
 
#define MAT33_VECT3_MUL(_vout, _mat, _vin)
 
#define MAT33_VECT3_TRANSP_MUL(_vout, _mat, _vin)
 
#define MAT33_INV(_minv, _m)
 
#define MAT33_ROW_VECT3_SMUL(_mat, _row, _vin, _s)
 
#define VECT3_VECT3_TRANS_MUL(_mat, _v_a, _v_b)
 
#define MAT33_MAT33_DIFF(_mat1, _mat2, _mat3)
 
#define MAT33_MAT33_SUM(_mat1, _mat2, _mat3)
 
#define MAT33_TRANS(_mat1, _mat2)
 
#define QUAT_ASSIGN(_q, _i, _x, _y, _z)
 
#define QUAT_DIFF(_qc, _qa, _qb)
 
#define QUAT_COPY(_qo, _qi)
 
#define QUAT_EXPLEMENTARY(b, a)
 
#define QUAT_SMUL(_qo, _qi, _s)
 
#define QUAT_ADD(_qo, _qi)
 
#define QUAT_INVERT(_qo, _qi)
 
#define QUAT_EXTRACT_Q(_vo, _qi)
 
#define QUAT_SDIV(_qo, _qi, _s)
 
#define QUAT_DOT_PRODUCT(_qa, _qb)   ((_qa).qi * (_qb).qi + (_qa).qx * (_qb).qx + (_qa).qy * (_qb).qy + (_qa).qz * (_qb).qz)
 
#define RMAT_ELMT(_rm, _row, _col)   MAT33_ELMT(_rm, _row, _col)
 
#define RMAT_TRACE(_rm)   (RMAT_ELMT(_rm, 0, 0)+RMAT_ELMT(_rm, 1, 1)+RMAT_ELMT(_rm, 2, 2))
 
#define RMAT_DIFF(_c, _a, _b)
 
#define RMAT_VECT3_MUL(_vout, _rmat, _vin)
 
#define RMAT_VECT3_TRANSP_MUL(_vout, _rmat, _vin)
 
#define RMAT_COPY(_o, _i)   { memcpy(&(_o), &(_i), sizeof(_o));}
 
#define EULERS_FLOAT_OF_BFP(_ef, _ei)
 
#define EULERS_BFP_OF_REAL(_ei, _ef)
 
#define RMAT_BFP_OF_REAL(_ei, _ef)
 
#define RMAT_FLOAT_OF_BFP(_ef, _ei)
 
#define QUAT_FLOAT_OF_BFP(_qf, _qi)
 
#define QUAT_BFP_OF_REAL(_qi, _qf)
 
#define RATES_FLOAT_OF_BFP(_rf, _ri)
 
#define RATES_BFP_OF_REAL(_ri, _rf)
 
#define POSITIONS_FLOAT_OF_BFP(_ef, _ei)
 
#define POSITIONS_BFP_OF_REAL(_ef, _ei)
 
#define SPEEDS_FLOAT_OF_BFP(_ef, _ei)
 
#define SPEEDS_BFP_OF_REAL(_ef, _ei)
 
#define ACCELS_FLOAT_OF_BFP(_ef, _ei)
 
#define ACCELS_BFP_OF_REAL(_ef, _ei)
 
#define MAGS_FLOAT_OF_BFP(_ef, _ei)
 
#define MAGS_BFP_OF_REAL(_ef, _ei)
 

Detailed Description

Macro Definition Documentation

◆ ACCELS_BFP_OF_REAL

#define ACCELS_BFP_OF_REAL (   _ef,
  _ei 
)
Value:
{ \
(_ef).x = ACCEL_BFP_OF_REAL((_ei).x); \
(_ef).y = ACCEL_BFP_OF_REAL((_ei).y); \
(_ef).z = ACCEL_BFP_OF_REAL((_ei).z); \
}
#define ACCEL_BFP_OF_REAL(_af)

Definition at line 801 of file pprz_algebra.h.

◆ ACCELS_FLOAT_OF_BFP

#define ACCELS_FLOAT_OF_BFP (   _ef,
  _ei 
)
Value:
{ \
(_ef).x = ACCEL_FLOAT_OF_BFP((_ei).x); \
(_ef).y = ACCEL_FLOAT_OF_BFP((_ei).y); \
(_ef).z = ACCEL_FLOAT_OF_BFP((_ei).z); \
}
#define ACCEL_FLOAT_OF_BFP(_ai)

Definition at line 795 of file pprz_algebra.h.

◆ EULERS_ADD

#define EULERS_ADD (   _a,
  _b 
)
Value:
{ \
(_a).phi += (_b).phi; \
(_a).theta += (_b).theta; \
(_a).psi += (_b).psi; \
}

Definition at line 281 of file pprz_algebra.h.

◆ EULERS_ASSIGN

#define EULERS_ASSIGN (   _e,
  _phi,
  _theta,
  _psi 
)
Value:
{ \
(_e).phi = (_phi); \
(_e).theta = (_theta); \
(_e).psi = (_psi); \
}

Definition at line 274 of file pprz_algebra.h.

◆ EULERS_BFP_OF_REAL

#define EULERS_BFP_OF_REAL (   _ei,
  _ef 
)
Value:
{ \
(_ei).phi = ANGLE_BFP_OF_REAL((_ef).phi); \
(_ei).theta = ANGLE_BFP_OF_REAL((_ef).theta); \
(_ei).psi = ANGLE_BFP_OF_REAL((_ef).psi); \
}
#define ANGLE_BFP_OF_REAL(_af)

Definition at line 715 of file pprz_algebra.h.

◆ EULERS_BOUND_CUBE

#define EULERS_BOUND_CUBE (   _v,
  _min,
  _max 
)
Value:
{ \
(_v).phi = (_v).phi < (_min) ? (_min) : (_v).phi > (_max) ? (_max) : (_v).phi; \
(_v).theta = (_v).theta < (_min) ? (_min) : (_v).theta > (_max) ? (_max) : (_v).theta; \
(_v).psi = (_v).psi < (_min) ? (_min) : (_v).psi > (_max) ? (_max) : (_v).psi; \
}

Definition at line 317 of file pprz_algebra.h.

◆ EULERS_COPY

#define EULERS_COPY (   _a,
  _b 
)
Value:
{ \
(_a).phi = (_b).phi; \
(_a).theta = (_b).theta; \
(_a).psi = (_b).psi; \
}

Definition at line 268 of file pprz_algebra.h.

◆ EULERS_DIFF

#define EULERS_DIFF (   _c,
  _a,
  _b 
)
Value:
{ \
(_c).phi = (_a).phi - (_b).phi; \
(_c).theta = (_a).theta - (_b).theta; \
(_c).psi = (_a).psi - (_b).psi; \
}

Definition at line 295 of file pprz_algebra.h.

◆ EULERS_FLOAT_OF_BFP

#define EULERS_FLOAT_OF_BFP (   _ef,
  _ei 
)
Value:
{ \
(_ef).phi = ANGLE_FLOAT_OF_BFP((_ei).phi); \
(_ef).theta = ANGLE_FLOAT_OF_BFP((_ei).theta); \
(_ef).psi = ANGLE_FLOAT_OF_BFP((_ei).psi); \
}
#define ANGLE_FLOAT_OF_BFP(_ai)

Definition at line 709 of file pprz_algebra.h.

◆ EULERS_SDIV

#define EULERS_SDIV (   _eo,
  _ei,
  _s 
)
Value:
{ \
(_eo).phi = (_ei).phi / (_s); \
(_eo).theta = (_ei).theta / (_s); \
(_eo).psi = (_ei).psi / (_s); \
}

Definition at line 310 of file pprz_algebra.h.

◆ EULERS_SMUL

#define EULERS_SMUL (   _eo,
  _ei,
  _s 
)
Value:
{ \
(_eo).phi = (_ei).phi * (_s); \
(_eo).theta = (_ei).theta * (_s); \
(_eo).psi = (_ei).psi * (_s); \
}

Definition at line 303 of file pprz_algebra.h.

◆ EULERS_SUB

#define EULERS_SUB (   _a,
  _b 
)
Value:
{ \
(_a).phi -= (_b).phi; \
(_a).theta -= (_b).theta; \
(_a).psi -= (_b).psi; \
}

Definition at line 288 of file pprz_algebra.h.

◆ MAGS_BFP_OF_REAL

#define MAGS_BFP_OF_REAL (   _ef,
  _ei 
)
Value:
{ \
(_ef).x = MAG_BFP_OF_REAL((_ei).x); \
(_ef).y = MAG_BFP_OF_REAL((_ei).y); \
(_ef).z = MAG_BFP_OF_REAL((_ei).z); \
}
#define MAG_BFP_OF_REAL(_af)

Definition at line 813 of file pprz_algebra.h.

◆ MAGS_FLOAT_OF_BFP

#define MAGS_FLOAT_OF_BFP (   _ef,
  _ei 
)
Value:
{ \
(_ef).x = MAG_FLOAT_OF_BFP((_ei).x); \
(_ef).y = MAG_FLOAT_OF_BFP((_ei).y); \
(_ef).z = MAG_FLOAT_OF_BFP((_ei).z); \
}
#define MAG_FLOAT_OF_BFP(_ai)

Definition at line 807 of file pprz_algebra.h.

◆ MAT33_COPY

#define MAT33_COPY (   _mat1,
  _mat2 
)
Value:
{ \
MAT33_ELMT((_mat1),0,0) = MAT33_ELMT((_mat2),0,0); \
MAT33_ELMT((_mat1),0,1) = MAT33_ELMT((_mat2),0,1); \
MAT33_ELMT((_mat1),0,2) = MAT33_ELMT((_mat2),0,2); \
MAT33_ELMT((_mat1),1,0) = MAT33_ELMT((_mat2),1,0); \
MAT33_ELMT((_mat1),1,1) = MAT33_ELMT((_mat2),1,1); \
MAT33_ELMT((_mat1),1,2) = MAT33_ELMT((_mat2),1,2); \
MAT33_ELMT((_mat1),2,0) = MAT33_ELMT((_mat2),2,0); \
MAT33_ELMT((_mat1),2,1) = MAT33_ELMT((_mat2),2,1); \
MAT33_ELMT((_mat1),2,2) = MAT33_ELMT((_mat2),2,2); \
}
#define MAT33_ELMT(_m, _row, _col)
Definition: pprz_algebra.h:436

Definition at line 438 of file pprz_algebra.h.

◆ MAT33_ELMT

#define MAT33_ELMT (   _m,
  _row,
  _col 
)    ((_m).m[(_row)*3+(_col)])

Definition at line 436 of file pprz_algebra.h.

◆ MAT33_INV

#define MAT33_INV (   _minv,
  _m 
)
Value:
{ \
const float m00 = MAT33_ELMT((_m),1,1)*MAT33_ELMT((_m),2,2) - MAT33_ELMT((_m),1,2)*MAT33_ELMT((_m),2,1); \
const float m10 = MAT33_ELMT((_m),0,1)*MAT33_ELMT((_m),2,2) - MAT33_ELMT((_m),0,2)*MAT33_ELMT((_m),2,1); \
const float m20 = MAT33_ELMT((_m),0,1)*MAT33_ELMT((_m),1,2) - MAT33_ELMT((_m),0,2)*MAT33_ELMT((_m),1,1); \
const float m01 = MAT33_ELMT((_m),1,0)*MAT33_ELMT((_m),2,2) - MAT33_ELMT((_m),1,2)*MAT33_ELMT((_m),2,0); \
const float m11 = MAT33_ELMT((_m),0,0)*MAT33_ELMT((_m),2,2) - MAT33_ELMT((_m),0,2)*MAT33_ELMT((_m),2,0); \
const float m21 = MAT33_ELMT((_m),0,0)*MAT33_ELMT((_m),1,2) - MAT33_ELMT((_m),0,2)*MAT33_ELMT((_m),1,0); \
const float m02 = MAT33_ELMT((_m),1,0)*MAT33_ELMT((_m),2,1) - MAT33_ELMT((_m),1,1)*MAT33_ELMT((_m),2,0); \
const float m12 = MAT33_ELMT((_m),0,0)*MAT33_ELMT((_m),2,1) - MAT33_ELMT((_m),0,1)*MAT33_ELMT((_m),2,0); \
const float m22 = MAT33_ELMT((_m),0,0)*MAT33_ELMT((_m),1,1) - MAT33_ELMT((_m),0,1)*MAT33_ELMT((_m),1,0); \
const float det = MAT33_ELMT((_m),0,0)*m00 - MAT33_ELMT((_m),1,0)*m10 + MAT33_ELMT((_m),2,0)*m20; \
if (fabs(det) > FLT_EPSILON) { \
MAT33_ELMT((_minv),0,0) = m00 / det; \
MAT33_ELMT((_minv),1,0) = -m01 / det; \
MAT33_ELMT((_minv),2,0) = m02 / det; \
MAT33_ELMT((_minv),0,1) = -m10 / det; \
MAT33_ELMT((_minv),1,1) = m11 / det; \
MAT33_ELMT((_minv),2,1) = -m12 / det; \
MAT33_ELMT((_minv),0,2) = m20 / det; \
MAT33_ELMT((_minv),1,2) = -m21 / det; \
MAT33_ELMT((_minv),2,2) = m22 / det; \
} \
}

Definition at line 489 of file pprz_algebra.h.

◆ MAT33_MAT33_DIFF

#define MAT33_MAT33_DIFF (   _mat1,
  _mat2,
  _mat3 
)
Value:
{ \
MAT33_ELMT((_mat1),0,0) = MAT33_ELMT((_mat2),0,0)-MAT33_ELMT((_mat3),0,0); \
MAT33_ELMT((_mat1),0,1) = MAT33_ELMT((_mat2),0,1)-MAT33_ELMT((_mat3),0,1); \
MAT33_ELMT((_mat1),0,2) = MAT33_ELMT((_mat2),0,2)-MAT33_ELMT((_mat3),0,2); \
MAT33_ELMT((_mat1),1,0) = MAT33_ELMT((_mat2),1,0)-MAT33_ELMT((_mat3),1,0); \
MAT33_ELMT((_mat1),1,1) = MAT33_ELMT((_mat2),1,1)-MAT33_ELMT((_mat3),1,1); \
MAT33_ELMT((_mat1),1,2) = MAT33_ELMT((_mat2),1,2)-MAT33_ELMT((_mat3),1,2); \
MAT33_ELMT((_mat1),2,0) = MAT33_ELMT((_mat2),2,0)-MAT33_ELMT((_mat3),2,0); \
MAT33_ELMT((_mat1),2,1) = MAT33_ELMT((_mat2),2,1)-MAT33_ELMT((_mat3),2,1); \
MAT33_ELMT((_mat1),2,2) = MAT33_ELMT((_mat2),2,2)-MAT33_ELMT((_mat3),2,2); \
}

Definition at line 534 of file pprz_algebra.h.

◆ MAT33_MAT33_SUM

#define MAT33_MAT33_SUM (   _mat1,
  _mat2,
  _mat3 
)
Value:
{ \
MAT33_ELMT((_mat1),0,0) = MAT33_ELMT((_mat2),0,0)+MAT33_ELMT((_mat3),0,0); \
MAT33_ELMT((_mat1),0,1) = MAT33_ELMT((_mat2),0,1)+MAT33_ELMT((_mat3),0,1); \
MAT33_ELMT((_mat1),0,2) = MAT33_ELMT((_mat2),0,2)+MAT33_ELMT((_mat3),0,2); \
MAT33_ELMT((_mat1),1,0) = MAT33_ELMT((_mat2),1,0)+MAT33_ELMT((_mat3),1,0); \
MAT33_ELMT((_mat1),1,1) = MAT33_ELMT((_mat2),1,1)+MAT33_ELMT((_mat3),1,1); \
MAT33_ELMT((_mat1),1,2) = MAT33_ELMT((_mat2),1,2)+MAT33_ELMT((_mat3),1,2); \
MAT33_ELMT((_mat1),2,0) = MAT33_ELMT((_mat2),2,0)+MAT33_ELMT((_mat3),2,0); \
MAT33_ELMT((_mat1),2,1) = MAT33_ELMT((_mat2),2,1)+MAT33_ELMT((_mat3),2,1); \
MAT33_ELMT((_mat1),2,2) = MAT33_ELMT((_mat2),2,2)+MAT33_ELMT((_mat3),2,2); \
}

Definition at line 547 of file pprz_algebra.h.

◆ MAT33_MULT_SCALAR

#define MAT33_MULT_SCALAR (   _mat1,
  _scalar 
)
Value:
{ \
MAT33_ELMT((_mat1),0,0) = MAT33_ELMT((_mat1),0,0)*_scalar; \
MAT33_ELMT((_mat1),0,1) = MAT33_ELMT((_mat1),0,1)*_scalar; \
MAT33_ELMT((_mat1),0,2) = MAT33_ELMT((_mat1),0,2)*_scalar; \
MAT33_ELMT((_mat1),1,0) = MAT33_ELMT((_mat1),1,0)*_scalar; \
MAT33_ELMT((_mat1),1,1) = MAT33_ELMT((_mat1),1,1)*_scalar; \
MAT33_ELMT((_mat1),1,2) = MAT33_ELMT((_mat1),1,2)*_scalar; \
MAT33_ELMT((_mat1),2,0) = MAT33_ELMT((_mat1),2,0)*_scalar; \
MAT33_ELMT((_mat1),2,1) = MAT33_ELMT((_mat1),2,1)*_scalar; \
MAT33_ELMT((_mat1),2,2) = MAT33_ELMT((_mat1),2,2)*_scalar; \
}

Definition at line 450 of file pprz_algebra.h.

◆ MAT33_ROW_VECT3_SMUL

#define MAT33_ROW_VECT3_SMUL (   _mat,
  _row,
  _vin,
  _s 
)
Value:
{ \
MAT33_ELMT((_mat), _row, 0) = (_vin).x * (_s); \
MAT33_ELMT((_mat), _row, 1) = (_vin).y * (_s); \
MAT33_ELMT((_mat), _row, 2) = (_vin).z * (_s); \
}

Definition at line 514 of file pprz_algebra.h.

◆ MAT33_TRANS

#define MAT33_TRANS (   _mat1,
  _mat2 
)
Value:
{ \
MAT33_ELMT((_mat1),0,0) = MAT33_ELMT((_mat2),0,0); \
MAT33_ELMT((_mat1),0,1) = MAT33_ELMT((_mat2),1,0); \
MAT33_ELMT((_mat1),0,2) = MAT33_ELMT((_mat2),2,0); \
MAT33_ELMT((_mat1),1,0) = MAT33_ELMT((_mat2),0,1); \
MAT33_ELMT((_mat1),1,1) = MAT33_ELMT((_mat2),1,1); \
MAT33_ELMT((_mat1),1,2) = MAT33_ELMT((_mat2),2,1); \
MAT33_ELMT((_mat1),2,0) = MAT33_ELMT((_mat2),0,2); \
MAT33_ELMT((_mat1),2,1) = MAT33_ELMT((_mat2),1,2); \
MAT33_ELMT((_mat1),2,2) = MAT33_ELMT((_mat2),2,2); \
}

Definition at line 560 of file pprz_algebra.h.

◆ MAT33_VECT3_MUL

#define MAT33_VECT3_MUL (   _vout,
  _mat,
  _vin 
)
Value:
{ \
(_vout).x = MAT33_ELMT((_mat), 0, 0) * (_vin).x + \
MAT33_ELMT((_mat), 0, 1) * (_vin).y + \
MAT33_ELMT((_mat), 0, 2) * (_vin).z; \
(_vout).y = MAT33_ELMT((_mat), 1, 0) * (_vin).x + \
MAT33_ELMT((_mat), 1, 1) * (_vin).y + \
MAT33_ELMT((_mat), 1, 2) * (_vin).z; \
(_vout).z = MAT33_ELMT((_mat), 2, 0) * (_vin).x + \
MAT33_ELMT((_mat), 2, 1) * (_vin).y + \
MAT33_ELMT((_mat), 2, 2) * (_vin).z; \
}

Definition at line 463 of file pprz_algebra.h.

◆ MAT33_VECT3_TRANSP_MUL

#define MAT33_VECT3_TRANSP_MUL (   _vout,
  _mat,
  _vin 
)
Value:
{ \
(_vout).x = MAT33_ELMT((_mat), 0, 0) * (_vin).x + \
MAT33_ELMT((_mat), 1, 0) * (_vin).y + \
MAT33_ELMT((_mat), 2, 0) * (_vin).z; \
(_vout).y = MAT33_ELMT((_mat), 0, 1) * (_vin).x + \
MAT33_ELMT((_mat), 1, 1) * (_vin).y + \
MAT33_ELMT((_mat), 2, 1) * (_vin).z; \
(_vout).z = MAT33_ELMT((_mat), 0, 2) * (_vin).x + \
MAT33_ELMT((_mat), 1, 2) * (_vin).y + \
MAT33_ELMT((_mat), 2, 2) * (_vin).z; \
}

Definition at line 476 of file pprz_algebra.h.

◆ POSITIONS_BFP_OF_REAL

#define POSITIONS_BFP_OF_REAL (   _ef,
  _ei 
)
Value:
{ \
(_ef).x = POS_BFP_OF_REAL((_ei).x); \
(_ef).y = POS_BFP_OF_REAL((_ei).y); \
(_ef).z = POS_BFP_OF_REAL((_ei).z); \
}
#define POS_BFP_OF_REAL(_af)

Definition at line 777 of file pprz_algebra.h.

◆ POSITIONS_FLOAT_OF_BFP

#define POSITIONS_FLOAT_OF_BFP (   _ef,
  _ei 
)
Value:
{ \
(_ef).x = POS_FLOAT_OF_BFP((_ei).x); \
(_ef).y = POS_FLOAT_OF_BFP((_ei).y); \
(_ef).z = POS_FLOAT_OF_BFP((_ei).z); \
}
#define POS_FLOAT_OF_BFP(_ai)

Definition at line 771 of file pprz_algebra.h.

◆ QUAT_ADD

#define QUAT_ADD (   _qo,
  _qi 
)
Value:
{ \
(_qo).qi += (_qi).qi; \
(_qo).qx += (_qi).qx; \
(_qo).qy += (_qi).qy; \
(_qo).qz += (_qi).qz; \
}

Definition at line 619 of file pprz_algebra.h.

◆ QUAT_ASSIGN

#define QUAT_ASSIGN (   _q,
  _i,
  _x,
  _y,
  _z 
)
Value:
{ \
(_q).qi = (_i); \
(_q).qx = (_x); \
(_q).qy = (_y); \
(_q).qz = (_z); \
}

Definition at line 580 of file pprz_algebra.h.

◆ QUAT_BFP_OF_REAL

#define QUAT_BFP_OF_REAL (   _qi,
  _qf 
)
Value:
{ \
(_qi).qi = QUAT1_BFP_OF_REAL((_qf).qi); \
(_qi).qx = QUAT1_BFP_OF_REAL((_qf).qx); \
(_qi).qy = QUAT1_BFP_OF_REAL((_qf).qy); \
(_qi).qz = QUAT1_BFP_OF_REAL((_qf).qz); \
}
#define QUAT1_BFP_OF_REAL(_qf)

Definition at line 752 of file pprz_algebra.h.

◆ QUAT_COPY

#define QUAT_COPY (   _qo,
  _qi 
)
Value:
{ \
(_qo).qi = (_qi).qi; \
(_qo).qx = (_qi).qx; \
(_qo).qy = (_qi).qy; \
(_qo).qz = (_qi).qz; \
}

Definition at line 596 of file pprz_algebra.h.

◆ QUAT_DIFF

#define QUAT_DIFF (   _qc,
  _qa,
  _qb 
)
Value:
{ \
(_qc).qi = (_qa).qi - (_qb).qi; \
(_qc).qx = (_qa).qx - (_qb).qx; \
(_qc).qy = (_qa).qy - (_qb).qy; \
(_qc).qz = (_qa).qz - (_qb).qz; \
}

Definition at line 588 of file pprz_algebra.h.

◆ QUAT_DOT_PRODUCT

#define QUAT_DOT_PRODUCT (   _qa,
  _qb 
)    ((_qa).qi * (_qb).qi + (_qa).qx * (_qb).qx + (_qa).qy * (_qb).qy + (_qa).qz * (_qb).qz)

Definition at line 650 of file pprz_algebra.h.

◆ QUAT_EXPLEMENTARY

#define QUAT_EXPLEMENTARY (   b,
 
)
Value:
{ \
(b).qi = -(a).qi; \
(b).qx = -(a).qx; \
(b).qy = -(a).qy; \
(b).qz = -(a).qz; \
}
float b
Definition: wedgebug.c:202

Definition at line 603 of file pprz_algebra.h.

◆ QUAT_EXTRACT_Q

#define QUAT_EXTRACT_Q (   _vo,
  _qi 
)
Value:
{ \
(_vo).x=(_qi).qx; \
(_vo).y=(_qi).qy; \
(_vo).z=(_qi).qz; \
}

Definition at line 635 of file pprz_algebra.h.

◆ QUAT_FLOAT_OF_BFP

#define QUAT_FLOAT_OF_BFP (   _qf,
  _qi 
)
Value:
{ \
(_qf).qi = QUAT1_FLOAT_OF_BFP((_qi).qi); \
(_qf).qx = QUAT1_FLOAT_OF_BFP((_qi).qx); \
(_qf).qy = QUAT1_FLOAT_OF_BFP((_qi).qy); \
(_qf).qz = QUAT1_FLOAT_OF_BFP((_qi).qz); \
}
#define QUAT1_FLOAT_OF_BFP(_qi)

Definition at line 745 of file pprz_algebra.h.

◆ QUAT_INVERT

#define QUAT_INVERT (   _qo,
  _qi 
)
Value:
{ \
(_qo).qi = (_qi).qi; \
(_qo).qx = -(_qi).qx; \
(_qo).qy = -(_qi).qy; \
(_qo).qz = -(_qi).qz; \
}

Definition at line 627 of file pprz_algebra.h.

◆ QUAT_SDIV

#define QUAT_SDIV (   _qo,
  _qi,
  _s 
)
Value:
{ \
(_qo).qi = (_qi).qi / (_s); \
(_qo).qx = (_qi).qx / (_s); \
(_qo).qy = (_qi).qy / (_s); \
(_qo).qz = (_qi).qz / (_s); \
}

Definition at line 642 of file pprz_algebra.h.

◆ QUAT_SMUL

#define QUAT_SMUL (   _qo,
  _qi,
  _s 
)
Value:
{ \
(_qo).qi = (_qi).qi * (_s); \
(_qo).qx = (_qi).qx * (_s); \
(_qo).qy = (_qi).qy * (_s); \
(_qo).qz = (_qi).qz * (_s); \
}

Definition at line 611 of file pprz_algebra.h.

◆ RATES_ADD

#define RATES_ADD (   _a,
  _b 
)
Value:
{ \
(_a).p += (_b).p; \
(_a).q += (_b).q; \
(_a).r += (_b).r; \
}
static float p[2][2]

Definition at line 344 of file pprz_algebra.h.

◆ RATES_ADD_SCALED_VECT

#define RATES_ADD_SCALED_VECT (   _ro,
  _v,
  _s 
)
Value:
{ \
(_ro).p += (_v).x * (_s); \
(_ro).q += (_v).y * (_s); \
(_ro).r += (_v).z * (_s); \
}

Definition at line 419 of file pprz_algebra.h.

◆ RATES_ASSIGN

#define RATES_ASSIGN (   _ra,
  _p,
  _q,
  _r 
)
Value:
{ \
(_ra).p = (_p); \
(_ra).q = (_q); \
(_ra).r = (_r); \
}

Definition at line 330 of file pprz_algebra.h.

◆ RATES_BFP_OF_REAL

#define RATES_BFP_OF_REAL (   _ri,
  _rf 
)
Value:
{ \
(_ri).p = RATE_BFP_OF_REAL((_rf).p); \
(_ri).q = RATE_BFP_OF_REAL((_rf).q); \
(_ri).r = RATE_BFP_OF_REAL((_rf).r); \
}
#define RATE_BFP_OF_REAL(_af)

Definition at line 765 of file pprz_algebra.h.

◆ RATES_BOUND_BOX

#define RATES_BOUND_BOX (   _v,
  _v_min,
  _v_max 
)
Value:
{ \
if ((_v).p > (_v_max).p) (_v).p = (_v_max).p; else if ((_v).p < (_v_min).p) (_v).p = (_v_min).p; \
if ((_v).q > (_v_max).q) (_v).q = (_v_max).q; else if ((_v).q < (_v_min).q) (_v).q = (_v_min).q; \
if ((_v).r > (_v_max).r) (_v).r = (_v_max).r; else if ((_v).r < (_v_min).r) (_v).r = (_v_min).r; \
}

Definition at line 407 of file pprz_algebra.h.

◆ RATES_BOUND_BOX_ABS

#define RATES_BOUND_BOX_ABS (   _v,
  _v_max 
)
Value:
{ \
if ((_v).p > (_v_max).p) (_v).p = (_v_max).p; else if ((_v).p < -(_v_max).p) (_v).p = -(_v_max).p; \
if ((_v).q > (_v_max).q) (_v).q = (_v_max).q; else if ((_v).q < -(_v_max).q) (_v).q = -(_v_max).q; \
if ((_v).r > (_v_max).r) (_v).r = (_v_max).r; else if ((_v).r < -(_v_max).r) (_v).r = -(_v_max).r; \
}

Definition at line 413 of file pprz_algebra.h.

◆ RATES_BOUND_CUBE

#define RATES_BOUND_CUBE (   _v,
  _min,
  _max 
)
Value:
{ \
(_v).p = (_v).p < (_min) ? (_min) : (_v).p > (_max) ? (_max) : (_v).p; \
(_v).q = (_v).q < (_min) ? (_min) : (_v).q > (_max) ? (_max) : (_v).q; \
(_v).r = (_v).r < (_min) ? (_min) : (_v).r > (_max) ? (_max) : (_v).r; \
}

Definition at line 401 of file pprz_algebra.h.

◆ RATES_COPY

#define RATES_COPY (   _a,
  _b 
)
Value:
{ \
(_a).p = (_b).p; \
(_a).q = (_b).q; \
(_a).r = (_b).r; \
}

Definition at line 337 of file pprz_algebra.h.

◆ RATES_DIFF

#define RATES_DIFF (   _c,
  _a,
  _b 
)
Value:
{ \
(_c).p = (_a).p - (_b).p; \
(_c).q = (_a).q - (_b).q; \
(_c).r = (_a).r - (_b).r; \
}

Definition at line 372 of file pprz_algebra.h.

◆ RATES_EWMULT_RSHIFT

#define RATES_EWMULT_RSHIFT (   c,
  a,
  b,
  _s 
)
Value:
{ \
(c).p = ((a).p * (b).p) >> (_s); \
(c).q = ((a).q * (b).q) >> (_s); \
(c).r = ((a).r * (b).r) >> (_s); \
}

Definition at line 393 of file pprz_algebra.h.

◆ RATES_FLOAT_OF_BFP

#define RATES_FLOAT_OF_BFP (   _rf,
  _ri 
)
Value:
{ \
(_rf).p = RATE_FLOAT_OF_BFP((_ri).p); \
(_rf).q = RATE_FLOAT_OF_BFP((_ri).q); \
(_rf).r = RATE_FLOAT_OF_BFP((_ri).r); \
}
#define RATE_FLOAT_OF_BFP(_ai)

Definition at line 759 of file pprz_algebra.h.

◆ RATES_SDIV

#define RATES_SDIV (   _ro,
  _ri,
  _s 
)
Value:
{ \
(_ro).p = (_ri).p / (_s) ; \
(_ro).q = (_ri).q / (_s); \
(_ro).r = (_ri).r / (_s); \
}

Definition at line 386 of file pprz_algebra.h.

◆ RATES_SMUL

#define RATES_SMUL (   _ro,
  _ri,
  _s 
)
Value:
{ \
(_ro).p = (_ri).p * (_s); \
(_ro).q = (_ri).q * (_s); \
(_ro).r = (_ri).r * (_s); \
}

Definition at line 379 of file pprz_algebra.h.

◆ RATES_SUB

#define RATES_SUB (   _a,
  _b 
)
Value:
{ \
(_a).p -= (_b).p; \
(_a).q -= (_b).q; \
(_a).r -= (_b).r; \
}

Definition at line 351 of file pprz_algebra.h.

◆ RATES_SUM

#define RATES_SUM (   _c,
  _a,
  _b 
)
Value:
{ \
(_c).p = (_a).p + (_b).p; \
(_c).q = (_a).q + (_b).q; \
(_c).r = (_a).r + (_b).r; \
}

Definition at line 358 of file pprz_algebra.h.

◆ RATES_SUM_SCALED

#define RATES_SUM_SCALED (   _c,
  _a,
  _b,
  _s 
)
Value:
{ \
(_c).p = (_a).p + (_s)*(_b).p; \
(_c).q = (_a).q + (_s)*(_b).q; \
(_c).r = (_a).r + (_s)*(_b).r; \
}

Definition at line 365 of file pprz_algebra.h.

◆ RMAT_BFP_OF_REAL

#define RMAT_BFP_OF_REAL (   _ei,
  _ef 
)
Value:
{ \
(_ei).m[0] = TRIG_BFP_OF_REAL((_ef).m[0]); \
(_ei).m[1] = TRIG_BFP_OF_REAL((_ef).m[1]); \
(_ei).m[2] = TRIG_BFP_OF_REAL((_ef).m[2]); \
(_ei).m[3] = TRIG_BFP_OF_REAL((_ef).m[3]); \
(_ei).m[4] = TRIG_BFP_OF_REAL((_ef).m[4]); \
(_ei).m[5] = TRIG_BFP_OF_REAL((_ef).m[5]); \
(_ei).m[6] = TRIG_BFP_OF_REAL((_ef).m[6]); \
(_ei).m[7] = TRIG_BFP_OF_REAL((_ef).m[7]); \
(_ei).m[8] = TRIG_BFP_OF_REAL((_ef).m[8]); \
}
#define TRIG_BFP_OF_REAL(_tf)

Definition at line 721 of file pprz_algebra.h.

◆ RMAT_COPY

#define RMAT_COPY (   _o,
  _i 
)    { memcpy(&(_o), &(_i), sizeof(_o));}

Definition at line 704 of file pprz_algebra.h.

◆ RMAT_DIFF

#define RMAT_DIFF (   _c,
  _a,
  _b 
)
Value:
{ \
(_c).m[0] = (_a).m[0] - (_b).m[0]; \
(_c).m[1] = (_a).m[1] - (_b).m[1]; \
(_c).m[2] = (_a).m[2] - (_b).m[2]; \
(_c).m[3] = (_a).m[3] - (_b).m[3]; \
(_c).m[4] = (_a).m[4] - (_b).m[4]; \
(_c).m[5] = (_a).m[5] - (_b).m[5]; \
(_c).m[6] = (_a).m[6] - (_b).m[6]; \
(_c).m[7] = (_a).m[7] - (_b).m[7]; \
(_c).m[8] = (_a).m[8] - (_b).m[8]; \
}

Definition at line 666 of file pprz_algebra.h.

◆ RMAT_ELMT

#define RMAT_ELMT (   _rm,
  _row,
  _col 
)    MAT33_ELMT(_rm, _row, _col)

Definition at line 660 of file pprz_algebra.h.

◆ RMAT_FLOAT_OF_BFP

#define RMAT_FLOAT_OF_BFP (   _ef,
  _ei 
)
Value:
{ \
(_ef).m[0] = TRIG_FLOAT_OF_BFP((_ei).m[0]); \
(_ef).m[1] = TRIG_FLOAT_OF_BFP((_ei).m[1]); \
(_ef).m[2] = TRIG_FLOAT_OF_BFP((_ei).m[2]); \
(_ef).m[3] = TRIG_FLOAT_OF_BFP((_ei).m[3]); \
(_ef).m[4] = TRIG_FLOAT_OF_BFP((_ei).m[4]); \
(_ef).m[5] = TRIG_FLOAT_OF_BFP((_ei).m[5]); \
(_ef).m[6] = TRIG_FLOAT_OF_BFP((_ei).m[6]); \
(_ef).m[7] = TRIG_FLOAT_OF_BFP((_ei).m[7]); \
(_ef).m[8] = TRIG_FLOAT_OF_BFP((_ei).m[8]); \
}
#define TRIG_FLOAT_OF_BFP(_ti)

Definition at line 733 of file pprz_algebra.h.

◆ RMAT_TRACE

#define RMAT_TRACE (   _rm)    (RMAT_ELMT(_rm, 0, 0)+RMAT_ELMT(_rm, 1, 1)+RMAT_ELMT(_rm, 2, 2))

Definition at line 663 of file pprz_algebra.h.

◆ RMAT_VECT3_MUL

#define RMAT_VECT3_MUL (   _vout,
  _rmat,
  _vin 
)
Value:
{ \
(_vout).x = RMAT_ELMT((_rmat), 0, 0) * (_vin).x + \
RMAT_ELMT((_rmat), 0, 1) * (_vin).y + \
RMAT_ELMT((_rmat), 0, 2) * (_vin).z; \
(_vout).y = RMAT_ELMT((_rmat), 1, 0) * (_vin).x + \
RMAT_ELMT((_rmat), 1, 1) * (_vin).y + \
RMAT_ELMT((_rmat), 1, 2) * (_vin).z; \
(_vout).z = RMAT_ELMT((_rmat), 2, 0) * (_vin).x + \
RMAT_ELMT((_rmat), 2, 1) * (_vin).y + \
RMAT_ELMT((_rmat), 2, 2) * (_vin).z; \
}
#define RMAT_ELMT(_rm, _row, _col)
Definition: pprz_algebra.h:660

Definition at line 679 of file pprz_algebra.h.

◆ RMAT_VECT3_TRANSP_MUL

#define RMAT_VECT3_TRANSP_MUL (   _vout,
  _rmat,
  _vin 
)
Value:
{ \
(_vout).x = RMAT_ELMT((_rmat), 0, 0) * (_vin).x + \
RMAT_ELMT((_rmat), 1, 0) * (_vin).y + \
RMAT_ELMT((_rmat), 2, 0) * (_vin).z; \
(_vout).y = RMAT_ELMT((_rmat), 0, 1) * (_vin).x + \
RMAT_ELMT((_rmat), 1, 1) * (_vin).y + \
RMAT_ELMT((_rmat), 2, 1) * (_vin).z; \
(_vout).z = RMAT_ELMT((_rmat), 0, 2) * (_vin).x + \
RMAT_ELMT((_rmat), 1, 2) * (_vin).y + \
RMAT_ELMT((_rmat), 2, 2) * (_vin).z; \
}

Definition at line 691 of file pprz_algebra.h.

◆ SPEEDS_BFP_OF_REAL

#define SPEEDS_BFP_OF_REAL (   _ef,
  _ei 
)
Value:
{ \
(_ef).x = SPEED_BFP_OF_REAL((_ei).x); \
(_ef).y = SPEED_BFP_OF_REAL((_ei).y); \
(_ef).z = SPEED_BFP_OF_REAL((_ei).z); \
}
#define SPEED_BFP_OF_REAL(_af)

Definition at line 789 of file pprz_algebra.h.

◆ SPEEDS_FLOAT_OF_BFP

#define SPEEDS_FLOAT_OF_BFP (   _ef,
  _ei 
)
Value:
{ \
(_ef).x = SPEED_FLOAT_OF_BFP((_ei).x); \
(_ef).y = SPEED_FLOAT_OF_BFP((_ei).y); \
(_ef).z = SPEED_FLOAT_OF_BFP((_ei).z); \
}
#define SPEED_FLOAT_OF_BFP(_ai)

Definition at line 783 of file pprz_algebra.h.

◆ SQUARE

#define SQUARE (   _a)    ((_a)*(_a))

Definition at line 48 of file pprz_algebra.h.

◆ VECT2_ADD

#define VECT2_ADD (   _a,
  _b 
)
Value:
{ \
(_a).x += (_b).x; \
(_a).y += (_b).y; \
}

Definition at line 74 of file pprz_algebra.h.

◆ VECT2_ASSIGN

#define VECT2_ASSIGN (   _a,
  _x,
  _y 
)
Value:
{ \
(_a).x = (_x); \
(_a).y = (_y); \
}

Definition at line 62 of file pprz_algebra.h.

◆ VECT2_COPY

#define VECT2_COPY (   _a,
  _b 
)
Value:
{ \
(_a).x = (_b).x; \
(_a).y = (_b).y; \
}

Definition at line 68 of file pprz_algebra.h.

◆ VECT2_DIFF

#define VECT2_DIFF (   _c,
  _a,
  _b 
)
Value:
{ \
(_c).x = (_a).x - (_b).x; \
(_c).y = (_a).y - (_b).y; \
}

Definition at line 92 of file pprz_algebra.h.

◆ VECT2_DOT_PRODUCT

#define VECT2_DOT_PRODUCT (   _v1,
  _v2 
)    ((_v1).x*(_v2).x + (_v1).y*(_v2).y)

Definition at line 116 of file pprz_algebra.h.

◆ VECT2_NORM2

#define VECT2_NORM2 (   _v)    ((_v).x*(_v).x + (_v).y*(_v).y)

Definition at line 118 of file pprz_algebra.h.

◆ VECT2_SDIV

#define VECT2_SDIV (   _vo,
  _vi,
  _s 
)
Value:
{ \
(_vo).x = (_vi).x / (_s); \
(_vo).y = (_vi).y / (_s); \
}

Definition at line 104 of file pprz_algebra.h.

◆ VECT2_SMUL

#define VECT2_SMUL (   _vo,
  _vi,
  _s 
)
Value:
{ \
(_vo).x = (_vi).x * (_s); \
(_vo).y = (_vi).y * (_s); \
}

Definition at line 98 of file pprz_algebra.h.

◆ VECT2_STRIM

#define VECT2_STRIM (   _v,
  _min,
  _max 
)
Value:
{ \
(_v).x = (_v).x < _min ? _min : (_v).x > _max ? _max : (_v).x; \
(_v).y = (_v).y < _min ? _min : (_v).y > _max ? _max : (_v).y; \
}

Definition at line 110 of file pprz_algebra.h.

◆ VECT2_SUB

#define VECT2_SUB (   _a,
  _b 
)
Value:
{ \
(_a).x -= (_b).x; \
(_a).y -= (_b).y; \
}

Definition at line 80 of file pprz_algebra.h.

◆ VECT2_SUM

#define VECT2_SUM (   _c,
  _a,
  _b 
)
Value:
{ \
(_c).x = (_a).x + (_b).x; \
(_c).y = (_a).y + (_b).y; \
}

Definition at line 86 of file pprz_algebra.h.

◆ VECT3_ABS

#define VECT3_ABS (   _vo,
  _vi 
)
Value:
{ \
(_vo).x = ABS((_vi).x); \
(_vo).y = ABS((_vi).y); \
(_vo).z = ABS((_vi).z); \
}

Definition at line 238 of file pprz_algebra.h.

◆ VECT3_ADD

#define VECT3_ADD (   _a,
  _b 
)
Value:
{ \
(_a).x += (_b).x; \
(_a).y += (_b).y; \
(_a).z += (_b).z; \
}

Definition at line 147 of file pprz_algebra.h.

◆ VECT3_ADD_SCALED

#define VECT3_ADD_SCALED (   _a,
  _b,
  _s 
)
Value:
{ \
(_a).x += ((_b).x * (_s)); \
(_a).y += ((_b).y * (_s)); \
(_a).z += ((_b).z * (_s)); \
}

Definition at line 168 of file pprz_algebra.h.

◆ VECT3_ASSIGN

#define VECT3_ASSIGN (   _a,
  _x,
  _y,
  _z 
)
Value:
{ \
(_a).x = (_x); \
(_a).y = (_y); \
(_a).z = (_z); \
}

Definition at line 125 of file pprz_algebra.h.

◆ VECT3_ASSIGN_ABS

#define VECT3_ASSIGN_ABS (   _a,
  _x,
  _y,
  _z 
)
Value:
{ \
(_a).x = ABS(_x); \
(_a).y = ABS(_y); \
(_a).z = ABS(_z); \
}

Definition at line 133 of file pprz_algebra.h.

◆ VECT3_BOUND_BOX

#define VECT3_BOUND_BOX (   _v,
  _v_min,
  _v_max 
)
Value:
{ \
if ((_v).x > (_v_max).x) (_v).x = (_v_max).x; else if ((_v).x < (_v_min).x) (_v).x = (_v_min).x; \
if ((_v).y > (_v_max).y) (_v).y = (_v_max).y; else if ((_v).y < (_v_min).y) (_v).y = (_v_min).y; \
if ((_v).z > (_v_max).z) (_v).z = (_v_max).z; else if ((_v).z < (_v_min).z) (_v).z = (_v_min).z; \
}

Definition at line 231 of file pprz_algebra.h.

◆ VECT3_BOUND_CUBE

#define VECT3_BOUND_CUBE (   _v,
  _min,
  _max 
)
Value:
{ \
if ((_v).x > (_max)) (_v).x = (_max); else if ((_v).x < (_min)) (_v).x = (_min); \
if ((_v).y > (_max)) (_v).y = (_max); else if ((_v).y < (_min)) (_v).y = (_min); \
if ((_v).z > (_max)) (_v).z = (_max); else if ((_v).z < (_min)) (_v).z = (_min); \
}

Definition at line 224 of file pprz_algebra.h.

◆ VECT3_COPY

#define VECT3_COPY (   _a,
  _b 
)
Value:
{ \
(_a).x = (_b).x; \
(_a).y = (_b).y; \
(_a).z = (_b).z; \
}

Definition at line 140 of file pprz_algebra.h.

◆ VECT3_CROSS_PRODUCT

#define VECT3_CROSS_PRODUCT (   _vo,
  _v1,
  _v2 
)
Value:
{ \
(_vo).x = (_v1).y*(_v2).z - (_v1).z*(_v2).y; \
(_vo).y = (_v1).z*(_v2).x - (_v1).x*(_v2).z; \
(_vo).z = (_v1).x*(_v2).y - (_v1).y*(_v2).x; \
}

Definition at line 244 of file pprz_algebra.h.

◆ VECT3_DIFF

#define VECT3_DIFF (   _c,
  _a,
  _b 
)
Value:
{ \
(_c).x = (_a).x - (_b).x; \
(_c).y = (_a).y - (_b).y; \
(_c).z = (_a).z - (_b).z; \
}

Definition at line 182 of file pprz_algebra.h.

◆ VECT3_DOT_PRODUCT

#define VECT3_DOT_PRODUCT (   _v1,
  _v2 
)    ((_v1).x*(_v2).x + (_v1).y*(_v2).y + (_v1).z*(_v2).z)

Definition at line 250 of file pprz_algebra.h.

◆ VECT3_EW_DIV

#define VECT3_EW_DIV (   _vo,
  _va,
  _vb 
)
Value:
{ \
(_vo).x = (_va).x / (_vb).x; \
(_vo).y = (_va).y / (_vb).y; \
(_vo).z = (_va).z / (_vb).z; \
}

Definition at line 210 of file pprz_algebra.h.

◆ VECT3_EW_MUL

#define VECT3_EW_MUL (   _vo,
  _va,
  _vb 
)
Value:
{ \
(_vo).x = (_va).x * (_vb).x; \
(_vo).y = (_va).y * (_vb).y; \
(_vo).z = (_va).z * (_vb).z; \
}

Definition at line 217 of file pprz_algebra.h.

◆ VECT3_NORM2

#define VECT3_NORM2 (   _v)    ((_v).x*(_v).x + (_v).y*(_v).y + (_v).z*(_v).z)

Definition at line 252 of file pprz_algebra.h.

◆ VECT3_RATES_CROSS_VECT3

#define VECT3_RATES_CROSS_VECT3 (   _vo,
  _r1,
  _v2 
)
Value:
{ \
(_vo).x = (_r1).q*(_v2).z - (_r1).r*(_v2).y; \
(_vo).y = (_r1).r*(_v2).x - (_r1).p*(_v2).z; \
(_vo).z = (_r1).p*(_v2).y - (_r1).q*(_v2).x; \
}

Definition at line 254 of file pprz_algebra.h.

◆ VECT3_SDIV

#define VECT3_SDIV (   _vo,
  _vi,
  _s 
)
Value:
{ \
(_vo).x = (_vi).x / (_s); \
(_vo).y = (_vi).y / (_s); \
(_vo).z = (_vi).z / (_s); \
}

Definition at line 196 of file pprz_algebra.h.

◆ VECT3_SMUL

#define VECT3_SMUL (   _vo,
  _vi,
  _s 
)
Value:
{ \
(_vo).x = (_vi).x * (_s); \
(_vo).y = (_vi).y * (_s); \
(_vo).z = (_vi).z * (_s); \
}

Definition at line 189 of file pprz_algebra.h.

◆ VECT3_STRIM

#define VECT3_STRIM (   _v,
  _min,
  _max 
)
Value:
{ \
(_v).x = (_v).x < _min ? _min : (_v).x > _max ? _max : (_v).x; \
(_v).y = (_v).y < _min ? _min : (_v).y > _max ? _max : (_v).y; \
(_v).z = (_v).z < _min ? _min : (_v).z > _max ? _max : (_v).z; \
}

Definition at line 203 of file pprz_algebra.h.

◆ VECT3_SUB

#define VECT3_SUB (   _a,
  _b 
)
Value:
{ \
(_a).x -= (_b).x; \
(_a).y -= (_b).y; \
(_a).z -= (_b).z; \
}

Definition at line 154 of file pprz_algebra.h.

◆ VECT3_SUM

#define VECT3_SUM (   _c,
  _a,
  _b 
)
Value:
{ \
(_c).x = (_a).x + (_b).x; \
(_c).y = (_a).y + (_b).y; \
(_c).z = (_a).z + (_b).z; \
}

Definition at line 161 of file pprz_algebra.h.

◆ VECT3_SUM_SCALED

#define VECT3_SUM_SCALED (   _c,
  _a,
  _b,
  _s 
)
Value:
{ \
(_c).x = (_a).x + (_s)*(_b).x; \
(_c).y = (_a).y + (_s)*(_b).y; \
(_c).z = (_a).z + (_s)*(_b).z; \
}

Definition at line 175 of file pprz_algebra.h.

◆ VECT3_VECT3_TRANS_MUL

#define VECT3_VECT3_TRANS_MUL (   _mat,
  _v_a,
  _v_b 
)
Value:
{ \
MAT33_ELMT((_mat),0,0) = (_v_a).x*(_v_b).x; \
MAT33_ELMT((_mat),0,1) = (_v_a).x*(_v_b).y; \
MAT33_ELMT((_mat),0,2) = (_v_a).x*(_v_b).z; \
MAT33_ELMT((_mat),1,0) = (_v_a).y*(_v_b).x; \
MAT33_ELMT((_mat),1,1) = (_v_a).y*(_v_b).y; \
MAT33_ELMT((_mat),1,2) = (_v_a).y*(_v_b).z; \
MAT33_ELMT((_mat),2,0) = (_v_a).z*(_v_b).x; \
MAT33_ELMT((_mat),2,1) = (_v_a).z*(_v_b).y; \
MAT33_ELMT((_mat),2,2) = (_v_a).z*(_v_b).z; \
}

Definition at line 521 of file pprz_algebra.h.