home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / P_FOTRAN.LZH / 68881 / TIMINGSF.FOR < prev    next >
Text File  |  1987-12-31  |  14KB  |  603 lines

  1.       program ft
  2.       real   t, tt1, tt2
  3.       real*8 t1, t2
  4.       complex z,zz1,zz2,zz3
  5.       real*8  dz(2), dzz1(2), dzz2(2), dzz3(2)
  6.       real tr,r
  7.       real*8 ttlr,tlr,lr,za,ze,zeit,empty,z1,z2,z3,z4
  8.       real*8 dc1,dc2,dc3,dc4,dc5,dc6,dc7
  9.       real*8 pd1,pd2,pd3,pd4,pd5,pd6,pd7
  10.       real*8 d1,d2,d3,d4,d5,d6,d7
  11.       real stime
  12.       integer iha, ima, isa, ihua , ihe, ime, ise, ihue, i, loop
  13.       integer mode
  14.       external second
  15.       include 'complexf.dcl'
  16.       
  17.  
  18.       loop1 = 10000
  19.       loop = loop1
  20.       divis = 1000000/loop1
  21.       do 876 i = 1,30
  22.  876  write (*,* ) ' '
  23.       write (*,*)
  24.       write (*,*) ' SPEED-TEST OF FPU with Pro Fortran-77',
  25.      1            ' in mikrosec./operation'
  26.       write (*,*) ' =============================================',
  27.      1            '======================'
  28.       write (*,*) ' Operation        32b ST68881  STplus   ',
  29.      1            ' 64b ST68881  STplus'
  30.       write (*,*) ' ----------------------------------------',
  31.      1            '---------------------------'
  32.       stime = second ()
  33.       do 10 i = 1, 10000
  34.  10   continue
  35.       empty = second() - stime
  36.       write (*,3)
  37.  3    format ( \ )
  38.       empty = empty*100
  39.       write (*,*) ' Empty             '
  40.       write (*,2) empty
  41.       write (*,5) 
  42.       write (*,2) empty
  43.  
  44.       write (*,*) ' add               '
  45.       r = 0.1
  46.       tr = 1.242424 
  47.       loop = loop1
  48.       stime = second ()
  49.       do 20 i = 1,loop
  50.  20   r = r + tr
  51.       z1 = (second()-stime)*divis 
  52.       write (*,2)  z1
  53.  2    format ( \f12.4)
  54.  5    format ( \12(' ') )
  55.  
  56.       write ( *,5) 
  57.  
  58.       tlr = 1.242424d0
  59.       lr = 0.1d0
  60.       stime = second()
  61.       do 40 i = 1,loop
  62.  40   lr = lr + tlr
  63.       z3 = (second()-stime)*divis
  64.       write (*,2) z3
  65.  
  66.       write (*,*) ' mult              '
  67.       r = 5.0
  68.       tr = 1.242424 
  69.       stime = second()
  70.       do 60 i = 1,loop
  71.  60   r = tr * tr
  72.       z1 = (second()-stime)*divis
  73.       write (*,2)  z1
  74.  
  75.       write ( *,5) 
  76.  
  77.       tlr = 1.242424d0
  78.       lr = 5d0
  79.       stime = second()
  80.       do 80 i = 1,loop
  81.  80   lr = tlr * tlr
  82.       z3 = (second()-stime)*divis
  83.       write (*,2) z3
  84.  
  85.       write (*,*) ' sub               '
  86.       r = 0.1
  87.       tr = 1.242424 
  88.       loop = loop1
  89.       stime = second ()
  90.       do 22 i = 1,loop
  91.  22   r = r - tr
  92.       z1 = (second()-stime)*divis 
  93.       write (*,2)  z1
  94.  
  95.       write ( *,5) 
  96.  
  97.       tlr = 1.242424d0
  98.       lr = 0.1d0
  99.       stime = second()
  100.       do 44 i = 1,loop
  101.  44   lr = lr - tlr
  102.       z3 = (second()-stime)*divis
  103.       write (*,2) z3
  104.  
  105.       write (*,*) ' div               '
  106.       r = 5.0
  107.       ttr = 234234.234234
  108.       tr = 1.242424 
  109.       stime = second()
  110.       do 66 i = 1,loop
  111.  66   r = ttr / tr
  112.       z1 = (second()-stime)*divis
  113.       write (*,2)  z1
  114.  
  115.       write ( *,5) 
  116.  
  117.       ttlr = 234234.234234d0
  118.       tlr = 1.242424d0
  119.       lr = 5d0
  120.       stime = second()
  121.       do 88 i = 1,loop
  122.  88   lr = ttlr / tlr
  123.       z3 = (second()-stime)*divis
  124.       write (*,2) z3
  125.  
  126.       write (*,*) ' sqrt              '
  127.       r = 0.1
  128.       tr = 3.242424 
  129.       stime = second()
  130.       do 100 i = 1,loop
  131.  100  r = sqrt ( tr ) 
  132.       z1 = (second()-stime)*divis
  133.       write (*,2)  z1
  134.  
  135.       write ( *,5) 
  136.  
  137.       tlr = 3.242424d0
  138.       lr = 0.1d0
  139.       stime = second()
  140.       do 120 i = 1,loop
  141.  120  lr = sqrt ( tlr )
  142.       z3 = (second()-stime)*divis
  143.       write (*,2) z3
  144.  
  145.       write (*,*) ' sin               '
  146.       r = 0.1
  147.       tr = 3.242424 
  148.       stime = second()
  149.       do 140 i = 1,loop
  150.  140  r = sin  ( tr ) 
  151.       z1 = (second()-stime)*divis
  152.       write (*,2)  z1
  153.  
  154.       write ( *,5) 
  155.  
  156.       tlr = 3.242424d0
  157.       lr = 0.1d0
  158.       stime = second()
  159.       do 160 i = 1,loop
  160.  160  lr = sin  ( tlr )
  161.       z3 = (second()-stime)*divis
  162.       write (*,2) z3
  163.  
  164.       write (*,*) ' cos               '
  165.       r = 0.1
  166.       tr = 3.242424 
  167.       stime = second()
  168.       do 180 i = 1,loop
  169.  180  r = cos  ( tr ) 
  170.       z1 = (second()-stime)*divis
  171.       write (*,2)  z1
  172.  
  173.       write ( *,5) 
  174.  
  175.       tlr = 3.242424d0
  176.       lr = 0.1d0
  177.       stime = second()
  178.       do 200 i = 1,loop
  179.  200  lr = cos  ( tlr )
  180.       z3 = (second()-stime)*divis
  181.       write (*,2) z3
  182.  
  183.       write (*,*) ' sincos            '
  184.       r = 0.1
  185.       tr = 3.242424 
  186.       stime = second()
  187.       do 640 i = 1,loop
  188.       r = cos  ( tr )
  189.  640  r = sin  ( tr ) 
  190.       z1 = (second()-stime)*divis
  191.       write (*,2)  z1
  192.  
  193.       write ( *,5) 
  194.  
  195.       tlr = 3.242424d0
  196.       lr = 0.1d0
  197.       stime = second()
  198.       do 660 i = 1,loop
  199.       lr = cos  ( tlr )
  200.  660  lr = sin  ( tlr )
  201.       z3 = (second()-stime)*divis
  202.       write (*,2) z3
  203.  
  204.       write (*,*) ' exp               '
  205.       r = 0.1
  206.       tr = 3.242424 
  207.       stime = second()
  208.       do 220 i = 1,loop
  209.  220  r = exp  ( tr ) 
  210.       z1 = (second()-stime)*divis
  211.       write (*,2)  z1
  212.  
  213.       write ( *,5) 
  214.  
  215.       tlr = 3.242424d0
  216.       lr = 0.1d0
  217.       stime = second()
  218.       do 240 i = 1,loop
  219.  240  lr = exp  ( tlr )
  220.       z3 = (second()-stime)*divis
  221.       write (*,2) z3
  222.  
  223.       write (*,*) ' ln                '
  224.       r = 0.1
  225.       tr = 3.242424 
  226.       stime = second()
  227.       do 260 i = 1,loop
  228.  260  r = log  ( tr ) 
  229.       z1 = (second()-stime)*divis
  230.       write (*,2)  z1
  231.  
  232.       write ( *,5) 
  233.  
  234.       tlr = 3.242424d0
  235.       lr = 0.1d0
  236.       stime = second()
  237.       do 280 i = 1,loop
  238.  280  lr = log  ( tlr )
  239.       z3 = (second()-stime)*divis
  240.       write (*,2) z3
  241.  
  242.       write (*,*) ' arctan            '
  243.       r = 0.1
  244.       tr = 3.242424 
  245.       stime = second()
  246.       do 300 i = 1,loop
  247.  300  r = atan ( tr ) 
  248.       z1 = (second()-stime)*divis
  249.       write (*,2)  z1
  250.  
  251.       write ( *,5) 
  252.  
  253.       tlr = 3.242424d0
  254.       lr = 0.1d0
  255.       stime = second()
  256.       do 320 i = 1,loop
  257.  320  lr = atan ( tlr )
  258.       z3 = (second()-stime)*divis
  259.       write (*,2) z3
  260.  
  261.  9999 continue
  262.       write (*,*) ' Legendre P1..7    '
  263.       r = 0.1
  264.       tr = 0.242424 
  265.       stime = second()
  266.       do 400 i = 1,loop
  267.         p1 = tr 
  268.         p2 = tr * tr
  269.         p3 = p2 * p1
  270.         p4 = p2 * p2
  271.         p5 = p4 * p1
  272.         p6 = p3 * p3
  273.         p7 = p6 * p1
  274.         r1 = p1
  275.         r2 = 1.5 * p2 - 0.5
  276.         r3 = 2.5 * p3 - 1.5 * p1
  277.         r4 = ( 35.0 * p4 - 30 * p2 + 3.0 ) / 8.0
  278.         r5 = ( 63.0 * p5 - 70.0 * p3 + 15.0 * p1 ) / 8.0
  279.         r6 = ( 231.0 * p6 - 315.0 * p4 + 105.0 * p2 - 5.0 ) / 16.0
  280.         r7 =( 429.0 * p7 - 693.0 * p5 + 315.0 * p3 - 35.0 * p1 ) / 16.0 
  281.  400  continue 
  282.       z1 = (second()-stime)*divis
  283.       write ( *,2) z1
  284.  
  285.       write ( *,5) 
  286.  
  287.       tlr = 0.242424d0
  288.       lr = 0.1d0
  289.       stime = second()
  290.       do 420 i = 1,loop
  291.         pd1 = tlr 
  292.         pd2 = tlr * tlr 
  293.         pd3 = p2 * p1 
  294.         pd4 = p2 * p2 
  295.         pd5 = p4 * p1 
  296.         pd6 = p3 * p3 
  297.         pd7 = p6 * p1 
  298.         d1 = pd1 
  299.         d2 = 1.5d0 * pd2 - 0.5d0 
  300.         d3 = 2.5d0 * pd3 - 1.5d0 * pd1 
  301.         d4 = ( 35.0d0 * pd4 - 30.0d0 * pd2 + 3.0d0 ) / 8.0d0 
  302.         d5 = ( 63.0d0 * pd5 - 70.0d0 * pd3 + 15.0d0 * pd1 ) / 8.0d0 
  303.         d6 = ( 231.0d0 * pd6 - 315.0d0 * pd4 + 105.0d0 * pd2
  304.      1         - 5.0d0 ) / 16.0d0 
  305.         d7 = ( 429.0d0 * pd7 - 693.0d0 * pd5 + 315.0d0 * pd3 
  306.      1         - 35.0d0 * pd1 ) / 16.0d0 
  307.  420  continue
  308.       z3 = (second()-stime)*divis
  309.       write (*,2) z3
  310.  
  311.       write (*,*) ' complex sqrt      '
  312.       r = 0.1
  313.       z = (3.242424,86.8575)
  314.       stime = second()
  315.       do 6140 i = 1,loop
  316.  6140  zz1 = csqrt  ( z ) 
  317.       z1 = (second()-stime)*divis
  318.       write (*,2)  z1
  319.  
  320.       z = (3.242424,86.8575)
  321.       stime = second()
  322.       do 6150 i = 1,loop1
  323.  6150  zz1 = scsqrt ( z ) 
  324.       z2 = (second()-stime)*divis
  325.       write ( *,2) z2
  326.  
  327.       write ( *,5) 
  328.  
  329.       dz (1) = 3.242424d0
  330.       dz (2) = 86.8575d0
  331.       stime = second()
  332.       do 6170 i = 1,loop1
  333.  6170  call dcsqrt( dzz1, dz )
  334.       z4 = (second()-stime)*divis
  335.       write (*,2) z4
  336.  
  337.       write (*,*) ' complex cos       '
  338.       r = 0.1
  339.       z = (3.242424,86.8575)
  340.       stime = second()
  341.       do 6240 i = 1,loop
  342.  6240  zz1 = ccos   ( z ) 
  343.       z1 = (second()-stime)*divis
  344.       write (*,2)  z1
  345.  
  346.       z = (3.242424,86.8575)
  347.       stime = second()
  348.       do 6250 i = 1,loop1
  349.  6250  zz1 = sccos  ( z ) 
  350.       z2 = (second()-stime)*divis
  351.       write ( *,2) z2
  352.  
  353.       write ( *,5) 
  354.  
  355.       dz (1) = 3.242424d0
  356.       dz (2) = 86.8575d0
  357.       stime = second()
  358.       do 6270 i = 1,loop1
  359.  6270  call dccos ( dzz1, dz )
  360.       z4 = (second()-stime)*divis
  361.       write (*,2) z4
  362.  
  363.       write (*,*) ' complex exp       '
  364.       r = 0.1
  365.       z = (3.242424,86.8575)
  366.       stime = second()
  367.       do 6340 i = 1,loop
  368.  6340  zz1 = cexp   ( z ) 
  369.       z1 = (second()-stime)*divis
  370.       write (*,2)  z1
  371.  
  372.       z = (3.242424,86.8575)
  373.       stime = second()
  374.       do 6350 i = 1,loop1
  375.  6350  zz1 = scexp  ( z ) 
  376.       z2 = (second()-stime)*divis
  377.       write ( *,2) z2
  378.  
  379.       write ( *,5) 
  380.  
  381.       dz (1) = 3.242424d0
  382.       dz (2) = 86.8575d0
  383.       stime = second()
  384.       do 6370 i = 1,loop1
  385.  6370  call dcexp ( dzz1, dz )
  386.       z4 = (second()-stime)*divis
  387.       write (*,2) z4
  388.  
  389.       write (*,*) ' complex sin       '
  390.       r = 0.1
  391.       z = (3.242424,86.8575)
  392.       stime = second()
  393.       do 6440 i = 1,loop
  394.  6440  zz1 = csin   ( z ) 
  395.       z1 = (second()-stime)*divis
  396.       write (*,2)  z1
  397.  
  398.       z = (3.242424,86.8575)
  399.       stime = second()
  400.       do 6450 i = 1,loop1
  401.  6450  zz1 = scsin  ( z ) 
  402.       z2 = (second()-stime)*divis
  403.       write ( *,2) z2
  404.  
  405.       write ( *,5) 
  406.  
  407.       dz (1) = 3.242424d0
  408.       dz (2) = 86.8575d0
  409.       stime = second()
  410.       do 6470 i = 1,loop1
  411.  6470  call dcsin ( dzz1, dz )
  412.       z4 = (second()-stime)*divis
  413.       write (*,2) z4
  414.  
  415.  
  416.       write (*,*) ' complex abs       '
  417.       r = 0.1
  418.       z = (3.242424,86.8575)
  419.       stime = second()
  420.       do 7140 i = 1,loop
  421.  7140  r = cabs ( z ) 
  422.       z1 = (second()-stime)*divis
  423.       write (*,2)  z1
  424.  
  425.       z = (3.242424,86.8575)
  426.       stime = second()
  427.       do 7150 i = 1,loop1
  428.  7150  r = scabs ( z )
  429.       z2 = (second()-stime)*divis
  430.       write ( *,2) z2
  431.  
  432.       write ( *,5) 
  433.  
  434.       dz (1) = 3.242424d0
  435.       dz (2) = 86.8575d0
  436.       stime = second()
  437.       do 7170 i = 1,loop1
  438.  7170  lr = dcabs ( dz )
  439.       z4 = (second()-stime)*divis
  440.       write (*,2) z4
  441.  
  442.  
  443.  
  444.       write (*,*) ' complex conjg     '
  445.       r = 0.1
  446.       z = (3.242424,86.8575)
  447.       stime = second()
  448.       do 8140 i = 1,loop
  449.  8140  z = conjg  ( z ) 
  450.       z1 = (second()-stime)*divis
  451.       write (*,2)  z1
  452.  
  453.       z = (3.242424,86.8575)
  454.       stime = second()
  455.       do 8150 i = 1,loop1
  456.  8150  z = sconjg ( z )
  457.       z2 = (second()-stime)*divis
  458.       write ( *,2) z2
  459.  
  460.       write ( *,5) 
  461.  
  462.       dz (1) = 3.242424d0
  463.       dz (2) = 86.8575d0
  464.       stime = second()
  465.       do 8170 i = 1,loop1
  466.  8170  call dconjg ( dz , dz )
  467.       z4 = (second()-stime)*divis
  468.       write (*,2) z4
  469.  
  470.  
  471.       write (*,*) ' complex div       '
  472.       r = 0.1
  473.       z = (3.242424,86.8575)
  474.       zz1 = ( 4.23765 , 7.64364)
  475.       stime = second()
  476.       do 9140 i = 1,loop
  477.  9140  zz2 = z / zz1
  478.       z1 = (second()-stime)*divis
  479.       write (*,2)  z1
  480.  
  481.       z = (3.242424,86.8575)
  482.       zz1 = ( 4.23765, 7.64364)
  483.       stime = second()
  484.       do 9150 i = 1,loop1
  485.  9150  zz2 = scdiv ( z , zz1 )
  486.       z2 = (second()-stime)*divis
  487.       write ( *,2) z2
  488.  
  489.       write ( *,5) 
  490.  
  491.       dz (1) = 3.242424d0
  492.       dz (2) = 86.8575d0
  493.       dzz1 ( 1 ) = 4.23765d0
  494.       dzz1 ( 2 ) = 7.64364d0
  495.       stime = second()
  496.       do 9170 i = 1,loop1
  497.  9170  call dcdiv ( dzz2 , dz , dzz1 )
  498.       z4 = (second()-stime)*divis
  499.       write (*,2) z4
  500.  
  501.  
  502.       write (*,*) ' complex add       '
  503.       r = 0.1
  504.       z = (3.242424,86.8575)
  505.       zz1 = ( 4.23765 , 7.64364)
  506.       stime = second()
  507.       do 9240 i = 1,loop
  508.  9240  zz2 = z + zz1
  509.       z1 = (second()-stime)*divis
  510.       write (*,2)  z1
  511.  
  512.       z = (3.242424,86.8575)
  513.       zz1 = ( 4.23765, 7.64364)
  514.       stime = second()
  515.       do 9250 i = 1,loop1
  516.  9250  zz2 = scadd ( z , zz1 )
  517.       z2 = (second()-stime)*divis
  518.       write ( *,2) z2
  519.  
  520.       write ( *,5) 
  521.  
  522.       dz (1) = 3.242424d0
  523.       dz (2) = 86.8575d0
  524.       dzz1 ( 1 ) = 4.23765d0
  525.       dzz1 ( 2 ) = 7.64364d0
  526.       stime = second()
  527.       do 9270 i = 1,loop1
  528.  9270  call dcadd ( dzz2 , dz , dzz1 )
  529.       z4 = (second()-stime)*divis
  530.       write (*,2) z4
  531.  
  532.  
  533.  
  534.       write (*,*) ' complex mul       '
  535.       r = 0.1
  536.       z = (3.242424,86.8575)
  537.       zz1 = ( 4.23765 , 7.64364)
  538.       stime = second()
  539.       do 9340 i = 1,loop
  540.  9340  zz2 = z * zz1
  541.       z1 = (second()-stime)*divis
  542.       write (*,2)  z1
  543.  
  544.       z = (3.242424,86.8575)
  545.       zz1 = ( 4.23765, 7.64364)
  546.       stime = second()
  547.       do 9350 i = 1,loop1
  548.  9350  zz2 = scmul ( z , zz1 )
  549.       z2 = (second()-stime)*divis
  550.       write ( *,2) z2
  551.  
  552.       write ( *,5) 
  553.  
  554.       dz (1) = 3.242424d0
  555.       dz (2) = 86.8575d0
  556.       dzz1 ( 1 ) = 4.23765d0
  557.       dzz1 ( 2 ) = 7.64364d0
  558.       stime = second()
  559.       do 9370 i = 1,loop1
  560.  9370  call dcmul ( dzz2 , dz , dzz1 )
  561.       z4 = (second()-stime)*divis
  562.       write (*,2) z4
  563.  
  564.  
  565.       write (*,*) ' complex sub       '
  566.       r = 0.1
  567.       z = (3.242424,86.8575)
  568.       zz1 = ( 4.23765 , 7.64364)
  569.       stime = second()
  570.       do 9440 i = 1,loop
  571.  9440  zz2 = z - zz1
  572.       z1 = (second()-stime)*divis
  573.       write (*,2)  z1
  574.  
  575.       z = (3.242424,86.8575)
  576.       zz1 = ( 4.23765, 7.64364)
  577.       stime = second()
  578.       do 9450 i = 1,loop1
  579.  9450  zz2 = scsub ( z , zz1 )
  580.       z2 = (second()-stime)*divis
  581.       write ( *,2) z2
  582.  
  583.       write ( *,5) 
  584.  
  585.       dz (1) = 3.242424d0
  586.       dz (2) = 86.8575d0
  587.       dzz1 ( 1 ) = 4.23765d0
  588.       dzz1 ( 2 ) = 7.64364d0
  589.       stime = second()
  590.       do 9470 i = 1,loop1
  591.  9470  call dcsub ( dzz2 , dz , dzz1 )
  592.       z4 = (second()-stime)*divis
  593.       write (*,2) z4
  594.  
  595.  
  596.  
  597.       write (*,4)
  598.  4    format ( ' ' , / ) 
  599.       stop
  600.       end
  601.  
  602.      
  603.