#ifndef LIBA_TRAJPOLY7_H
#define LIBA_TRAJPOLY7_H
#include "a.h"
typedef struct a_trajpoly7 a_trajpoly7;
#if !defined A_TRAJPOLY7
#define A_TRAJPOLY7 4
#endif
#if defined(__cplusplus)
extern "C" {
#endif
A_EXTERN void a_trajpoly7_gen(a_trajpoly7 *ctx, a_float ts,
a_float p0, a_float p1,
a_float v0, a_float v1,
a_float a0, a_float a1,
a_float j0, a_float j1);
A_EXTERN void a_trajpoly7_gen0(a_trajpoly7 *ctx, a_float ts,
a_float p0, a_float p1,
a_float v0, a_float v1,
a_float a0, a_float a1,
a_float j0, a_float j1);
#if defined(A_TRAJPOLY7) && (A_TRAJPOLY7 + 0 > 1)
A_EXTERN void a_trajpoly7_gen1(a_trajpoly7 *ctx);
#endif
#if defined(A_TRAJPOLY7) && (A_TRAJPOLY7 + 0 > 2)
A_EXTERN void a_trajpoly7_gen2(a_trajpoly7 *ctx);
#endif
#if defined(A_TRAJPOLY7) && (A_TRAJPOLY7 + 0 > 3)
A_EXTERN void a_trajpoly7_gen3(a_trajpoly7 *ctx);
#endif
A_EXTERN a_float a_trajpoly7_pos(a_trajpoly7 const *ctx, a_float x);
#if defined(A_TRAJPOLY7) && (A_TRAJPOLY7 + 0 > 1)
A_EXTERN a_float a_trajpoly7_vel(a_trajpoly7 const *ctx, a_float x);
#endif
#if defined(A_TRAJPOLY7) && (A_TRAJPOLY7 + 0 > 2)
A_EXTERN a_float a_trajpoly7_acc(a_trajpoly7 const *ctx, a_float x);
#endif
#if defined(A_TRAJPOLY7) && (A_TRAJPOLY7 + 0 > 3)
A_EXTERN a_float a_trajpoly7_jer(a_trajpoly7 const *ctx, a_float x);
#endif
#if defined(__cplusplus)
}
namespace a
{
typedef struct a_trajpoly7 trajpoly7;
}
#endif
struct a_trajpoly7
{
a_float p[8]; #if defined(A_TRAJPOLY7) && (A_TRAJPOLY7 + 0 > 1)
a_float v[7]; #endif
#if defined(A_TRAJPOLY7) && (A_TRAJPOLY7 + 0 > 2)
a_float a[6]; #endif
#if defined(A_TRAJPOLY7) && (A_TRAJPOLY7 + 0 > 3)
a_float j[5]; #endif
#if defined(__cplusplus)
A_INLINE void gen(a_float ts, a_float p0, a_float p1,
a_float v0 = 0, a_float v1 = 0,
a_float a0 = 0, a_float a1 = 0,
a_float j0 = 0, a_float j1 = 0)
{
a_trajpoly7_gen(this, ts, p0, p1, v0, v1, a0, a1, j0, j1);
}
A_INLINE void gen0(a_float ts, a_float p0, a_float p1,
a_float v0 = 0, a_float v1 = 0,
a_float a0 = 0, a_float a1 = 0,
a_float j0 = 0, a_float j1 = 0)
{
a_trajpoly7_gen0(this, ts, p0, p1, v0, v1, a0, a1, j0, j1);
}
A_INLINE a_float pos(a_float x) const
{
return a_trajpoly7_pos(this, x);
}
#if defined(A_TRAJPOLY7) && (A_TRAJPOLY7 + 0 > 1)
A_INLINE void gen1() { a_trajpoly7_gen1(this); }
A_INLINE a_float vel(a_float x) const
{
return a_trajpoly7_vel(this, x);
}
#endif
#if defined(A_TRAJPOLY7) && (A_TRAJPOLY7 + 0 > 2)
A_INLINE void gen2() { a_trajpoly7_gen2(this); }
A_INLINE a_float acc(a_float x) const
{
return a_trajpoly7_acc(this, x);
}
#endif
#if defined(A_TRAJPOLY7) && (A_TRAJPOLY7 + 0 > 3)
A_INLINE void gen3() { a_trajpoly7_gen3(this); }
A_INLINE a_float jer(a_float x) const
{
return a_trajpoly7_jer(this, x);
}
#endif
#endif
};
#endif