home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_progs / libs / matlab.lzh / MATLAB / MATLAB.LZH / Source / MatLab / FLOP.FOR < prev    next >
Encoding:
Text File  |  1991-04-13  |  1.2 KB  |  51 lines

  1.       DOUBLE PRECISION FUNCTION FLOP (X)
  2.       IMPLICIT NONE
  3. C
  4. C SYSTEM DEPENDENT FUNCTION:
  5. C   COUNT AND POSSIBLY CHOP EACH FLOATING POINT OPERATION
  6. C   FLP(1) = FLOP COUNTER
  7. C   FLP(2) = # OF PLACES TO BE CHOPPED
  8. C
  9.       DOUBLE PRECISION X
  10. C
  11.       INCLUDE MATLAB$KOM:COM.KOM
  12. C
  13.       INTEGER K
  14.       DOUBLE PRECISION MASK(14), XX, MM
  15.       REAL MAS(2,14)
  16.       LOGICAL LX(2), LM(2)
  17.       EQUIVALENCE (LX(1), XX), (LM(1), MM)
  18.       EQUIVALENCE (MASK(1), MAS(1))
  19. C
  20.       DATA MAS /
  21.      .      Z'FFFFFFFF', Z'FFF0FFFF',
  22.      .      Z'FFFFFFFF', Z'FF00FFFF',
  23.      .      Z'FFFFFFFF', Z'F000FFFF',
  24.      .      Z'FFFFFFFF', Z'0000FFFF',
  25.      .      Z'FFFFFFFF', Z'0000FFF0',
  26.      .      Z'FFFFFFFF', Z'0000FF00',
  27.      .      Z'FFFFFFFF', Z'0000F000',
  28.      .      Z'FFFFFFFF', Z'00000000',
  29.      .      Z'FFF0FFFF', Z'00000000',
  30.      .      Z'FF00FFFF', Z'00000000',
  31.      .      Z'F000FFFF', Z'00000000',
  32.      .      Z'0000FFFF', Z'00000000',
  33.      .      Z'0000FFF0', Z'00000000',
  34.      .      Z'0000FF80', Z'00000000' /
  35. C
  36. C
  37.       FLP(1) = FLP(1)+1
  38.       K = FLP(2)
  39.       FLOP = X
  40.       IF (K.LE.0) RETURN
  41.       FLOP = 0.0D0
  42.       IF (K.GE.15) RETURN
  43.       XX = X
  44.       MM = MASK(K)
  45.       LX(1) = LX(1).AND.LM(1)
  46.       LX(2) = LX(2).AND.LM(2)
  47.       FLOP = XX
  48. C
  49.       RETURN
  50.       END
  51.