home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume21 / cloops / part01 / test.c < prev    next >
C/C++ Source or Header  |  1991-07-25  |  4KB  |  168 lines

  1. /*
  2.  * This file is part of the Livermore Loops transliteration into C.
  3.  * Copyright (C) 1991 by Martin Fouts
  4.  *
  5.  * This program is free software; you can redistribute it and/or modify
  6.  * it under the terms of the GNU General Public License as published by
  7.  * the Free Software Foundation; either version 1, or (at your option)
  8.  * any later version.
  9.  *
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  * GNU General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with this program; if not, write to the Free Software
  17.  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18.  */
  19.  
  20. #include "types.h"
  21. #include "externs.h"
  22.  
  23. Float sumo();
  24. Float sumo2();
  25. Float sumo3();
  26. Void values();
  27. Void sizes();
  28. Void lsignal();
  29. Float second();
  30. static Float start = 0.0;
  31.  
  32. #define TEST(x) ((DoTest & (1<<(x-1))) == (1<<(x-1)))
  33.  
  34. extern long int DoTest;
  35.  
  36. Void test(i)
  37. Int i;
  38. {
  39.   Float tempus;
  40. /*Float cache[8192];*/
  41.   Int nn, np, mm, k;
  42.  
  43.   tempus= second((Float)0.0) - start;
  44.   nn= n;
  45.   np= lp;
  46.   if( i == 0 )  goto l_100;
  47.   if (!TEST(i)) goto l_100;
  48.   sizes(i-1);
  49.   Time[i-1] = tempus;
  50.   switch((int)i) {
  51.   case 1:
  52.     csum [0] =  sumo ( x, (int)n);
  53.     loops[0] =  np*nn;
  54.     break;
  55.   case 2:
  56.     csum [1] =  sumo ( x, (int)n);
  57.     loops[1] =  np*(nn-4);
  58.     break;
  59.   case 3:
  60.     csum [2] =  q;
  61.     loops[2] =  np*nn;
  62.     break;
  63.   case 4:
  64.     mm= (1001-7)/2;
  65.     for (k = 6 ; k < 1001; k += mm)
  66.       v[k]= x[k];
  67.     csum [3] = sumo ( v, 3);
  68.     loops[3] =  np*(((nn-5)/5)+1)*3;
  69.     break;
  70.   case 5:
  71.     csum [4] =  sumo ( &x[1], (int)(n-1));
  72.     loops[4] =  np*(nn-1);
  73.     break;
  74.   case 6:
  75.     csum [5] =  sumo ( w, (int)n);
  76.     loops[5] =  np*nn*((nn-1)/2);
  77.     break;
  78.   case 7:
  79.     csum [6] =  sumo ( x, (int)n);
  80.     loops[6] =  np*nn;
  81.     break;
  82.   case 8:
  83.     csum [7] = sumo3 ( &u1[0][0][0],5,(int)n,2,5,101,2)
  84.              + sumo3( &u2[0][0][0],5,(int)n,2,5,101,2)
  85.          + sumo3( &u3[0][0][0],5,(int)n,2,5,101,2);
  86.     loops[7] =  np*(nn-1)*2;
  87.     break;
  88.   case 9:
  89.     csum [8] =  sumo2 ( &px[0][0], 15,(int)n, 25, 101);
  90.     loops[8] =  np*nn;
  91.     break;
  92.   case 10:
  93.     csum [9] =  sumo2 ( &px[0][0], 15,(int)n, 25, 101);
  94.     loops[9] =  np*nn;
  95.     break;
  96.   case 11:
  97.     csum [10] =  sumo ( &x[1], (int)(n-1));
  98.     loops[10] =  np*(nn-1);
  99.     break;
  100.   case 12:
  101.     csum [11] =  sumo ( x, (int)n-1);
  102.     loops[11] =  np*(nn-1);
  103.     break;
  104.   case 13:
  105.     csum [12] =  sumo2 ( &p[0][0], 8, (int)n, 4, 512)
  106.                + sumo2 ( &h[0][0], 8, (int)n, 64, 64);
  107.     loops[12] =  np*nn;
  108.     break;
  109.   case 14:
  110.     csum [13] =  sumo ( vx, (int)n) + sumo ( xx, (int)n) + sumo ( rh,67);
  111.     loops[13] =  np*nn;
  112.     break;
  113.   case 15:
  114.     csum [14] =  sumo2 ( &vy[0][0], (int)n, 7, 101, 25)
  115.       + sumo2 ( &vs[0][0], (int)n, 7, 101, 7);
  116.     loops[14] =  np*(nn-1)*5;
  117.     break;
  118.   case 16:
  119.     csum [15] =  (Float)( k3+k2+j5+m+2);
  120.     nrops[15] =  k2+k2+10*k3;
  121.     loops[15] =  1;
  122.     break;
  123.   case 17:
  124.     csum [16] =  sumo ( vxne, (int)n) + sumo ( vxnd, (int)n) + xnm;
  125.     loops[16] =  np*nn;
  126.     break;
  127.   case 18:
  128.     csum [17] =  sumo2 ( &zr[0][0], (int)n, 7, 101, 7)
  129.       + sumo2 ( &zz[0][0], (int)n, 7, 101, 7);
  130.     loops[17] =  np*(nn-1)*5;
  131.     break;
  132.   case 19:
  133.     csum [18] =  sumo ( b5, (int)n) + stb5;
  134.     loops[18] =  np*nn;
  135.     break;
  136.   case 20:
  137.     csum [19] =  sumo ( &d[1], (int)n);
  138.     loops[19] =  np*nn;
  139.     break;
  140.   case 21:
  141.     csum [20] =  sumo2 ( &px[0][0], (int)n, (int)n, 25, 101);
  142.     loops[20] =  np*nn*nn*nn;
  143.     break;
  144.   case 22:
  145.     csum [21] =  sumo ( w, (int)n);
  146.     loops[21] =  np*nn;
  147.     break;
  148.   case 23:
  149.     csum [22] =  sumo2 ( &za[0][0], (int)n, 7, 101, 7);
  150.     loops[22] =  np*(nn-1)*5;
  151.     break;
  152.   case 24:
  153.     csum [23] =  (Float)m;
  154.     loops[23] =  np*(nn-1);
  155.     break;
  156.   case 25:
  157.       break;
  158.   }
  159. l_100:
  160.   sizes(i);
  161.   values(i);
  162. /*  lsignal( cache, 1.0, 0.0, 8192);*/
  163. l_101:
  164.   start= second(0.0);
  165.   return;
  166. }
  167.  
  168.