multplot.spt









































#include <splot.h>

int i,j;
double calc[11][4];
double *data;

double calc2[11][4];
double *data2;

double calc3[11][4];
double *data3;

main() 
   {   
   /* read in data files */
   readdata("demo\mult1.dat",data);
   readdata("demo\mult2.dat",data2);
   readdata("demo\mult3.dat",data3);
       
   /* average batch values */
   for (i = 0; i < 11;i++)
      {
      for (j = 0;j < 10;j++)
         {
         calc[i][0] += data[i * 10 + j][0];
         calc[i][1] += data[i * 10 + j][1];
         calc[i][2] += data[i * 10 + j][2];
         calc[i][3] += data[i * 10 + j][3];
         calc2[i][0] += data2[i * 10 + j][0];
         calc2[i][1] += data2[i * 10 + j][1];
         calc2[i][2] += data2[i * 10 + j][2];
         calc2[i][3] += data2[i * 10 + j][3];
         calc3[i][0] += data3[i * 10 + j][0];
         calc3[i][1] += data3[i * 10 + j][1];
         calc3[i][2] += data3[i * 10 + j][2];
         calc3[i][3] += data3[i * 10 + j][3];
         }
      calc[i][0] /= 10;
      calc[i][1] /= 10;
      calc[i][2] /= 10;
      calc[i][3] /= 10;
      calc2[i][0] /= 10;
      calc2[i][1] /= 10;
      calc2[i][2] /= 10;
      calc2[i][3] /= 10;
      calc3[i][0] /= 10;
      calc3[i][1] /= 10;
      calc3[i][2] /= 10;
      calc3[i][3] /= 10;
      }

   abox(8,6,5,19.25);
   ascale(YAXES,0,100);
   ascale(XAXES,calc,0);

   /* set(YMULT,10);*/
   set(FONTMULT,0.7);
   set(TICKLENGTH,-0.2);
       
   tickmarks();
   ticklabel();

   text(14.03,22.25,"1024 Data Items");

   set(PLOTTYPE,SYM_LINES);
   set(AXESCLIP,ON);
   set(CURSYMBOL,OSQUARE);

   set(LINECOLOUR,RED);
   set(LINESTYLE,SOLID);
   drawdata(calc,0,1);

   set(CURSYMBOL,CROSS);
   set(LINECOLOUR,BLACK);
   set(LINESTYLE,DASHED);
   drawdata(calc,0,2);

   set(CURSYMBOL,OCIRCLE);
   set(LINECOLOUR,GREEN);
   set(LINESTYLE,DOTTED);
   drawdata(calc,0,3);

   /* the second data set */
   set(LINECOLOUR,BLACK);
   set(LINESTYLE,SOLID);

   abox(8,6,5,11);
   ascale(YAXES,calc2,1);
   ascale(XAXES,calc2,0);

   tickmarks();
   ticklabel();

   label(LEFT,"Throughput (TPS)");
   text(14.03,14,"128 Data Items");

   set(CURSYMBOL,OSQUARE);

   set(LINECOLOUR,RED);
   set(LINESTYLE,SOLID);
   drawdata(calc2,0,1);

   set(CURSYMBOL,CROSS);
   set(LINECOLOUR,BLACK);
   set(LINESTYLE,DASHED);
   drawdata(calc2,0,2);

   set(CURSYMBOL,OCIRCLE);
   set(LINECOLOUR,GREEN);
   set(LINESTYLE,DOTTED);
   drawdata(calc2,0,3);

   /* the third data set */
   set(LINECOLOUR,BLACK);
   set(LINESTYLE,SOLID);

   abox(8,6,5,2.75);
   ascale(YAXES,0,10);
   ascale(XAXES,calc3,0);

   tickmarks();
   ticklabel();

   text(14.03,5.75,"16 Data Items");

   set(CURSYMBOL,OSQUARE);

   set(LINECOLOUR,RED);
   set(LINESTYLE,SOLID);
   moveto(5.76,24.5);
   symbol(OSQUARE);
   rlineto(1.5,0);
   symbol(OSQUARE);
   drawdata(calc3,0,1);

   set(CURSYMBOL,CROSS);
   set(LINECOLOUR,BLACK);
   set(LINESTYLE,DASHED);
   moveto(5.76,23.6);
   symbol(CROSS);
   rlineto(1.5,0);
   symbol(CROSS);
   drawdata(calc3,0,2);

   set(CURSYMBOL,OCIRCLE);
   set(LINECOLOUR,GREEN);
   set(LINESTYLE,DOTTED);
   moveto(5.76,22.7);
   symbol(OCIRCLE);
   rlineto(1.5,0);
   symbol(OCIRCLE);
   drawdata(calc3,0,3);

   set(LINECOLOUR,BLACK);
   set(LINESTYLE,SOLID);

   label(BOTTOM,"Multi Programming Level");
   text(7.53,24.5,"MTL");
   text(7.53,23.6,"TPL");
   text(7.53,22.7,"TSO");
   }