Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemath
GitHub Repository: sagemath/sagelib
Path: blob/master/sage/numerical/backends/glpk_backend.pxd
4079 views
##############################################################################
#       Copyright (C) 2010 Nathann Cohen <[email protected]>
#  Distributed under the terms of the GNU General Public License (GPL)
#  The full text of the GPL is available at:
#                  http://www.gnu.org/licenses/
##############################################################################

from generic_backend cimport GenericBackend
include '../../../../../devel/sage/sage/ext/stdsage.pxi'


cdef extern from *:
    ctypedef double* const_double_ptr "const double*"
    ctypedef char * const_char_ptr "const char*"

cdef extern from "float.h":
    cdef double DBL_MAX

cdef extern from "../../../local/include/glpk.h":
     ctypedef struct c_glp_prob "glp_prob":
         pass
     ctypedef struct c_glp_iocp "glp_iocp":
         int msg_lev
         int br_tech
         int bt_tech
         int pp_tech
         int fp_heur
         int gmi_cuts
         int mir_cuts
         int cov_cuts
         int clq_cuts
         double tol_int
         double tol_obj
         double mip_gap
         int tm_lim
         int out_frq
         int out_dly
         int presolve
         int binarize
     ctypedef struct c_glp_smcp "glp_smcp":
         int msg_lev
         int meth
         int pricing
         int r_test
         double tol_bnd
         double tol_dj
         double tol_piv
         double obj_ll
         double obj_ul
         int it_lim
         int tm_lim
         int out_frq
         int out_dly
         int presolve
     c_glp_iocp * new_c_glp_iocp "new glp_iocp" ()
     #void del_c_glp_iocp "del glp_iocp" ()
     void glp_init_iocp(c_glp_iocp *)
     void glp_init_smcp(c_glp_smcp *)
     c_glp_prob * glp_create_prob()
     void glp_set_prob_name(c_glp_prob *, char *)
     const_char_ptr glp_get_prob_name(c_glp_prob *)
     void glp_set_obj_dir(c_glp_prob *, int)
     void glp_add_rows(c_glp_prob *, int)
     void glp_add_cols(c_glp_prob *, int)
     void glp_del_rows(c_glp_prob *, int, int *)
     void glp_set_row_name(c_glp_prob *, int, char *)
     void glp_set_col_name(c_glp_prob *, int, char *)
     void glp_set_row_bnds(c_glp_prob *, int, int, double, double)
     void glp_set_col_bnds(c_glp_prob *, int, int, double, double)
     void glp_set_obj_coef(c_glp_prob *, int, double)
     void glp_load_matrix(c_glp_prob *, int, int *, int *, double *)
     int glp_simplex(c_glp_prob *, c_glp_smcp *)
     int glp_intopt(c_glp_prob *, c_glp_iocp *)
     int lpx_intopt(c_glp_prob *)
     void glp_std_basis(c_glp_prob *)
     void glp_delete_prob(c_glp_prob *)
     double glp_get_col_prim(c_glp_prob *, int)
     double glp_get_obj_val(c_glp_prob *)
     int glp_get_num_rows(c_glp_prob *)
     int glp_get_num_cols(c_glp_prob *)
     double glp_mip_col_val(c_glp_prob *, int)
     double glp_mip_obj_val(c_glp_prob *)
     void glp_set_col_kind(c_glp_prob *, int, int)
     int glp_write_mps(c_glp_prob *lp, int fmt, void *parm, char *fname)
     int glp_write_lp(c_glp_prob *lp, void *parm, char *fname)
     void glp_set_prob_name(c_glp_prob *lp, char *name)
     void glp_set_obj_name(c_glp_prob *lp, char *name)
     void glp_set_row_name(c_glp_prob *lp, int i, char *name)
     void glp_set_col_name(c_glp_prob *lp, int i, char *name)

     double glp_get_row_ub(c_glp_prob *lp, int i)
     double glp_get_row_lb(c_glp_prob *lp, int i)

     double glp_get_col_ub(c_glp_prob *lp, int i)
     double glp_get_col_lb(c_glp_prob *lp, int i)
     void glp_set_col_ub(c_glp_prob *lp, int i, double value)
     void glp_set_col_lb(c_glp_prob *lp, int i, double value)


     const_char_ptr glp_get_row_name(c_glp_prob *lp, int i)
     const_char_ptr glp_get_col_name(c_glp_prob *lp, int i)

     void glp_create_index(c_glp_prob *lp)

     double glp_get_col_lb(c_glp_prob *lp, int i)
     double glp_get_col_ub(c_glp_prob *lp, int i)

     int glp_get_prim_stat(c_glp_prob *lp)
     int glp_mip_status(c_glp_prob *lp)
     int glp_set_mat_row(c_glp_prob *lp, int, int, int *, double * )
     int glp_set_mat_col(c_glp_prob *lp, int, int, int *, double * )
     int glp_get_mat_row(c_glp_prob *lp, int, int *, double * )
     double glp_get_row_ub(c_glp_prob *lp, int)
     double glp_get_row_lb(c_glp_prob *lp, int)
     int glp_get_col_kind(c_glp_prob *lp, int)
     double glp_get_obj_coef(c_glp_prob *lp, int)
     int glp_get_obj_dir(c_glp_prob *lp)
     void glp_copy_prob(c_glp_prob *dst, c_glp_prob *src, int names)

     # constants

     # constants for smcp control

     int GLP_MSG_OFF
     int GLP_MSG_ERR
     int GLP_MSG_ON
     int GLP_MSG_ALL

     int GLP_PRIMAL
     int GLP_DUALP
     int GLP_DUAL

     int GLP_PT_STD
     int GLP_PT_PSE

     int GLP_RT_STD
     int GLP_RT_HAR

     double DBL_MAX

     int INT_MAX

     int GLP_ON
     int GLP_OFF

     # constants for iocp control, not already in simplex

     int GLP_BR_FFV
     int GLP_BR_LFV
     int GLP_BR_MFV
     int GLP_BR_DTH
     int GLP_BR_PCH

     int GLP_BT_DFS
     int GLP_BT_BFS
     int GLP_BT_BLB
     int GLP_BT_BPH

     int GLP_PP_NONE
     int GLP_PP_ROOT
     int GLP_PP_ALL

     # error codes
     int GLP_EBADB
     int GLP_ESING
     int GLP_ECOND
     int GLP_EBOUND
     int GLP_EFAIL
     int GLP_EOBJLL
     int GLP_EOBJUL
     int GLP_EITLIM
     int GLP_ETMLIM
     int GLP_EOPFS
     int GLP_EODFS

     int GLP_UNDEF
     int GLP_OPT
     int GLP_FEAS
     int GLP_NOFEAS
     int GLP_INFEAS
     int GLP_UNBND

     # other constants

     int GLP_MAX
     int GLP_MIN
     int GLP_UP
     int GLP_FR
     int GLP_DB
     int GLP_FX
     int GLP_LO
     int GLP_CV
     int GLP_IV
     int GLP_BV
     int GLP_MPS_DECK
     int GLP_MPS_FILE

     int GLP_MSG_DBG

cdef class GLPKBackend(GenericBackend):
    cdef c_glp_prob * lp
    cdef c_glp_iocp * iocp
    cdef c_glp_smcp * smcp
    cdef int simplex_or_intopt
    cpdef GLPKBackend copy(self)