1 /* bfx.h (LP basis factorization driver, rational arithmetic) */ 2 3 /*********************************************************************** 4 * This code is part of GLPK (GNU Linear Programming Kit). 5 * Copyright (C) 2007-2014 Free Software Foundation, Inc. 6 * Written by Andrew Makhorin <mao@gnu.org>. 7 * 8 * GLPK is free software: you can redistribute it and/or modify it 9 * under the terms of the GNU General Public License as published by 10 * the Free Software Foundation, either version 3 of the License, or 11 * (at your option) any later version. 12 * 13 * GLPK is distributed in the hope that it will be useful, but WITHOUT 14 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 15 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 16 * License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with GLPK. If not, see <http://www.gnu.org/licenses/>. 20 ***********************************************************************/ 21 22 #ifndef BFX_H 23 #define BFX_H 24 25 #include "mygmp.h" 26 27 typedef struct BFX BFX; 28 29 #define bfx_create_binv _glp_bfx_create_binv 30 BFX *bfx_create_binv(void); 31 /* create factorization of the basis matrix */ 32 33 #define bfx_is_valid _glp_bfx_is_valid 34 int bfx_is_valid(BFX *binv); 35 /* check if factorization is valid */ 36 37 #define bfx_invalidate _glp_bfx_invalidate 38 void bfx_invalidate(BFX *binv); 39 /* invalidate factorization of the basis matrix */ 40 41 #define bfx_factorize _glp_bfx_factorize 42 int bfx_factorize(BFX *binv, int m, int (*col)(void *info, int j, 43 int ind[], mpq_t val[]), void *info); 44 /* compute factorization of the basis matrix */ 45 46 #define bfx_ftran _glp_bfx_ftran 47 void bfx_ftran(BFX *binv, mpq_t x[], int save); 48 /* perform forward transformation (FTRAN) */ 49 50 #define bfx_btran _glp_bfx_btran 51 void bfx_btran(BFX *binv, mpq_t x[]); 52 /* perform backward transformation (BTRAN) */ 53 54 #define bfx_update _glp_bfx_update 55 int bfx_update(BFX *binv, int j); 56 /* update factorization of the basis matrix */ 57 58 #define bfx_delete_binv _glp_bfx_delete_binv 59 void bfx_delete_binv(BFX *binv); 60 /* delete factorization of the basis matrix */ 61 62 #endif 63 64 /* eof */ 65