home *** CD-ROM | disk | FTP | other *** search
/ Between Heaven & Hell 2 / BetweenHeavenHell.cdr / 500 / 470 / rccl036 < prev    next >
Text File  |  1987-03-02  |  2KB  |  96 lines

  1. /*
  2.  * RCCL Version 1.0           Author :  Vincent Hayward
  3.  *                                      School of Electrical Engineering
  4.  *                                      Purdue University
  5.  *      Dir     : src
  6.  *      File    : speed.c
  7.  *      Remarks : Measure how much time critical functions take to execute.
  8.  *      Usage   : make speed, run  speed 3  or speed 4
  9.  */
  10.  
  11. #include "../h/which.h"
  12. #include "../h/rccl.h"
  13. #include "../h/manip.h"
  14. #include "../h/umac.h"
  15.  
  16. JNTS j = {"      ",0., 0., 0., 0., 0., 0.};
  17. FORCE f = {1., 1., 1., 1., 1., 1.};
  18.  
  19. main(argc,argv)
  20. char **argv;
  21. {
  22.     int i, n = 1;
  23.     double d = 1.;
  24.     float f = 1.;
  25.     double d1, d2;
  26.     TRSF t, u, v;
  27.     double t1, t2, lt, cputim_();       /* fortran cc .. -lU77 */
  28.     double fact = 1000000.;
  29.  
  30.     jns_to_tr_n(&t, &j, NO);
  31.  
  32.     i = atoi(*(argv+1));
  33.     while(i--)
  34.         n *= 10;
  35.  
  36.     i = n;
  37.     t1 = cputim_();
  38.     while (i--)
  39.         tr_to_jns_n(&j, &t, YES);
  40.     t2 = cputim_();
  41.  
  42.     lt = ((t2 - t1) * fact) / n;
  43.     printf("solutions time = %f\n", lt);
  44.  
  45.     i = n;
  46.     t1 = cputim_();
  47.     while (i--)
  48.         jns_to_tr_n(&t, &j, YES);
  49.     t2 = cputim_();
  50.  
  51.     lt = ((t2 - t1) * fact) / n;
  52.     printf("handpos time = %f\n", lt);
  53.  
  54.     n *= 10;
  55.  
  56.     i = n;
  57.     t1 = cputim_();
  58.     while (i--) {
  59.         ++rtime;
  60.         jacobT_n(&j, &f);
  61.     }
  62.     t2 = cputim_();
  63.  
  64.     lt = ((t2 - t1) * fact) / n;
  65.     printf("Jacobian time = %f\n", lt);
  66.  
  67.     i = n;
  68.     t1 = cputim_();
  69.     while (i--)
  70.         invert(&u, &t);
  71.     t2 = cputim_();
  72.  
  73.     lt = ((t2 - t1) * fact) / n;
  74.     printf("invert time = %f\n", lt);
  75.  
  76.  
  77.     i = n;
  78.     t1 = cputim_();
  79.     while (i--)
  80.         trmult(&v, &t, &u);
  81.     t2 = cputim_();
  82.  
  83.     lt = ((t2 - t1) * fact) / n;
  84.     printf("trmult time = %f\n", lt);
  85.  
  86.  
  87.     i = n;
  88.     t1 = cputim_();
  89.     while (i--)
  90.         SINCOS(d1, d2, .7);
  91.     t2 = cputim_();
  92.  
  93.     lt = ((t2 - t1) * fact) / n;
  94.     printf("sin+cos time = %f\n", lt);
  95. }
  96.