alpar@1: /* glpbfx.h (basis factorization interface, bignum arithmetic) */ alpar@1: alpar@1: /*********************************************************************** alpar@1: * This code is part of GLPK (GNU Linear Programming Kit). alpar@1: * alpar@1: * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, alpar@1: * 2009, 2010 Andrew Makhorin, Department for Applied Informatics, alpar@1: * Moscow Aviation Institute, Moscow, Russia. All rights reserved. alpar@1: * E-mail: . alpar@1: * alpar@1: * GLPK is free software: you can redistribute it and/or modify it alpar@1: * under the terms of the GNU General Public License as published by alpar@1: * the Free Software Foundation, either version 3 of the License, or alpar@1: * (at your option) any later version. alpar@1: * alpar@1: * GLPK is distributed in the hope that it will be useful, but WITHOUT alpar@1: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY alpar@1: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public alpar@1: * License for more details. alpar@1: * alpar@1: * You should have received a copy of the GNU General Public License alpar@1: * along with GLPK. If not, see . alpar@1: ***********************************************************************/ alpar@1: alpar@1: #ifndef GLPBFX_H alpar@1: #define GLPBFX_H alpar@1: alpar@1: #include "glpgmp.h" alpar@1: alpar@1: #ifndef GLPBFX_DEFINED alpar@1: #define GLPBFX_DEFINED alpar@1: typedef struct { double _opaque_bfx; } BFX; alpar@1: #endif alpar@1: alpar@1: #define bfx_create_binv _glp_bfx_create_binv alpar@1: #define bfx_is_valid _glp_bfx_is_valid alpar@1: #define bfx_invalidate _glp_bfx_invalidate alpar@1: #define bfx_factorize _glp_bfx_factorize alpar@1: #define bfx_ftran _glp_bfx_ftran alpar@1: #define bfx_btran _glp_bfx_btran alpar@1: #define bfx_update _glp_bfx_update alpar@1: #define bfx_delete_binv _glp_bfx_delete_binv alpar@1: alpar@1: BFX *bfx_create_binv(void); alpar@1: /* create factorization of the basis matrix */ alpar@1: alpar@1: int bfx_is_valid(BFX *binv); alpar@1: /* check if factorization is valid */ alpar@1: alpar@1: void bfx_invalidate(BFX *binv); alpar@1: /* invalidate factorization of the basis matrix */ alpar@1: alpar@1: int bfx_factorize(BFX *binv, int m, int (*col)(void *info, int j, alpar@1: int ind[], mpq_t val[]), void *info); alpar@1: /* compute factorization of the basis matrix */ alpar@1: alpar@1: void bfx_ftran(BFX *binv, mpq_t x[], int save); alpar@1: /* perform forward transformation (FTRAN) */ alpar@1: alpar@1: void bfx_btran(BFX *binv, mpq_t x[]); alpar@1: /* perform backward transformation (BTRAN) */ alpar@1: alpar@1: int bfx_update(BFX *binv, int j); alpar@1: /* update factorization of the basis matrix */ alpar@1: alpar@1: void bfx_delete_binv(BFX *binv); alpar@1: /* delete factorization of the basis matrix */ alpar@1: alpar@1: #endif alpar@1: alpar@1: /* eof */