27 #ifndef PPRZ_RK_FLOAT_H
28 #define PPRZ_RK_FLOAT_H
57 const float *x,
const int n,
58 const float *u,
const int m,
59 void (*f)(
float *o,
const float *x,
const int n,
const float *u,
const int m),
91 const float *x,
const int n,
92 const float *u,
const int m,
93 void (*f)(
float *o,
const float *x,
const int n,
const float *u,
const int m),
99 f(mid_point, x, n, u, m);
103 f(xo, mid_point, n, u, m);
134 const float *x,
const int n,
135 const float *u,
const int m,
136 void (*f)(
float *o,
const float *x,
const int n,
const float *u,
const int m),
139 float k1[n], k2[n], k3[n], k4[n], ktmp[n];
147 f(k2, ktmp, n, u, m);
152 f(k3, ktmp, n, u, m);
157 f(k4, ktmp, n, u, m);
static void float_vect_sum(float *o, const float *a, const float *b, const int n)
o = a + b
static void float_vect_add(float *a, const float *b, const int n)
a += b
static void runge_kutta_1_float(float *xo, const float *x, const int n, const float *u, const int m, void(*f)(float *o, const float *x, const int n, const float *u, const int m), const float dt)
First-Order Runge-Kutta.
Paparazzi floating point algebra.
static void float_vect_smul(float *o, const float *a, const float s, const int n)
o = a * s
static void runge_kutta_4_float(float *xo, const float *x, const int n, const float *u, const int m, void(*f)(float *o, const float *x, const int n, const float *u, const int m), const float dt)
Fourth-Order Runge-Kutta.
static void runge_kutta_2_float(float *xo, const float *x, const int n, const float *u, const int m, void(*f)(float *o, const float *x, const int n, const float *u, const int m), const float dt)
Second-Order Runge-Kutta.