cuiksystem.h
Go to the documentation of this file.
1 #ifndef CUIKSYSTEMH
2 #define CUIKSYSTEMH
3 
4 #include "constants.h"
5 #include "equations.h"
6 #include "variables.h"
7 #include "statistics.h"
8 #include "list.h"
9 #include "box_list.h"
10 #include "parameters.h"
11 #include "box.h"
12 #include "boolean.h"
13 #include "vector.h"
14 #include "csmapping.h"
15 #include "jacobian.h"
16 
17 #include <stdlib.h>
18 
19 
27 /************************************************************************************/
28 
38 #define EQ_MIN_IN_CENTER 0
39 
46 #define NEWTON_WITHIN_RANGES 0
47 
48 /************************************************************************************/
54 #define DEPTH_FIRST_SEARCH 1
55 /************************************************************************************/
56 
57 /************************************************************************************/
63 #define BREADTH_FIRST_SEARCH 2
64 /************************************************************************************/
65 
66 /************************************************************************************/
76 #define MINIMIZATION_SEARCH 3
77 /************************************************************************************/
78 
79 /************************************************************************************/
87 #if (RANDOMNESS)
88  #define CUT_POINT 0.45+0.1*randomDouble()
89 #else
90  #define CUT_POINT 0.5
91 #endif
92 /************************************************************************************/
93 
94 /************************************************************************************/
100 #define MPI_TREAT_BOX_TIMEOUT(cs) (cs->nvariables*SIMPLEX_TIMEOUT*10)
101 /************************************************************************************/
102 
103 
104 /************************************************************************************/
111 #define DIVERGED 1
112 /************************************************************************************/
113 
114 /************************************************************************************/
124 #define CONVERGED_IN_BOX 2
125 /************************************************************************************/
126 
127 
128 /************************************************************************************/
138 #define CONVERGED_IN_GLOBAL 4
139 /************************************************************************************/
140 
141 /************************************************************************************/
150 #define CONVERGED_OUTSIDE_GLOBAL 8
151 /************************************************************************************/
152 
158 #define CONVERGED (CONVERGED_IN_BOX|CONVERGED_IN_GLOBAL|CONVERGED_OUTSIDE_GLOBAL)
159 /************************************************************************************/
160 
181 typedef struct {
184  boolean updated;
185  boolean consistent;
187  boolean empty;
188  boolean scalar;
193  unsigned int searchMode;
197  /******************************************************************************/
198  /* SIMPLIFIED AND DUMMIFIED SUB-SYTEM */
204  unsigned int nequations;
205  unsigned int nvariables;
206  boolean *systemVar;
208  boolean *notDummyVar;
210  unsigned int *varType;
216  /******************************************************************************/
217  /* SIMPLIFIED SUB-SYTEM */
220  boolean simp_empty;
225  unsigned int simp_nequations;
226  unsigned int simp_nvariables;
227  unsigned int simp_nee;
229  unsigned int *simp_tp;
234  /******************************************************************************/
235  /* ORIGINAL SUB-SYTEM */
239  unsigned int orig_nequations;
240  unsigned int orig_nvariables;
241  boolean *orig_systemVar;
248  boolean *orig_notDummyVar;
250  char **orig_varNames;
252 } TCuikSystem;
253 
254 
255 /****************************************************************************/
256 /* Methods to initialize/define/re-define CuikSystems (constructors et al.) */
257 /****************************************************************************/
258 
266 void InitCuikSystem(TCuikSystem *cs);
267 
268 
282 void InitCuikSystemFromFile(Tparameters *p,char *filename,TCuikSystem *cs);
283 
299 void AddCuikSystemFromFile(Tparameters *p,char *filename,TCuikSystem *cs);
300 
313 
322 void CopyCuikSystem(TCuikSystem *cs_dst,TCuikSystem *cs_src);
323 
341 
342 
362 boolean CmpBoxesEquation(void *b1,void *b2,void *cs);
363 
381 void SetCSSearchMode(unsigned int sm,Tequation *eqMin,TCuikSystem *cs);
382 
401 void AddTerm2SearchCriterion(double w,unsigned int v,double val,TCuikSystem *cs);
402 
403 /****************************************************************************/
404 /* Methods to add individual variables/equations to the cuik system */
405 /****************************************************************************/
406 
419 unsigned int AddVariable2CS(Tvariable *v,TCuikSystem *cs);
420 
432 
445 
446 /****************************************************************************/
447 /* Methods to access the data stored in the CuikSystem. */
448 /* These methods provide controlled access to the stored data so that the */
449 /* higher levels can not introduce inconsistancies in the CuikSystem */
450 /****************************************************************************/
451 
465 
478 void GetCSVariableNames(char **varNames,TCuikSystem *cs);
479 
489 unsigned int GetCSNumVariables(TCuikSystem *cs);
490 
491 
502 unsigned int GetCSNumSystemVariables(TCuikSystem *cs);
503 
514 unsigned int GetCSNumNonDummyVariables(TCuikSystem *cs);
515 
516 
530 void GetCSVariable(unsigned int n,Tvariable *v,TCuikSystem *cs);
531 
545 void SetCSVariableRange(unsigned int n,Tinterval *r,TCuikSystem *cs);
546 
558 unsigned int GetCSVariableID(char *name,TCuikSystem *cs);
559 
571 char *GetCSVariableName(unsigned int id,TCuikSystem *cs);
572 
584 boolean IsSystemVarInSimpCS(Tparameters *p,char *v,TCuikSystem *cs);
585 
602 unsigned int GetCSSystemVars(boolean **sv,TCuikSystem *cs);
603 
604 
615 unsigned int GetCSVarTopology(unsigned int vID,TCuikSystem *cs);
616 
628 void GetCSEquations(Tequations *eqs,TCuikSystem *cs);
629 
639 unsigned int GetCSNumEquations(TCuikSystem *cs);
640 
653 void GetCSEquation(unsigned int n,Tequation *eq,TCuikSystem *cs);
654 
668 boolean IsCSPolynomial(TCuikSystem *cs);
669 
679 boolean IsCSScalar(TCuikSystem *cs);
680 
695 void GetCSJacobian(TJacobian *J,TCuikSystem *cs);
696 
716 unsigned int GetSimpCSTopology(Tparameters *p,
717  unsigned int **t,TCuikSystem *cs);
718 
730  TJacobian *J,
731  TCuikSystem *cs);
732 
748 void AddJacobianEquations(Tparameters *p,boolean *selectedVars,TCuikSystem *cs);
749 
765 void AddSimplifiedJacobianEquations(Tparameters *p,boolean *selectedVars,TCuikSystem *cs);
766 
767 /****************************************************************************/
768 /* Methods to solve the CuikSystem. */
769 /****************************************************************************/
770 
787 unsigned int MaxReduction(Tparameters *p,unsigned int varMask,double *r,Tbox *b,TCuikSystem *cs);
788 
832 boolean SampleCuikSystem(Tparameters *p,char *fname,Tlist *sb,
833  unsigned int nsamples,unsigned int ntries,
834  unsigned int ndof,TCuikSystem *cs);
835 
866 boolean SampleCuikSystemInBox(Tparameters *p,char *fname,Tlist *sb,
867  unsigned int nsamples,unsigned int ntries,
868  unsigned int ndof,
869  Tbox *init_box,TCuikSystem *cs);
870 
871 
899 boolean IncrementalSampleCuikSystem(Tparameters *p,char *fname,Tlist *sb,
900  boolean *fixVars,
901  unsigned int nsamples,unsigned int ntries,
902  unsigned int ndof,TCuikSystem *cs);
931 boolean IncrementalSampleCuikSystemInBox(Tparameters *p,char *fname,Tlist *sb,
932  boolean *fixVars,
933  unsigned int nsamples,unsigned int ntries,
934  unsigned int ndof,
935  Tbox *init_box,TCuikSystem *cs);
936 
967 unsigned int CuikNewtonSimp(Tparameters *p,double *x,TCuikSystem *cs);
968 
997 unsigned int CuikNewtonInBox(Tparameters *p,
998  Tbox *box,double *sol,Tbox *b_sol,TCuikSystem *cs);
999 
1022 boolean CuikNewton(Tparameters *p,double *sol,Tbox *b_sol,TCuikSystem *cs);
1023 
1024 
1058  boolean restart,char *fstate,Tbox *searchSpace,
1059  FILE *f_out,Tlist *sol,TCuikSystem *cs);
1060 
1061 #if (_USE_MPI)
1062 
1090  boolean restart,char *fstate,Tbox *searchSpace,
1091  FILE *f_out,TCuikSystem *cs);
1103  void MPI_TreatBox(Tparameters *p,TCuikSystem *cs);
1104 #endif
1105 
1106 
1107 /****************************************************************************/
1108 /* Auxiliary Methods. */
1109 /****************************************************************************/
1121 void GenerateInitialBox(Tbox *box,TCuikSystem *cs);
1122 
1133 
1162 boolean RegenerateSolution(Tparameters *p,Tbox *b,TCuikSystem *cs);
1163 
1180 unsigned int RegenerateSolutionPoint(Tparameters *p,double *pt,double **rp,TCuikSystem *cs);
1181 
1203 void RegenerateOriginalBox(Tparameters *p,Tbox *boxS,Tbox *boxO,TCuikSystem *cs);
1204 
1223 unsigned int RegenerateOriginalPoint(Tparameters *p,double *s,double **o,TCuikSystem *cs);
1224 
1238 unsigned int GenerateSimplifiedPoint(Tparameters *p,double *o,double **s,TCuikSystem *cs);
1239 
1253 unsigned int ComputeSplitDim(Tparameters *p,Tbox *b,TCuikSystem *cs);
1254 
1273 boolean PointInSystemBox(Tvector *v,Tbox *b,TCuikSystem *cs);
1274 
1288 void EvaluateCSEquations(double *p,double *r,TCuikSystem *cs);
1289 
1308 void EvaluateSimpCSEquations(Tparameters *pr,double *p,double *r,TCuikSystem *cs);
1309 
1325 void EvaluateSubSetSimpCSEquations(Tparameters *pr,boolean *se,double *p,double *r,TCuikSystem *cs);
1326 
1341 double ErrorInCSEquations(double *p,TCuikSystem *cs);
1342 
1363 double ErrorInSimpCSEquations(Tparameters *pr,double *p,TCuikSystem *cs);
1364 
1376 double EvaluateCSCost(Tparameters *p,boolean simp,double *s,void *cs);
1377 
1393 void EvaluateCSJacobian(double *p,double ***J,TCuikSystem *cs);
1394 
1410 double ErrorInSolution(Tbox *b,TCuikSystem *cs);
1411 
1429 double ErrorInInequalities(Tbox *b,TCuikSystem *cs);
1430 
1444 boolean InequalitiesHoldOnPoint(double *p,TCuikSystem *cs);
1445 
1460 boolean SimpInequalitiesHoldOnPoint(Tparameters *pr,double *p,TCuikSystem *cs);
1461 
1475 double ErrorInSimpInequalitiesOnPoint(Tparameters *pr,double *p,TCuikSystem *cs);
1476 
1477 
1478 /****************************************************************************/
1479 /* Output the information in the CuikSystem */
1480 /****************************************************************************/
1481 
1491 void PrintCuikSystem(Tparameters *p,FILE *f,TCuikSystem *cs);
1492 
1507 
1508 
1519 
1520 
1521 /****************************************************************************/
1522 /* Destructor */
1523 /****************************************************************************/
1524 
1532 void DeleteCuikSystem(TCuikSystem *cs);
1533 
1534 #endif
unsigned int GenerateSimplifiedPoint(Tparameters *p, double *o, double **s, TCuikSystem *cs)
Generates a simplified point.
Definition: cuiksystem.c:4725
Definition of the boolean type.
Set of variables of a cuiksystem.
Definition: variables.h:38
unsigned int MaxReduction(Tparameters *p, unsigned int varMask, double *r, Tbox *b, TCuikSystem *cs)
Reduces a box as much as possible.
Definition: cuiksystem.c:2908
void MPI_SolveCuikSystem(Tparameters *p, boolean restart, char *fstate, Tbox *searchSpace, FILE *f_out, TCuikSystem *cs)
Determines the solution set for a cuiksystem. Main scheduler.
Definition: cuiksystem.c:4103
boolean RegenerateSolution(Tparameters *p, Tbox *b, TCuikSystem *cs)
Regenerates a box from the system variables.
Definition: cuiksystem.c:4596
void GenerateInitialBox(Tbox *box, TCuikSystem *cs)
Gives the search space in the form of a box.
Definition: cuiksystem.c:4583
A table of constants.
Definition: constants.h:53
unsigned int RegenerateSolutionPoint(Tparameters *p, double *pt, double **rp, TCuikSystem *cs)
Regenerates a solution point from the system variables.
Definition: cuiksystem.c:4660
double ErrorInSolution(Tbox *b, TCuikSystem *cs)
Maximum error for a box.
Definition: cuiksystem.c:4885
Definition of the Tvariables type and the associated functions.
Tequations orig_equations
Definition: cuiksystem.h:236
boolean * systemVar
Definition: cuiksystem.h:206
boolean SimpInequalitiesHoldOnPoint(Tparameters *pr, double *p, TCuikSystem *cs)
Tests if all simplified inqualities hold for a given point.
Definition: cuiksystem.c:4973
void AddEquation2CS(Tparameters *p, Tequation *eq, TCuikSystem *cs)
Adds an equation to the system.
Definition: cuiksystem.c:2481
void GetSimpCSJacobian(Tparameters *p, TJacobian *J, TCuikSystem *cs)
Defines the Jacobian of a simplified CuikSystem.
Definition: cuiksystem.c:2683
Definition of the TJacobian type and the associated functions.
boolean * orig_notDummyVar
Definition: cuiksystem.h:248
double ErrorInCSEquations(double *p, TCuikSystem *cs)
Evalates the norm of the error in a point.
Definition: cuiksystem.c:4826
void SaveCuikSystemSimplification(Tparameters *p, FILE *f, TCuikSystem *cs)
Saves the simplification information associated with a cuiksystem.
Definition: cuiksystem.c:5102
Tvariables simp_variables
Definition: cuiksystem.h:223
void PrintCuikSystemWithSimplification(Tparameters *p, FILE *f, TCuikSystem *cs)
Prints the simplified cuiksystem.
Definition: cuiksystem.c:5047
Definition of a table of Tconstants.
char ** orig_varNames
Definition: cuiksystem.h:250
unsigned int ComputeSplitDim(Tparameters *p, Tbox *b, TCuikSystem *cs)
Determines the best dimensions to split a given box.
Definition: cuiksystem.c:4742
unsigned int AddVariable2CS(Tvariable *v, TCuikSystem *cs)
Adds a variable to the system.
Definition: cuiksystem.c:2511
Tequations equations
Definition: cuiksystem.h:201
double ErrorInSimpCSEquations(Tparameters *pr, double *p, TCuikSystem *cs)
Evaluates the norm of the error in a point for the simplified equations.
Definition: cuiksystem.c:4845
void CuikSystemMerge(Tparameters *p, TCuikSystem *cs1, TCuikSystem *cs2, TCuikSystem *cs)
Produces the union of two cuik systems.
Definition: cuiksystem.c:2320
unsigned int GetCSNumNonDummyVariables(TCuikSystem *cs)
Gets the number of non-dummy variables already in the cuiksystem.
Definition: cuiksystem.c:2558
Mapping between the sets of variables in two different cuiksystems.
Definition: csmapping.h:53
unsigned int searchMode
Definition: cuiksystem.h:193
Tmapping * orig2sd
Definition: cuiksystem.h:199
unsigned int orig_nequations
Definition: cuiksystem.h:239
boolean simp_empty
Definition: cuiksystem.h:220
void InitCuikSystem(TCuikSystem *cs)
Constructor.
Definition: cuiksystem.c:2155
Definition of the Tstatistics type and the associated functions.
unsigned int GetCSNumVariables(TCuikSystem *cs)
Gets the number of variables already in the cuiksystem.
Definition: cuiksystem.c:2544
Matrix equation.
Definition: mequation.h:38
unsigned int CuikNewtonInBox(Tparameters *p, Tbox *box, double *sol, Tbox *b_sol, TCuikSystem *cs)
Applies Newton-Rhapson to a set of equations.
Definition: cuiksystem.c:3667
void SolveCuikSystem(Tparameters *p, boolean restart, char *fstate, Tbox *searchSpace, FILE *f_out, Tlist *sol, TCuikSystem *cs)
Determines the solution set for a cuiksystem.
Definition: cuiksystem.c:3926
Collection of methods to work on Tlist of boxes.
void AddSimplifiedJacobianEquations(Tparameters *p, boolean *selectedVars, TCuikSystem *cs)
Adds linear a linear combination of the Jacobian to the system.
Definition: cuiksystem.c:2788
unsigned int GetCSNumSystemVariables(TCuikSystem *cs)
Gets the number of system variables already in the cuiksystem.
Definition: cuiksystem.c:2549
void AddJacobianEquations(Tparameters *p, boolean *selectedVars, TCuikSystem *cs)
Adds linear a linear combination of the Jacobian to the system.
Definition: cuiksystem.c:2758
void GenerateSimpInitialBox(Tparameters *p, Tbox *box, TCuikSystem *cs)
Gives the search space in the form of a box for the simplified system.
Definition: cuiksystem.c:4588
void CopyCuikSystem(TCuikSystem *cs_dst, TCuikSystem *cs_src)
Copy constructor.
Definition: cuiksystem.c:2204
boolean scalar
Definition: cuiksystem.h:188
void MPI_TreatBox(Tparameters *p, TCuikSystem *cs)
Determines the solution set for a cuiksystem. Child process.
Definition: cuiksystem.c:4490
Tstatistics st
Definition: cuiksystem.h:190
unsigned int * simp_tp
Definition: cuiksystem.h:229
char * GetCSVariableName(unsigned int id, TCuikSystem *cs)
Gets a variable name.
Definition: cuiksystem.c:2591
Tvariables orig_variables
Definition: cuiksystem.h:237
boolean PointInSystemBox(Tvector *v, Tbox *b, TCuikSystem *cs)
Determines if a given point is fully included in the system sub-box (i.e., the sub-box fot the system...
Definition: cuiksystem.c:4766
boolean IsCSScalar(TCuikSystem *cs)
Identifies scalar cuiksystems.
Definition: cuiksystem.c:2656
Set of equations.
Definition: equations.h:81
boolean empty
Definition: cuiksystem.h:187
boolean IsCSPolynomial(TCuikSystem *cs)
Identifies polynomial cuiksystems.
Definition: cuiksystem.c:2651
An equation.
Definition: equation.h:236
unsigned int GetSimpCSTopology(Tparameters *p, unsigned int **t, TCuikSystem *cs)
Topology of the variables in the simplified system.
Definition: cuiksystem.c:2674
void PrintCuikSystem(Tparameters *p, FILE *f, TCuikSystem *cs)
Prints a cuiksystem.
Definition: cuiksystem.c:5022
void AddCuikSystemFromFile(Tparameters *p, char *filename, TCuikSystem *cs)
Adds information from a file.
Definition of the Tbox type and the associated functions.
boolean consistent
Definition: cuiksystem.h:185
A generic list.
Definition: list.h:46
Definition of the Tlist type and the associated functions.
unsigned int CuikNewtonSimp(Tparameters *p, double *x, TCuikSystem *cs)
CuikNewton on the simplified system.
Definition: cuiksystem.c:3571
Statistics associated with a solving process.
Definition: statistics.h:28
Tmapping * orig2s
Definition: cuiksystem.h:218
void InitCuikSystemFromFile(Tparameters *p, char *filename, TCuikSystem *cs)
Constructor from a file.
void EvaluateCSEquations(double *p, double *r, TCuikSystem *cs)
Evaluates the equation set on a point.
Definition: cuiksystem.c:4793
TJacobian J
Definition: cuiksystem.h:232
Tequation orig_eqMin
Definition: cuiksystem.h:194
boolean IsSystemVarInSimpCS(Tparameters *p, char *v, TCuikSystem *cs)
Identifies system variables that survive in the simplified system.
Definition: cuiksystem.c:2596
A table of parameters.
boolean updated
Definition: cuiksystem.h:184
boolean IncrementalSampleCuikSystem(Tparameters *p, char *fname, Tlist *sb, boolean *fixVars, unsigned int nsamples, unsigned int ntries, unsigned int ndof, TCuikSystem *cs)
Generates samples for a cuiksystem.
Definition: cuiksystem.c:3218
void EvaluateSimpCSEquations(Tparameters *pr, double *p, double *r, TCuikSystem *cs)
Evaluates the simplified equation set on a point.
Definition: cuiksystem.c:4798
void GetCSVariables(Tvariables *vs, TCuikSystem *cs)
Gets the cuiksystem variables.
Definition: cuiksystem.c:2529
void EvaluateCSJacobian(double *p, double ***J, TCuikSystem *cs)
Evaluates the Jacobian of the system in a given point.
Definition: cuiksystem.c:4814
void SetCSSearchMode(unsigned int sm, Tequation *eqMin, TCuikSystem *cs)
Sets the search mode for the cuiksystem.
Definition: cuiksystem.c:2418
void GetCSVariableNames(char **varNames, TCuikSystem *cs)
Gets points to the variable names.
Definition: cuiksystem.c:2534
boolean CuikNewton(Tparameters *p, double *sol, Tbox *b_sol, TCuikSystem *cs)
Applies Newton-Rhapson to a set of equations.
Definition: cuiksystem.c:3905
A generic vector.
Definition: vector.h:227
Tequation eqMin
Definition: cuiksystem.h:213
void DeleteCuikSystem(TCuikSystem *cs)
Destructor.
Definition: cuiksystem.c:5113
unsigned int GetCSSystemVars(boolean **sv, TCuikSystem *cs)
Identifies the system variables.
Definition: cuiksystem.c:2614
A box.
Definition: box.h:83
Data associated with each variable in the problem.
Definition: variable.h:84
boolean IncrementalSampleCuikSystemInBox(Tparameters *p, char *fname, Tlist *sb, boolean *fixVars, unsigned int nsamples, unsigned int ntries, unsigned int ndof, Tbox *init_box, TCuikSystem *cs)
Generates samples for a cuiksystem in given box.
Definition: cuiksystem.c:3238
A cuiksystem, i.e., a set of variables and equations defining a position analysis problem...
Definition: cuiksystem.h:181
void RegenerateOriginalBox(Tparameters *p, Tbox *boxS, Tbox *boxO, TCuikSystem *cs)
Generates a box in the original cuiksystem from a box of the simplified one.
Definition: cuiksystem.c:4701
void GetCSEquation(unsigned int n, Tequation *eq, TCuikSystem *cs)
Gets the an equation from a cuiksystem.
Definition: cuiksystem.c:2643
double EvaluateCSCost(Tparameters *p, boolean simp, double *s, void *cs)
Evalutes the equation to minimize in a given point.
Definition: cuiksystem.c:4867
Definition of the Tvector type and the associated functions.
boolean InequalitiesHoldOnPoint(double *p, TCuikSystem *cs)
Tests if all inqualities hold for a given point.
Definition: cuiksystem.c:4953
Tvariables variables
Definition: cuiksystem.h:202
unsigned int simp_nee
Definition: cuiksystem.h:227
unsigned int nvariables
Definition: cuiksystem.h:205
The Jacobian of a set of equations.
Definition: jacobian.h:23
double ErrorInInequalities(Tbox *b, TCuikSystem *cs)
Maximum inequality error for a box.
Definition: cuiksystem.c:4924
void GetCSEquations(Tequations *eqs, TCuikSystem *cs)
Gets a copy of the system equations.
Definition: cuiksystem.c:2635
unsigned int simp_nvariables
Definition: cuiksystem.h:226
unsigned int orig_nvariables
Definition: cuiksystem.h:240
Tequations simp_equations
Definition: cuiksystem.h:222
double ErrorInSimpInequalitiesOnPoint(Tparameters *pr, double *p, TCuikSystem *cs)
Computes the maximum error in all the simplified inqualities for a given point.
Definition: cuiksystem.c:4996
unsigned int GetCSVariableID(char *name, TCuikSystem *cs)
Gets the numerical identifier of a variable given its name.
Definition: cuiksystem.c:2586
unsigned int simp_nequations
Definition: cuiksystem.h:225
Tconstants constants
Definition: cuiksystem.h:182
void SetCSVariableRange(unsigned int n, Tinterval *r, TCuikSystem *cs)
Gets the range of a variable from a cuiksystem.
Definition: cuiksystem.c:2574
void EvaluateSubSetSimpCSEquations(Tparameters *pr, boolean *se, double *p, double *r, TCuikSystem *cs)
Evaluates a subset of the simplified equation set on a point.
Definition: cuiksystem.c:4806
unsigned int * varType
Definition: cuiksystem.h:210
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:2941
void VerifyCuikSystem(Tparameters *p, TCuikSystem *cs)
Checks the consistency of the cuiksystem.
Definition: cuiksystem.c:2194
Definition of the Tmapping type and the associated functions.
boolean SampleCuikSystemInBox(Tparameters *p, char *fname, Tlist *sb, unsigned int nsamples, unsigned int ntries, unsigned int ndof, Tbox *init_box, TCuikSystem *cs)
Generates samples for a cuiksystem in given box.
Definition: cuiksystem.c:2960
boolean * orig_systemVar
Definition: cuiksystem.h:241
void AddMatrixEquation2CS(Tparameters *p, TMequation *eq, TCuikSystem *cs)
Adds a matrix equation to the system.
Definition: cuiksystem.c:2490
boolean CmpBoxesEquation(void *b1, void *b2, void *cs)
Determines which box to explore first in minimization mode.
Definition: cuiksystem.c:2413
Defines a interval.
Definition: interval.h:33
unsigned int GetCSNumEquations(TCuikSystem *cs)
Gets the number of equations already in the cuiksystem.
Definition: cuiksystem.c:2664
boolean * notDummyVar
Definition: cuiksystem.h:208
Definition of the Tparameters type and the associated functions.
void GetCSVariable(unsigned int n, Tvariable *v, TCuikSystem *cs)
Gets the a variable from a cuiksystem.
Definition: cuiksystem.c:2566
unsigned int GetCSVarTopology(unsigned int vID, TCuikSystem *cs)
Determines the topology of a given variable.
Definition: cuiksystem.c:2627
Definition of the Tequations type and the associated functions.
void GetCSJacobian(TJacobian *J, TCuikSystem *cs)
Defines the Jacobian of a CuikSystem.
Definition: cuiksystem.c:2669
unsigned int nequations
Definition: cuiksystem.h:204
void AddTerm2SearchCriterion(double w, unsigned int v, double val, TCuikSystem *cs)
Adds penalty terms to the search criterion.
Definition: cuiksystem.c:2438
unsigned int RegenerateOriginalPoint(Tparameters *p, double *s, double **o, TCuikSystem *cs)
Generates an original point from a simplified point.
Definition: cuiksystem.c:4712