[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-glpk] [Fwd: glpk 4.52 - ubuntu 14.04 distribution]
From: |
Andrew Makhorin |
Subject: |
Re: [Bug-glpk] [Fwd: glpk 4.52 - ubuntu 14.04 distribution] |
Date: |
Wed, 25 Jun 2014 10:48:28 +0400 |
> The following code works fine with glpk-4.45 but fails with glpk 4.52
>
> #include "glpk.h"
>
> int main() {
> double inf = 100000000.;
> glp_prob * m_lp = glp_create_prob();
> glp_load_matrix(m_lp, 0, NULL, NULL, NULL);
>
> //adding 4 cols
> glp_add_cols(m_lp, 4);
>
> int colNr = 1;
> glp_set_col_bnds(m_lp, 1, 2, 0, inf);
> glp_set_obj_coef(m_lp, 1 , 2);
> glp_set_mat_col(m_lp, 1, 0, NULL, NULL);
>
> colNr = 2;
> glp_set_col_bnds(m_lp, colNr, 2, 0, inf);
> glp_set_obj_coef(m_lp, colNr , 3);
> glp_set_mat_col(m_lp, colNr, 0, NULL, NULL);
>
> colNr = 3;
> glp_set_col_bnds(m_lp, colNr, 2, 0, inf);
> glp_set_obj_coef(m_lp, colNr , 1);
> glp_set_mat_col(m_lp, colNr, 0, NULL, NULL);
>
> colNr = 4;
> glp_set_col_bnds(m_lp, colNr, 2, 0, inf);
> glp_set_obj_coef(m_lp, colNr , 3);
> glp_set_mat_col(m_lp, colNr, 0, NULL, NULL);
>
> int m_idx_cols_tmp[3];
> double m_val_cols_tmp[3];
>
> //adding 4 columns
> int rowNr = glp_add_rows(m_lp, 1);
> glp_set_row_bnds(m_lp, rowNr, 5, 1, 1);
> m_idx_cols_tmp[1] = 2;
> m_val_cols_tmp[1] = 1;
> m_idx_cols_tmp[2] = 1;
> m_val_cols_tmp[2] = 1;
> glp_set_mat_row(m_lp, 1, 2, m_idx_cols_tmp, m_val_cols_tmp);
>
> rowNr = glp_add_rows(m_lp, 1);
> glp_set_row_bnds(m_lp, rowNr, 5, 1, 1);
> m_idx_cols_tmp[1] = 4;
> m_val_cols_tmp[1] = 1;
> m_idx_cols_tmp[2] = 3;
> m_val_cols_tmp[2] = 1;
> glp_set_mat_row(m_lp, 2, 2, m_idx_cols_tmp, m_val_cols_tmp);
>
> rowNr = glp_add_rows(m_lp, 1);
> glp_set_row_bnds(m_lp, rowNr, 3, -inf, 2);
> m_idx_cols_tmp[1] = 3;
> m_val_cols_tmp[1] = 1;
> m_idx_cols_tmp[2] = 1;
> m_val_cols_tmp[2] = 2;
> glp_set_mat_row(m_lp, 3, 2, m_idx_cols_tmp, m_val_cols_tmp);
>
> rowNr = glp_add_rows(m_lp, 1);
> glp_set_row_bnds(m_lp, rowNr, 3, -inf, 2);
> m_idx_cols_tmp[1] = 4;
> m_val_cols_tmp[1] = 1;
> m_idx_cols_tmp[2] = 2;
> m_val_cols_tmp[2] = 2;
> glp_set_mat_row(m_lp, 4, 2, m_idx_cols_tmp, m_val_cols_tmp);
>
> //solving
> glp_smcp m_glpk_control;
> glp_init_smcp(&m_glpk_control);
> m_glpk_control.msg_lev = GLP_MSG_OFF;
> m_glpk_control.meth = GLP_PRIMAL;
>
> glp_adv_basis(m_lp, 0);
> glp_simplex(m_lp, &m_glpk_control);
>
> //deleting 2 columns
> int arr[2];
> arr[0] = 0;
> arr[1] = 4;
> glp_del_cols(m_lp, 1, arr);
> arr[1] = 3;
> glp_del_cols(m_lp, 1, arr);
>
> //deleting 2 rows
> arr[1] = 4;
> glp_del_rows(m_lp, 1, arr);
> arr[1] = 3;
> glp_del_rows(m_lp, 1, arr);
>
> //solve
> glp_simplex(m_lp, &m_glpk_control);
>
> return 0;
> }
>
>
> compilation:
>
> gcc glp.c -lglpk
>
> gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
>
> fails with:
>
> Assertion failed: ptr < end
> Error detected in file bflib/sgf.c at line 99
> Aborted (core dumped)
>
Thank you for your bug report.
This bug was already reported. Please see
http://lists.gnu.org/archive/html/bug-glpk/2014-04/msg00001.html