123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121(* fetch #define int constants from glpk.h *)moduleM(F:Ctypes.TYPE)=structleton=F.(constant"GLP_ON"int)letoff=F.(constant"GLP_OFF"int)letmin=F.(constant"GLP_MIN"int)letmax=F.(constant"GLP_MAX"int)letcv=F.(constant"GLP_CV"int)letiv=F.(constant"GLP_IV"int)letbv=F.(constant"GLP_BV"int)letfr=F.(constant"GLP_FR"int)letlo=F.(constant"GLP_LO"int)letup=F.(constant"GLP_UP"int)letdb=F.(constant"GLP_DB"int)letfx=F.(constant"GLP_FX"int)letebadb=F.(constant"GLP_EBADB"int)letesing=F.(constant"GLP_ESING"int)letecond=F.(constant"GLP_ECOND"int)letebound=F.(constant"GLP_EBOUND"int)letefail=F.(constant"GLP_EFAIL"int)leteobjll=F.(constant"GLP_EOBJLL"int)leteobjul=F.(constant"GLP_EOBJUL"int)leteitlim=F.(constant"GLP_EITLIM"int)letetmlim=F.(constant"GLP_ETMLIM"int)letenopfs=F.(constant"GLP_ENOPFS"int)letenodfs=F.(constant"GLP_ENODFS"int)leteroot=F.(constant"GLP_EROOT"int)letemipgap=F.(constant"GLP_EMIPGAP"int)letestop=F.(constant"GLP_ESTOP"int)letundef=F.(constant"GLP_UNDEF"int)letfeas=F.(constant"GLP_FEAS"int)letinfeas=F.(constant"GLP_INFEAS"int)letnofeas=F.(constant"GLP_NOFEAS"int)letopt=F.(constant"GLP_OPT"int)letunbnd=F.(constant"GLP_UNBND"int)letmsg_off=F.(constant"GLP_MSG_OFF"int)letmsg_err=F.(constant"GLP_MSG_ERR"int)letmsg_on=F.(constant"GLP_MSG_ON"int)letmsg_all=F.(constant"GLP_MSG_ALL"int)letmsg_dbg=F.(constant"GLP_MSG_DBG"int)letprimal=F.(constant"GLP_PRIMAL"int)letdualp=F.(constant"GLP_DUALP"int)letdual=F.(constant"GLP_DUAL"int)letpt_std=F.(constant"GLP_PT_STD"int)letpt_pse=F.(constant"GLP_PT_PSE"int)letrt_std=F.(constant"GLP_RT_STD"int)letrt_har=F.(constant"GLP_RT_HAR"int)letrt_flip=F.(constant"GLP_RT_FLIP"int)letuse_at=F.(constant"GLP_USE_AT"int)letuse_nt=F.(constant"GLP_USE_NT"int)letbr_ffv=F.(constant"GLP_BR_FFV"int)letbr_lfv=F.(constant"GLP_BR_LFV"int)letbr_mfv=F.(constant"GLP_BR_MFV"int)letbr_dth=F.(constant"GLP_BR_DTH"int)letbr_pch=F.(constant"GLP_BR_PCH"int)letbt_dfs=F.(constant"GLP_BT_DFS"int)letbt_bfs=F.(constant"GLP_BT_BFS"int)letbt_blb=F.(constant"GLP_BT_BLB"int)letbt_bph=F.(constant"GLP_BT_BPH"int)letpp_none=F.(constant"GLP_PP_NONE"int)letpp_root=F.(constant"GLP_PP_ROOT"int)letpp_all=F.(constant"GLP_PP_ALL"int)end