home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD 12 / 12_pcplus_supercd.iso / Pcplus / WILF / TRIG.BAS < prev   
Encoding:
BASIC Source File  |  1997-05-31  |  1009 b   |  61 lines

  1. CONST DegToRad! = .0174533
  2. CONST RadToDeg! = 57.2958
  3.  
  4. DEFINT A-Z
  5.  
  6. DIM SINtab#(359)
  7. DIM COStab#(359)
  8.  
  9. CLS
  10. PRINT "Please wait"
  11.  
  12. FOR i = 0 TO 359
  13.  x# = i * DegToRad!
  14.  SINtab#(i) = SIN(x#)
  15.  COStab#(i) = COS(x#)
  16. NEXT
  17.  
  18. ' look up for ten seconds
  19.  
  20. a! = TIMER
  21. i = 0
  22. j# = 0
  23. DO WHILE a! <> TIMER: LOOP
  24. DO WHILE TIMER - a! < 10
  25.  x# = SINtab#(i)
  26.  x# = COStab#(i)
  27.  i = (i + 1) MOD 360
  28.  j# = j# + 1
  29. LOOP
  30.  
  31. ' calculate for ten seconds
  32.  
  33. a! = TIMER
  34. i = 0
  35. k# = 0
  36. DO WHILE a! <> TIMER: LOOP
  37. DO WHILE TIMER - a! < 10
  38.  x# = SIN(CDBL(i * DegToRad!))
  39.  x# = COS(CDBL(i * DegToRad!))
  40.  i = (i + 1) MOD 360
  41.  k# = k# + 1
  42. LOOP
  43.  
  44. CLS
  45. PRINT "lookup    ="; j#
  46. PRINT "calculate ="; k#
  47. PRINT
  48. IF j# > k# THEN
  49.  PRINT "It is faster to look up trig functions than to calculate them"
  50.  PRINT "ratio:"; j# / k#; "lookups to each calculation"
  51. ELSE
  52.  PRINT "It is faster to calculate trig functions than to look them up"
  53.  PRINT "ratio:"; k# / j#; "calculations to each lookup"
  54. END IF
  55. SYSTEM
  56.  
  57.  
  58.  
  59.  
  60.  
  61.