📄 glpmpl.h
字号:
#define expand_arg_list _glp_mpl_expand_arg_listARG_LIST *expand_arg_list(MPL *mpl, ARG_LIST *list, CODE *x);/* append operand to operands list */#define arg_list_len _glp_mpl_arg_list_lenint arg_list_len(MPL *mpl, ARG_LIST *list);/* determine length of operands list */#define subscript_list _glp_mpl_subscript_listARG_LIST *subscript_list(MPL *mpl);/* parse subscript list */#define object_reference _glp_mpl_object_referenceCODE *object_reference(MPL *mpl);/* parse reference to named object */#define numeric_argument _glp_mpl_numeric_argumentCODE *numeric_argument(MPL *mpl, char *func);/* parse argument passed to built-in function */#define symbolic_argument _glp_mpl_symbolic_argumentCODE *symbolic_argument(MPL *mpl, char *func);#define elemset_argument _glp_mpl_elemset_argumentCODE *elemset_argument(MPL *mpl, char *func);#define function_reference _glp_mpl_function_referenceCODE *function_reference(MPL *mpl);/* parse reference to built-in function */#define create_domain _glp_mpl_create_domainDOMAIN *create_domain(MPL *mpl);/* create empty domain */#define create_block _glp_mpl_create_blockDOMAIN_BLOCK *create_block(MPL *mpl);/* create empty domain block */#define append_block _glp_mpl_append_blockvoid append_block(MPL *mpl, DOMAIN *domain, DOMAIN_BLOCK *block);/* append domain block to specified domain */#define append_slot _glp_mpl_append_slotDOMAIN_SLOT *append_slot(MPL *mpl, DOMAIN_BLOCK *block, char *name, CODE *code);/* create and append new slot to domain block */#define expression_list _glp_mpl_expression_listCODE *expression_list(MPL *mpl);/* parse expression list */#define literal_set _glp_mpl_literal_setCODE *literal_set(MPL *mpl, CODE *code);/* parse literal set */#define indexing_expression _glp_mpl_indexing_expressionDOMAIN *indexing_expression(MPL *mpl);/* parse indexing expression */#define close_scope _glp_mpl_close_scopevoid close_scope(MPL *mpl, DOMAIN *domain);/* close scope of indexing expression */#define iterated_expression _glp_mpl_iterated_expressionCODE *iterated_expression(MPL *mpl);/* parse iterated expression */#define domain_arity _glp_mpl_domain_arityint domain_arity(MPL *mpl, DOMAIN *domain);/* determine arity of domain */#define set_expression _glp_mpl_set_expressionCODE *set_expression(MPL *mpl);/* parse set expression */#define branched_expression _glp_mpl_branched_expressionCODE *branched_expression(MPL *mpl);/* parse conditional expression */#define primary_expression _glp_mpl_primary_expressionCODE *primary_expression(MPL *mpl);/* parse primary expression */#define error_preceding _glp_mpl_error_precedingvoid error_preceding(MPL *mpl, char *opstr);/* raise error if preceding operand has wrong type */#define error_following _glp_mpl_error_followingvoid error_following(MPL *mpl, char *opstr);/* raise error if following operand has wrong type */#define error_dimension _glp_mpl_error_dimensionvoid error_dimension(MPL *mpl, char *opstr, int dim1, int dim2);/* raise error if operands have different dimension */#define expression_0 _glp_mpl_expression_0CODE *expression_0(MPL *mpl);/* parse expression of level 0 */#define expression_1 _glp_mpl_expression_1CODE *expression_1(MPL *mpl);/* parse expression of level 1 */#define expression_2 _glp_mpl_expression_2CODE *expression_2(MPL *mpl);/* parse expression of level 2 */#define expression_3 _glp_mpl_expression_3CODE *expression_3(MPL *mpl);/* parse expression of level 3 */#define expression_4 _glp_mpl_expression_4CODE *expression_4(MPL *mpl);/* parse expression of level 4 */#define expression_5 _glp_mpl_expression_5CODE *expression_5(MPL *mpl);/* parse expression of level 5 */#define expression_6 _glp_mpl_expression_6CODE *expression_6(MPL *mpl);/* parse expression of level 6 */#define expression_7 _glp_mpl_expression_7CODE *expression_7(MPL *mpl);/* parse expression of level 7 */#define expression_8 _glp_mpl_expression_8CODE *expression_8(MPL *mpl);/* parse expression of level 8 */#define expression_9 _glp_mpl_expression_9CODE *expression_9(MPL *mpl);/* parse expression of level 9 */#define expression_10 _glp_mpl_expression_10CODE *expression_10(MPL *mpl);/* parse expression of level 10 */#define expression_11 _glp_mpl_expression_11CODE *expression_11(MPL *mpl);/* parse expression of level 11 */#define expression_12 _glp_mpl_expression_12CODE *expression_12(MPL *mpl);/* parse expression of level 12 */#define expression_13 _glp_mpl_expression_13CODE *expression_13(MPL *mpl);/* parse expression of level 13 */#define set_statement _glp_mpl_set_statementSET *set_statement(MPL *mpl);/* parse set statement */#define parameter_statement _glp_mpl_parameter_statementPARAMETER *parameter_statement(MPL *mpl);/* parse parameter statement */#define variable_statement _glp_mpl_variable_statementVARIABLE *variable_statement(MPL *mpl);/* parse variable statement */#define constraint_statement _glp_mpl_constraint_statementCONSTRAINT *constraint_statement(MPL *mpl);/* parse constraint statement */#define objective_statement _glp_mpl_objective_statementCONSTRAINT *objective_statement(MPL *mpl);/* parse objective statement */#define table_statement _glp_mpl_table_statementTABLE *table_statement(MPL *mpl);/* parse table statement */#define solve_statement _glp_mpl_solve_statementvoid *solve_statement(MPL *mpl);/* parse solve statement */#define check_statement _glp_mpl_check_statementCHECK *check_statement(MPL *mpl);/* parse check statement */#define display_statement _glp_mpl_display_statementDISPLAY *display_statement(MPL *mpl);/* parse display statement */#define printf_statement _glp_mpl_printf_statementPRINTF *printf_statement(MPL *mpl);/* parse printf statement */#define for_statement _glp_mpl_for_statementFOR *for_statement(MPL *mpl);/* parse for statement */#define end_statement _glp_mpl_end_statementvoid end_statement(MPL *mpl);/* parse end statement */#define simple_statement _glp_mpl_simple_statementSTATEMENT *simple_statement(MPL *mpl, int spec);/* parse simple statement */#define model_section _glp_mpl_model_sectionvoid model_section(MPL *mpl);/* parse model section *//**********************************************************************//* * * PROCESSING DATA SECTION * * *//**********************************************************************/#if 2 + 2 == 5struct SLICE /* see TUPLE */{ /* component of slice; the slice itself is associated with its first component; slices are similar to n-tuples with exception that some slice components (which are indicated by asterisks) don't refer to any symbols */ SYMBOL *sym; /* symbol, which this component refers to; can be NULL */ SLICE *next; /* the next component of slice */};#endif#define create_slice _glp_mpl_create_sliceSLICE *create_slice(MPL *mpl);/* create slice */#define expand_slice _glp_mpl_expand_sliceSLICE *expand_slice( MPL *mpl, SLICE *slice, /* destroyed */ SYMBOL *sym /* destroyed */);/* append new component to slice */#define slice_dimen _glp_mpl_slice_dimenint slice_dimen( MPL *mpl, SLICE *slice /* not changed */);/* determine dimension of slice */#define slice_arity _glp_mpl_slice_arityint slice_arity( MPL *mpl, SLICE *slice /* not changed */);/* determine arity of slice */#define fake_slice _glp_mpl_fake_sliceSLICE *fake_slice(MPL *mpl, int dim);/* create fake slice of all asterisks */#define delete_slice _glp_mpl_delete_slicevoid delete_slice( MPL *mpl, SLICE *slice /* destroyed */);/* delete slice */#define is_number _glp_mpl_is_numberint is_number(MPL *mpl);/* check if current token is number */#define is_symbol _glp_mpl_is_symbolint is_symbol(MPL *mpl);/* check if current token is symbol */#define is_literal _glp_mpl_is_literalint is_literal(MPL *mpl, char *literal);/* check if current token is given symbolic literal */#define read_number _glp_mpl_read_numberdouble read_number(MPL *mpl);/* read number */#define read_symbol _glp_mpl_read_symbolSYMBOL *read_symbol(MPL *mpl);/* read symbol */#define read_slice _glp_mpl_read_sliceSLICE *read_slice( MPL *mpl, char *name, /* not changed */ int dim);/* read slice */#define select_set _glp_mpl_select_setSET *select_set( MPL *mpl, char *name /* not changed */);/* select set to saturate it with elemental sets */#define simple_format _glp_mpl_simple_formatvoid simple_format( MPL *mpl, SET *set, /* not changed */ MEMBER *memb, /* modified */ SLICE *slice /* not changed */);/* read set data block in simple format */#define matrix_format _glp_mpl_matrix_formatvoid matrix_format( MPL *mpl, SET *set, /* not changed */ MEMBER *memb, /* modified */ SLICE *slice, /* not changed */ int tr);/* read set data block in matrix format */#define set_data _glp_mpl_set_datavoid set_data(MPL *mpl);/* read set data */#define select_parameter _glp_mpl_select_parameterPARAMETER *select_parameter( MPL *mpl, char *name /* not changed */);/* select parameter to saturate it with data */#define set_default _glp_mpl_set_defaultvoid set_default( MPL *mpl, PARAMETER *par, /* not changed */ SYMBOL *altval /* destroyed */);/* set default parameter value */#define read_value _glp_mpl_read_valueMEMBER *read_value( MPL *mpl, PARAMETER *par, /* not changed */ TUPLE *tuple /* destroyed */);/* read value and assign it to parameter member */#define plain_format _glp_mpl_plain_formatvoid plain_format( MPL *mpl, PARAMETER *par, /* not changed */ SLICE *slice /* not changed */);/* read parameter data block in plain format */#define tabular_format _glp_mpl_tabular_formatvoid tabular_format( MPL *mpl, PARAMETER *par, /* not changed */ SLICE *slice, /* not changed */ int tr);/* read parameter data block in tabular format */#define tabbing_format _glp_mpl_tabbing_formatvoid tabbing_format( MPL *mpl, SYMBOL *altval /* not changed */);/* read parameter data block in tabbing format */#define parameter_data _glp_mpl_parameter_datavoid parameter_data(MPL *mpl);/* read parameter data */#define data_section _glp_mpl_data_sectionvoid data_section(MPL *mpl);/* read data section *//**********************************************************************//* * * FLOATING-POINT NUMBERS * * *//**********************************************************************/#define fp_add _glp_mpl_fp_adddouble fp_add(MPL *mpl, double x, double y);/* floating-point addition */#define fp_sub _glp_mpl_fp_subdouble fp_sub(MPL *mpl, double x, double y);/* floating-point subtraction */#define fp_less _glp_mpl_fp_lessdouble fp_less(MPL *mpl, double x, double y);/* floating-point non-negative subtraction */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -