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);
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