⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 glpmpl.h

📁 著名的大规模线性规划求解器源码GLPK.C语言版本,可以修剪.内有详细帮助文档.
💻 H
📖 第 1 页 / 共 5 页
字号:
};#define check_elem_set _glp_mpl_check_elem_setvoid check_elem_set(     MPL *mpl,      SET *set,               /* not changed */      TUPLE *tuple,           /* not changed */      ELEMSET *refer          /* not changed */);/* check elemental set assigned to set member */#define take_member_set _glp_mpl_take_member_setELEMSET *take_member_set      /* returns reference, not value */(     MPL *mpl,      SET *set,               /* not changed */      TUPLE *tuple            /* not changed */);/* obtain elemental set assigned to set member */#define eval_member_set _glp_mpl_eval_member_setELEMSET *eval_member_set      /* returns reference, not value */(     MPL *mpl,      SET *set,               /* not changed */      TUPLE *tuple            /* not changed */);/* evaluate elemental set assigned to set member */#define eval_whole_set _glp_mpl_eval_whole_setvoid eval_whole_set(MPL *mpl, SET *set);/* evaluate model set over entire domain */#define clean_set _glp_mpl_clean_setvoid clean_set(MPL *mpl, SET *set);/* clean model set *//**********************************************************************//* * *                      MODEL PARAMETERS                      * * *//**********************************************************************/struct PARAMETER{     /* model parameter */      char *name;      /* symbolic name; cannot be NULL */      char *alias;      /* alias; NULL means alias is not specified */      int dim; /* aka arity */      /* dimension (number of subscripts); dim = 0 means 0-dimensional         (unsubscripted) parameter */      DOMAIN *domain;      /* subscript domain; NULL for 0-dimensional parameter */      int type;      /* parameter type:         A_NUMERIC  - numeric         A_INTEGER  - integer         A_BINARY   - binary         A_SYMBOLIC - symbolic */      CONDITION *cond;      /* list of conditions, which restrict each parameter member to         satisfy to every condition from this list; this list is used         only for numeric parameters and can be empty */      WITHIN *in;      /* list of supersets, which restrict each parameter member to be         in every superset from this list; this list is used only for         symbolic parameters and can be empty */      CODE *assign;      /* pseudo-code for computing assigned value; can be NULL */      CODE *option;      /* pseudo-code for computing default value; can be NULL */      int data;      /* data status flag:         0 - no data are provided in the data section         1 - data are provided, but not checked yet         2 - data are provided and have been checked */      SYMBOL *defval;      /* default value provided in the data section; can be NULL */      ARRAY *array;      /* array of members, which are assigned numbers or symbols */};struct CONDITION{     /* restricting condition list entry */      int rho;      /* flag that specifies the form of the condition:         O_LT - less than         O_LE - less than or equal to         O_EQ - equal to         O_GE - greater than or equal to         O_GT - greater than         O_NE - not equal to */      CODE *code;      /* pseudo-code for computing the reference value */      CONDITION *next;      /* the next entry for the same parameter */};#define check_value_num _glp_mpl_check_value_numvoid check_value_num(     MPL *mpl,      PARAMETER *par,         /* not changed */      TUPLE *tuple,           /* not changed */      double value);/* check numeric value assigned to parameter member */#define take_member_num _glp_mpl_take_member_numdouble take_member_num(     MPL *mpl,      PARAMETER *par,         /* not changed */      TUPLE *tuple            /* not changed */);/* obtain numeric value assigned to parameter member */#define eval_member_num _glp_mpl_eval_member_numdouble eval_member_num(     MPL *mpl,      PARAMETER *par,         /* not changed */      TUPLE *tuple            /* not changed */);/* evaluate numeric value assigned to parameter member */#define check_value_sym _glp_mpl_check_value_symvoid check_value_sym(     MPL *mpl,      PARAMETER *par,         /* not changed */      TUPLE *tuple,           /* not changed */      SYMBOL *value           /* not changed */);/* check symbolic value assigned to parameter member */#define take_member_sym _glp_mpl_take_member_symSYMBOL *take_member_sym       /* returns value, not reference */(     MPL *mpl,      PARAMETER *par,         /* not changed */      TUPLE *tuple            /* not changed */);/* obtain symbolic value assigned to parameter member */#define eval_member_sym _glp_mpl_eval_member_symSYMBOL *eval_member_sym       /* returns value, not reference */(     MPL *mpl,      PARAMETER *par,         /* not changed */      TUPLE *tuple            /* not changed */);/* evaluate symbolic value assigned to parameter member */#define eval_whole_par _glp_mpl_eval_whole_parvoid eval_whole_par(MPL *mpl, PARAMETER *par);/* evaluate model parameter over entire domain */#define clean_parameter _glp_mpl_clean_parametervoid clean_parameter(MPL *mpl, PARAMETER *par);/* clean model parameter *//**********************************************************************//* * *                      MODEL VARIABLES                       * * *//**********************************************************************/struct VARIABLE{     /* model variable */      char *name;      /* symbolic name; cannot be NULL */      char *alias;      /* alias; NULL means alias is not specified */      int dim; /* aka arity */      /* dimension (number of subscripts); dim = 0 means 0-dimensional         (unsubscripted) variable */      DOMAIN *domain;      /* subscript domain; NULL for 0-dimensional variable */      int type;      /* variable type:         A_NUMERIC - continuous         A_INTEGER - integer         A_BINARY  - binary */      CODE *lbnd;      /* pseudo-code for computing lower bound; NULL means lower bound         is not specified */      CODE *ubnd;      /* pseudo-code for computing upper bound; NULL means upper bound         is not specified */      /* if both the pointers lbnd and ubnd refer to the same code, the         variable is fixed at the corresponding value */      ARRAY *array;      /* array of members, which are assigned elemental variables */};#define take_member_var _glp_mpl_take_member_varELEMVAR *take_member_var      /* returns reference */(     MPL *mpl,      VARIABLE *var,          /* not changed */      TUPLE *tuple            /* not changed */);/* obtain reference to elemental variable */#define eval_member_var _glp_mpl_eval_member_varELEMVAR *eval_member_var      /* returns reference */(     MPL *mpl,      VARIABLE *var,          /* not changed */      TUPLE *tuple            /* not changed */);/* evaluate reference to elemental variable */#define eval_whole_var _glp_mpl_eval_whole_varvoid eval_whole_var(MPL *mpl, VARIABLE *var);/* evaluate model variable over entire domain */#define clean_variable _glp_mpl_clean_variablevoid clean_variable(MPL *mpl, VARIABLE *var);/* clean model variable *//**********************************************************************//* * *              MODEL CONSTRAINTS AND OBJECTIVES              * * *//**********************************************************************/struct CONSTRAINT{     /* model constraint or objective */      char *name;      /* symbolic name; cannot be NULL */      char *alias;      /* alias; NULL means alias is not specified */      int dim; /* aka arity */      /* dimension (number of subscripts); dim = 0 means 0-dimensional         (unsubscripted) constraint */      DOMAIN *domain;      /* subscript domain; NULL for 0-dimensional constraint */      int type;      /* constraint type:         A_CONSTRAINT - constraint         A_MINIMIZE   - objective (minimization)         A_MAXIMIZE   - objective (maximization) */      CODE *code;      /* pseudo-code for computing main linear form; cannot be NULL */      CODE *lbnd;      /* pseudo-code for computing lower bound; NULL means lower bound         is not specified */      CODE *ubnd;      /* pseudo-code for computing upper bound; NULL means upper bound         is not specified */      /* if both the pointers lbnd and ubnd refer to the same code, the         constraint has the form of equation */      ARRAY *array;      /* array of members, which are assigned elemental constraints */};#define take_member_con _glp_mpl_take_member_conELEMCON *take_member_con      /* returns reference */(     MPL *mpl,      CONSTRAINT *con,        /* not changed */      TUPLE *tuple            /* not changed */);/* obtain reference to elemental constraint */#define eval_member_con _glp_mpl_eval_member_conELEMCON *eval_member_con      /* returns reference */(     MPL *mpl,      CONSTRAINT *con,        /* not changed */      TUPLE *tuple            /* not changed */);/* evaluate reference to elemental constraint */#define eval_whole_con _glp_mpl_eval_whole_convoid eval_whole_con(MPL *mpl, CONSTRAINT *con);/* evaluate model constraint over entire domain */#define clean_constraint _glp_mpl_clean_constraintvoid clean_constraint(MPL *mpl, CONSTRAINT *con);/* clean model constraint *//**********************************************************************//* * *                        DATA TABLES                         * * *//**********************************************************************/struct TABLE{     /* data table */      char *name;      /* symbolic name; cannot be NULL */      char *alias;      /* alias; NULL means alias is not specified */      int type;      /* table type:         A_INPUT  - input table         A_OUTPUT - output table */      TABARG *arg;      /* argument list; cannot be empty */      union      {  struct         {  SET *set;            /* input set; NULL means the set is not specified */            TABFLD *fld;            /* field list; cannot be empty */            TABIN *list;            /* input list; can be empty */         } in;         struct         {  DOMAIN *domain;            /* subscript domain; cannot be NULL */            TABOUT *list;            /* output list; cannot be empty */         } out;      } u;};struct TABARG{     /* table argument list entry */      CODE *code;      /* pseudo-code for computing the argument */      TABARG *next;      /* next entry for the same table */};struct TABFLD{     /* table field list entry */      char *name;      /* field name; cannot be NULL */      TABFLD *next;      /* next entry for the same table */};struct TABIN{     /* table input list entry */      PARAMETER *par;      /* parameter to be read; cannot be NULL */      char *name;      /* column name; cannot be NULL */      TABIN *next;      /* next entry for the same table */};struct TABOUT{     /* table output list entry */      CODE *code;      /* pseudo-code for computing the value to be written */      char *name;      /* column name; cannot be NULL */      TABOUT *next;      /* next entry for the same table */};struct TABDCA{     /* table driver communication area */      int id;      /* driver identifier (set by mpl_tab_drv_open) */      void *link;      /* driver link pointer (set by mpl_tab_drv_open) */      int na;      /* number of arguments */      char **arg; /* char *arg[1+ns]; */      /* arg[k], 1 <= k <= ns, is pointer to k-th argument */      int nf;      /* number of fields */      char **name; /* char *name[1+nc]; */      /* name[k], 1 <= k <= nc, is name of k-th field */      int *type; /* int type[1+nc]; */      /* type[k], 1 <= k <= nc, is type of k-th field:         '?' - value not assigned         'N' - number         'S' - character string */      double *num; /* double num[1+nc]; */      /* num[k], 1 <= k <= nc, is numeric value of k-th field */      char **str;      /* str[k], 1 <= k <= nc, is string value of k-th field */};#define mpl_tab_num_args _glp_mpl_tab_num_argsint mpl_tab_num_args(TABDCA *dca);#define mpl_tab_get_arg _glp_mpl_tab_get_argconst char *mpl_tab_get_arg(TABDCA *dca, int k);#define mpl_tab_num_flds _glp_mpl_tab_num_fldsint mpl_tab_num_flds(TABDCA *dca);#define mpl_tab_get_name _glp_mpl_tab_get_nameconst char *mpl_tab_get_name(TABDCA *dca, int k);#define mpl_tab_get_type _glp_mpl_tab_get_typeint mpl_tab_get_type(TABDCA *dca, int k);#define mpl_tab_get_num _glp_mpl_tab_get_numdouble mpl_tab_get_num(TABDCA *dca, int k);#define mpl_tab_get_str _glp_mpl_tab_get_strconst char *mpl_tab_get_str(TABDCA *dca, int k);#define mpl_tab_set_num _glp_mpl_tab_set_numvoid mpl_tab_set_num(TABDCA *dca, int k, double num);#define mpl_tab_set_str _glp_mpl_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -