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