home *** CD-ROM | disk | FTP | other *** search
/ Computer Club Elmshorn Atari PD / CCE_PD.iso / pc / 0600 / CCE_0644.ZIP / CCE_0644.PD / FPU_EMU / FPU_TST3.C < prev    next >
C/C++ Source or Header  |  1992-09-20  |  1KB  |  42 lines

  1. /*         Kurzer Funktionstest für LFED 
  2.         Smart Systems 05/92                
  3.         
  4.             ...oder wie man es machen sollte
  5.         
  6.         Aus Funktionen, die den CoProzessor nutzen, sollte man
  7.         IMMER mit exit() zurückkehren, sofern man nicht ein
  8.         FINKTIONSERGEBNIS erwartet ( siehe FPU_TST2.C und auch
  9.         BGIDEMO.C ), um diese risikolos zu terminieren! */
  10.                     
  11. #include <math.h>
  12. #include <time.h>
  13. #include <ext.h>
  14. #include <stdio.h>
  15. #include <stdlib.h>    /* zusätzlich wegen exit() */
  16.  
  17. void main(void)
  18. {
  19.     double    sinus, cosinus, tangens, lauf_var;
  20.     float  startzeit, laufzeit, zeitdiff;
  21.     unsigned int    zaehler;
  22.     
  23.     zaehler = 0;
  24.     startzeit = clock();
  25.     
  26.     for (lauf_var = 0; lauf_var <= 2 * M_PI; lauf_var += 0.0001)
  27.         {
  28.         zaehler++;
  29.         sincos(lauf_var, &sinus, &cosinus); /* dieses bewirkt fast doppelte
  30.                Laufzeit ! SINCOS ist in MATH.H keine FPU-Funktion */
  31.         tangens = tan(lauf_var);
  32.         };
  33.             
  34.     laufzeit = clock();
  35.     zeitdiff = difftime(laufzeit, startzeit)/200;
  36.     printf("Laufzeit mit FPU: %f Sekunden\n",zeitdiff);
  37.     printf("für %u Durchläufe\n\n", zaehler);
  38.     printf("Inhalte der Variblen:\n\nCosinus: %.16f\nSinus: %.16f\nTangens: %.16f\n", cosinus, sinus, tangens); 
  39.     getchar();    
  40.     exit(0);    /* na also, es geht auch ohne Bus-Error */
  41. };
  42.