cuiksample.c
Go to the documentation of this file.
1 #include "box.h"
2 #include "random.h"
3 #include "defines.h"
4 #include "filename.h"
5 #include "cuiksystem.h"
6 
7 #include <stdlib.h>
8 
48 int main(int argc, char **arg)
49 {
50  if (argc>2)
51  {
52  Tparameters parameters;
53  TCuikSystem cuiksystem;
54 
55  Tfilename fcuik;
56  Tfilename fparam;
57 
58  unsigned int ndof,nsamples;
59  unsigned int ri;
60 
61  ri=(unsigned int)time(NULL);
62  //ri=1405333052;
63  randomSet(ri);
64 
65  /*Init parameters*/
66  CreateFileName(NULL,arg[1],NULL,PARAM_EXT,&fparam);
67  InitParametersFromFile(GetFileFullName(&fparam),&parameters);
68  fprintf(stderr,"Reading parameters from : %s\n",GetFileFullName(&fparam));
69 
70  /* Read the problem file */
71  CreateFileName(NULL,arg[1],NULL,CUIK_EXT,&fcuik);
72  InitCuikSystemFromFile(&parameters,GetFileFullName(&fcuik),&cuiksystem);
73  fprintf(stderr,"Reading cuik file : %s\n",GetFileFullName(&fcuik));
74 
75  ndof=(unsigned int)GetParameter(CT_N_DOF,&parameters);
76  if (ndof==0)
77  ndof=NO_UINT;
78 
79  nsamples=atoi(arg[2]);
80 
81  SampleCuikSystem(&parameters,arg[1],NULL,nsamples,NO_UINT,ndof,&cuiksystem);
82 
83  DeleteCuikSystem(&cuiksystem);
84  DeleteParameters(&parameters);
85 
86  DeleteFileName(&fcuik);
87  DeleteFileName(&fparam);
88  }
89  else
90  {
91  fprintf(stderr," Wrong number of parameters.\n");
92  fprintf(stderr," Use:\n");
93  fprintf(stderr," cuiksample <problem filename>.cuik <num samples>\n");
94  fprintf(stderr," where <problem filename> contains the kinematic equations\n");
95  fprintf(stderr," <num samples> the number of samples to generate\n");
96  fprintf(stderr," (the '.cuik' extension is not required)\n");
97  }
98 
99  return(EXIT_SUCCESS);
100 }
boolean SampleCuikSystem(Tparameters *p, char *fname, Tlist *sb, unsigned int nsamples, unsigned int ntries, unsigned int ndof, TCuikSystem *cs)
Generates samples for a cuiksystem.
Definition: cuiksystem.c:2988
Data structure to hold the information about the name of a file.
Definition: filename.h:271
void DeleteCuikSystem(TCuikSystem *cs)
Destructor.
Definition: cuiksystem.c:5450
int main(int argc, char **arg)
Main body of the cuiksample application.
Definition: cuiksample.c:48
Definition of the Tfilename type and the associated functions.
#define PARAM_EXT
File extension for parameter files.
Definition: filename.h:132
#define CUIK_EXT
File extension for equation files.
Definition: filename.h:71
void DeleteFileName(Tfilename *fn)
Destructor.
Definition: filename.c:205
Definition of the Tbox type and the associated functions.
Definitions of constants and macros used in several parts of the cuik library.
void InitCuikSystemFromFile(Tparameters *p, char *filename, TCuikSystem *cs)
Constructor from a file.
A table of parameters.
Definition of the TCuikSystem type and the associated functions.
void CreateFileName(char *path, char *name, char *suffix, char *ext, Tfilename *fn)
Constructor.
Definition: filename.c:22
void InitParametersFromFile(char *file, Tparameters *p)
Constructor from a file.
Definition: parameters.c:51
char * GetFileFullName(Tfilename *fn)
Gets the file full name (paht+name+extension).
Definition: filename.c:151
A cuiksystem, i.e., a set of variables and equations defining a position analysis problem...
Definition: cuiksystem.h:181
#define NO_UINT
Used to denote an identifier that has not been initialized.
Definition: defines.h:435
void DeleteParameters(Tparameters *p)
Destructor.
Definition: parameters.c:294
double GetParameter(unsigned int n, Tparameters *p)
Gets the value for a particular parameter.
Definition: parameters.c:93
#define CT_N_DOF
Dimensionality of the solution space for the mechanism at hand.
Definition: parameters.h:318
Definition of basic randomization functions.
void randomSet(unsigned int seed)
Sets the random seed.
Definition: random.c:25