Esempio n. 1
0
void era_trajectory_destroy(era_trajectory_p trajectory) {
  int i;
  spline_p spline_a = (spline_p)trajectory;

  for (i = 0; i < sizeof(era_trajectory_t)/sizeof(spline_t); ++i)
    spline_destroy(&spline_a[i]);
}
Esempio n. 2
0
int processtask(task_t *ptask, task_t *prep, spline_t *pspline) {
	prep->cmd = ptask->cmd;
	switch(ptask->cmd) {
	case SPLINE_INIT:
		spline_init(pspline, (double_t*)ptask->px,
					(double_t*)ptask->px + ptask->n/(sizeof(double_t)*2),
						ptask->n/(sizeof(double_t)*2));
		break;
	case SPLINE_DESTROY:
		spline_destroy(pspline);
		break;
	case SPLINE_GETVAL:
		spline_getvaluev(pspline, (double_t*)ptask->px,
						(double_t*)prep->px, ptask->n/sizeof(double_t));
		break;
	}
	return 0;
}
Esempio n. 3
0
int main() {

	double_t xs[SIZE_SRC], ys[SIZE_SRC],
			xt[SIZE_TAR], yt[SIZE_TAR], ye[SIZE_TAR],
			v;
	spline_t spline;

	v=0;
	for(size_t i=0; i<SIZE_SRC; ++i, v+=STEP_SRC) {
		xs[i] = v;
		ys[i] = sin(v) + 2;
	}
	spline_init(&spline, xs, ys, SIZE_SRC);

	v=0;
	for(size_t i=0; i<SIZE_TAR; ++i, v+=STEP_TAR) {
		xt[i] = v;
		yt[i] = sin(v) + 2;
		ye[i] = spline_getvalue(&spline, v);
		printf("x %f, target %f, spline %f, error %f\n", xt[i], yt[i], ye[i], yt[i]-ye[i]);
	}
	spline_destroy(&spline);
	return EXIT_SUCCESS;
}