cuiksimplify.c
Go to the documentation of this file.
1 
2 #include "cuiksystem.h"
3 #include "parameters.h"
4 
5 #include "defines.h"
6 #include "error.h"
7 #include "filename.h"
8 
9 #include <string.h>
10 #include <stdlib.h>
11 #include <time.h>
12 #include <unistd.h>
13 
14 
72 int main(int argc, char **arg)
73 {
74  TCuikSystem cuiksystem; /* The set of equations */
75  Tparameters parameters; /* Parameters used in the Cuik process */
76 
77  Tfilename fcuik;
78  Tfilename fcuiksimp;
79  Tfilename fparam;
80 
81  FILE *fs;
82 
83  if (argc>1)
84  {
85 
86  /*Init parameters*/
87  CreateFileName(NULL,arg[1],NULL,PARAM_EXT,&fparam);
88  #if (_DEBUG>0)
89  printf("Reading parameter file : %s\n",GetFileFullName(&fparam));
90  #endif
91  InitParametersFromFile(GetFileFullName(&fparam),&parameters);
92 
93  /*keep equations in the original form*/
94  ChangeParameter(CT_DUMMIFY,0,&parameters);
95  /*don not add dynamic equations (already added when generating the cuik file)*/
96  ChangeParameter(CT_DYNAMICS,0,&parameters);
97 
98  /*Read the problem from file*/
99  CreateFileName(NULL,arg[1],NULL,CUIK_EXT,&fcuik);
100  #if (_DEBUG>0)
101  printf("Reading cuik file : %s\n",GetFileFullName(&fcuik));
102  #endif
103  InitCuikSystemFromFile(&parameters,GetFileFullName(&fcuik),&cuiksystem);
104 
105  /*Save the simplified system (with a header with the human readable
106  simplification)*/
107  CreateFileName(NULL,arg[1],"_simp",CUIK_EXT,&fcuiksimp);
108  fs=fopen(GetFileFullName(&fcuiksimp),"w");
109  if (!fs)
110  Error("Could not open the output file for the simplified cuiksystem.");
111  #if (_DEBUG>0)
112  printf("Generating simplified cuik file : %s\n",GetFileFullName(&fcuiksimp));
113  #endif
114  PrintCuikSystemWithSimplification(&parameters,fs,&cuiksystem);
115  fclose(fs);
116 
117  /* link the parameters */
118  LinkFileNameWithExtension(arg[1],PARAM_EXT ,&fcuiksimp);
119 
120  /*Remove the allocated objects*/
121  DeleteParameters(&parameters);
122  DeleteCuikSystem(&cuiksystem);
123 
124  DeleteFileName(&fparam);
125  DeleteFileName(&fcuik);
126  DeleteFileName(&fcuiksimp);
127 
128  }
129  else
130  {
131  fprintf(stderr," Wrong number of parameters.\n");
132  fprintf(stderr," Use:\n");
133  fprintf(stderr," cuiksimplify <problem filename>.cuik \n");
134  fprintf(stderr," where <problem filename> contains the kinematic equations\n");
135  fprintf(stderr," (the '.cuik' extension is not required)\n");
136  }
137  return(EXIT_SUCCESS);
138 }
139