Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
pprz_algebra.h File Reference

Paparazzi generic algebra macros. More...

#include <float.h>
#include <string.h>
#include "std.h"
#include "math.h"
+ Include dependency graph for pprz_algebra.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

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

Paparazzi generic algebra macros.

Definition in file pprz_algebra.h.