home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / LANGUAGS / MODULA2 / MTMOD2.LBR / MTMATH.MZD / MTMATH.MOD
Text File  |  2000-06-30  |  2KB  |  104 lines

  1. MODULE MTMath; 
  2.  
  3. (* Program tests the speed of math function.  *)
  4. (* Each function is timed separately.         *)
  5. (* Functions are shown in the import list     *)
  6.  
  7.   FROM MathLib0 IMPORT arctan, cos, exp, ln, sin, sqrt;
  8.   FROM InOut
  9.     IMPORT Read, Write, WriteLn, WriteString;
  10.  
  11.   VAR 
  12.     i, j: INTEGER; 
  13.     pi, angle, result, argument: REAL; 
  14.     dummy: CHAR; 
  15.  
  16. BEGIN 
  17.   WriteString('START SQUARE ROOT TEST'); 
  18.   WriteLn; 
  19.   WriteString('PRESS <CR> TO START'); 
  20.   Read(dummy); WriteLn; 
  21.  
  22.   FOR i := 1 TO 10 DO 
  23.     Write('.'); 
  24.     argument := 0.0; 
  25.     WHILE argument <= 1000.0 DO 
  26.       result := sqrt(argument); 
  27.       argument := argument + 1.0
  28.     END; 
  29.   END; (* FOR *) 
  30.  
  31.   WriteLn; WriteString('END OF SQUARE ROOT TEST'); WriteLn; 
  32.         
  33.   WriteString('START LOG TEST'); 
  34.   WriteLn; 
  35.   WriteString('PRESS <CR> TO START'); 
  36.   Read(dummy); WriteLn; 
  37.  
  38.   FOR i := 1 TO 10 DO 
  39.     Write('.'); 
  40.     argument := 0.1; 
  41.     WHILE argument <= 1000.1 DO 
  42.       result := ln(argument); 
  43.       argument := argument + 1.0
  44.     END; 
  45.   END; (* FOR *) 
  46.  
  47.   WriteLn; WriteString('END OF LOG TEST'); WriteLn; 
  48.  
  49.   WriteString('START EXPONENTIAL TEST'); 
  50.   WriteLn; 
  51.   WriteString('PRESS <CR> TO START'); 
  52.   Read(dummy); WriteLn; 
  53.  
  54.   FOR i := 1 TO 10 DO 
  55.     Write('.'); 
  56.     argument := 0.1; 
  57.     WHILE argument <= 10.0 DO 
  58.       result := exp(argument); 
  59.       argument := argument + 0.01
  60.     END; 
  61.   END; (* FOR *) 
  62.  
  63.   WriteLn; WriteString('END OF EXPONENTIAL TEST'); WriteLn; 
  64.  
  65.   WriteString('START ARCTANGENT TEST'); 
  66.   WriteLn; 
  67.   WriteString('PRESS <CR> TO START'); 
  68.   Read(dummy); WriteLn; 
  69.  
  70.   FOR i := 1 TO 10 DO 
  71.     Write('.'); 
  72.     argument := 0.1; 
  73.     WHILE argument <= 10.0 DO 
  74.       angle := arctan(argument); 
  75.       argument := argument + 0.01
  76.     END; 
  77.   END; (* FOR *) 
  78.  
  79.   WriteLn; WriteString('END OF ARCTANGENT TEST'); WriteLn; 
  80.  
  81.  
  82.   pi := 355.0 / 113.0; 
  83.   WriteString('START SINE TEST'); 
  84.   WriteLn; 
  85.   WriteString('PRESS <CR> TO START'); 
  86.   Read(dummy); WriteLn; 
  87.  
  88.   FOR i := 1 TO 10 DO 
  89.     Write('.'); 
  90.     angle := 0.0; 
  91.     WHILE angle <= 2.0 * pi DO 
  92.       result := sin(angle); 
  93.       angle := angle + pi / 360.0
  94.     END; 
  95.   END; (* FOR *) 
  96.  
  97.   WriteLn; WriteString('END OF SINE TEST'); WriteLn; 
  98.   WriteLn;
  99.   WriteString('DONE'); WriteLn; WriteLn;
  100.  
  101. END MTMath.
  102.  
  103.  
  104.