Esempio n. 1
0
static void test_8(void)
{
  printf("Running %d iterations of test_INT32_QUAT_OF_RMAT\n", NB_ITER);
#if SEED_RANDOM_FROM_TIME
#pragma message "Seeding random from current time"
  time_t now;
  now = time(NULL);
  struct tm *ts;
  ts = localtime(&now);
  srandom(ts->tm_sec);
#endif
  float max_err = 0.;
  float sum_err = 0.;
  int nb_err = 0;
  int i;
  for (i = 0; i < NB_ITER; i++) {
    struct FloatEulers eul;
    eul.phi   = ((double)random() / (double)RAND_MAX - 0.5) * M_PI * 2.;
    eul.theta = ((double)random() / (double)RAND_MAX - 0.5) * M_PI * 2.;
    eul.psi   = ((double)random() / (double)RAND_MAX - 0.5) * M_PI * 2.;
    float err = test_INT32_QUAT_OF_RMAT(&eul, FALSE);
    sum_err += err;
    if (err > max_err) { max_err = err; }
    if (err > .01) {
      nb_err++;
      printf("\nIteration %d with large error: %f\n", i, err);
      DISPLAY_FLOAT_EULERS_DEG("Eulers in deg", eul);
      test_INT32_QUAT_OF_RMAT(&eul, TRUE);
      printf("\n");
    }
  }
  printf("Number of errors %d, average error %f, max error %f\n", nb_err, sum_err / NB_ITER, max_err);
}
Esempio n. 2
0
static void test_9(void) {
    struct FloatEulers eul;
    eul.phi   = RadOfDeg(80.821376);
    eul.theta = RadOfDeg(44.227319);
    eul.psi   = RadOfDeg(-134.047298);
    float err = test_INT32_QUAT_OF_RMAT(&eul, TRUE);
}
Esempio n. 3
0
static void test_8(void) {
    float max_err = 0.;
    float sum_err = 0.;
    int i;
    for (i=0; i<NB_ITER; i++) {
        struct FloatEulers eul;
        eul.phi   = ((double)random()/(double)RAND_MAX - 0.5)*M_PI*2.;
        eul.theta = ((double)random()/(double)RAND_MAX - 0.5)*M_PI*2.;
        eul.psi   = ((double)random()/(double)RAND_MAX - 0.5)*M_PI*2.;
        float err = test_INT32_QUAT_OF_RMAT(&eul, FALSE);
        sum_err += err;
        if (err > max_err) max_err = err;
        if (err > .01) {
            printf("%f\n", err);
            DISPLAY_FLOAT_EULERS_DEG("eul", eul);
            test_INT32_QUAT_OF_RMAT(&eul, TRUE);
        }
    }
    printf("err %f (%f)\n", sum_err/NB_ITER, max_err);
}