Ejemplo n.º 1
0
int main(int argc,char **argv)
{
   char cline[1024];
   char tempfmt[1024];
   char also[1024];
   int iarg;
   also[0] = '\0';
   fprintf(stderr,"[indcolcmp 1.1]\n");
   many_trantos = pipe_input = frc_suffix = 0;
   for (iarg=2;iarg<argc;++iarg){
        if (stricmp(&argv[iarg][1],"fs")==0) frc_suffix = 1;
        else if (stricmp(&argv[iarg][1],"pipe")==0) pipe_input = 1;
        else if (stricmp(&argv[iarg][1],"big")==0) many_trantos = 1;
        else if (stricmp(&argv[iarg][1],"many")==0) many_trantos = 1;
        else{
            if (strlen(also)>0) strcat(also," ");
            strcat(also,argv[iarg]);}}
   if (argc>1){
       /*
        *   First do individually modelled.
        */
       if (many_trantos){
           if (pipe_input){
               DO3("many_ind2coll %s.mod -cp -X%s_frc %%s >qqq_%s.mod");}
           else if (frc_suffix){
               DO4("many_ind2coll %s.mod -cp -X%s_frc %%s <%s_frc.mod >qqq_%s.mod");}
           else{
               DO4("many_ind2coll %s.mod -cp -Xind_%s %%s <ind_%s.mod >qqq_%s.mod");}}
       else{
           if (pipe_input){
               DO3("ind2coll %s.mod -cp -X%s_frc %%s >qqq_%s.mod");}
           else if (frc_suffix){
               DO4("ind2coll %s.mod -cp -X%s_frc %%s <%s_frc.mod >qqq_%s.mod");}
           else{
               DO4("ind2coll %s.mod -cp -Xind_%s %%s <ind_%s.mod >qqq_%s.mod");}}
       DO2("coll2sort %%s <qqq_%s.mod >zzz_%s.mod");
       DO2("coll2sort -cp %%s <zzz_%s.mod >ccc_%s.mod");
       DO2("coll2sort %%s <ccc_%s.mod >ind_%s.mod");
       /*
        *   Then do collectively modelled.
        */
       DO4("ind2coll %s.mod -cp %%s -X%s <%s.mod >hhh_%s.mod");
       DO2("coll2sort %%s <hhh_%s.mod >jjj_%s.mod");
#ifdef OBSOLETE
       DO2("coll2sort -cp %%s <%s.mod >jjj_%s.mod");
#endif
       DO2("coll2sort -cp %%s <jjj_%s.mod >sss_%s.mod");
       DO2("coll2sort %%s <sss_%s.mod >col_%s.mod");
       /*
        *   Then take differences
        */
       DO3("diff ind_%s.mod col_%s.mod >%s.moddf");}
   return(0);
}
Ejemplo n.º 2
0
static int optimize(int n, int *A)
{
     int i, j, k, changed, cst, cstmax;

     do {
	  changed = 0;
	  for (i = 0; i < n; ++i) {
	       k = i + i;
	       DO(i, i, k, sqcost);
	  }

	  for (i = 0; i < n; ++i) {
	       for (j = 0; j <= i; ++j) {
		    k = i + j;
		    DO(i, j, k, mulcost);
		    k = i - j;
		    DO(i, j, k, mulcost);

		    k = i + j;
		    DO3(i, j, i - j, k, reflcost);
	       }
	  }

     } while (changed);

     cst = cstmax = 0;
     for (i = 0; i < n; ++i) {
	  cst += A[i];
	  if (A[i] > cstmax) cstmax = A[i];
     }
/*     return cstmax; */
     return cst;
}