Institut de Robòtica i Informàtica Industrial
KRD Group

The CuikSuite Project

variable_set.h

Go to the documentation of this file.
00001 #ifndef VARIABLESETH
00002 #define VARIABLESETH 
00003 
00004 #include "boolean.h"
00005 #include "interval.h"
00006 
00007 #include <stdlib.h>
00008 #include <stdio.h>
00009 
00010 
00021 /************************************************************************************/
00028 #define INIT_NUM_VARIABLES 10
00029 /************************************************************************************/
00030 
00051 typedef struct {
00052   unsigned int nvars; 
00053   unsigned int maxvars; 
00054   unsigned int *var_id; 
00055   unsigned int *power; 
00056 } Tvariable_set;
00057 
00065 void InitVarSet(Tvariable_set *vs);
00066 
00067 
00078 void ResetVarSet(Tvariable_set *vs);
00079 
00088 void CopyVarSet(Tvariable_set *vs_dst,Tvariable_set *vs_orig);
00089 
00105 void ShiftVarIndexes(unsigned int nv,Tvariable_set *vs);
00106 
00120 unsigned int CmpVarSet(Tvariable_set *vs1,Tvariable_set *vs2);
00121 
00122 
00134 unsigned int GetPlaceinSet(unsigned int id,Tvariable_set *vs);
00135 
00146 boolean VarIncluded(unsigned int id,Tvariable_set *vs);
00147 
00161 boolean Included(unsigned int id,unsigned int p,Tvariable_set *vs);
00162 
00172 boolean EmptyVarSet(Tvariable_set *vs);
00173 
00183 void AddVariable2Set(unsigned int varid,unsigned int p,Tvariable_set *vs);
00184 
00193 void RemoveVariableFromSet(unsigned int varid,Tvariable_set *vs);
00194 
00205 unsigned int VarSetOrder(Tvariable_set *vs);
00206 
00207 
00217 unsigned int VariableSetSize(Tvariable_set *vs);
00218 
00231 unsigned int GetVariableN(unsigned int n,Tvariable_set *vs);
00232 
00242 unsigned int *GetVariables(Tvariable_set *vs);
00243 
00256 unsigned int GetVariablePowerN(unsigned int n,Tvariable_set *vs);
00257 
00267 unsigned int *GetPowers(Tvariable_set *vs);
00268 
00281 boolean VarSetIntersect(Tvariable_set *vs1,Tvariable_set *vs2);
00282 
00295 void SubstractVarSet(Tvariable_set *vs1,Tvariable_set *vs2,Tvariable_set *v_out); /*vs1-vs2*/
00296 
00307 void UnionVarSet(Tvariable_set *vs1,Tvariable_set *vs2,Tvariable_set *v_out);
00308 
00309 
00320 double EvaluateVarSet(double *varValues,Tvariable_set *vs);
00321 
00332 void EvaluateVarSetInt(Tinterval *varValues,Tinterval *i_out,Tvariable_set *vs);
00333 
00343 unsigned int DeriveVarSet(unsigned int nv,Tvariable_set *dvs,Tvariable_set *vs);
00344 
00345 
00358 void PrintVarSet(FILE *f,char **varNames,Tvariable_set *vs);
00359 
00367 void DeleteVarSet(Tvariable_set *vs);
00368 
00369 #endif