alpar@1: /* glpbfd.h (LP basis factorization driver) */ 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 GLPBFD_H alpar@1: #define GLPBFD_H alpar@1: alpar@1: #ifndef GLPBFD_PRIVATE alpar@1: typedef struct { double _opaque_bfd[100]; } BFD; alpar@1: #endif alpar@1: alpar@1: /* return codes: */ alpar@1: #define BFD_ESING 1 /* singular matrix */ alpar@1: #define BFD_ECOND 2 /* ill-conditioned matrix */ alpar@1: #define BFD_ECHECK 3 /* insufficient accuracy */ alpar@1: #define BFD_ELIMIT 4 /* update limit reached */ alpar@1: #define BFD_EROOM 5 /* SVA overflow */ alpar@1: alpar@1: #define bfd_create_it _glp_bfd_create_it alpar@1: BFD *bfd_create_it(void); alpar@1: /* create LP basis factorization */ alpar@1: alpar@1: #define bfd_set_parm _glp_bfd_set_parm alpar@1: void bfd_set_parm(BFD *bfd, const void *parm); alpar@1: /* change LP basis factorization control parameters */ alpar@1: alpar@1: #define bfd_factorize _glp_bfd_factorize alpar@1: int bfd_factorize(BFD *bfd, int m, const int bh[], int (*col) alpar@1: (void *info, int j, int ind[], double val[]), void *info); alpar@1: /* compute LP basis factorization */ alpar@1: alpar@1: #define bfd_ftran _glp_bfd_ftran alpar@1: void bfd_ftran(BFD *bfd, double x[]); alpar@1: /* perform forward transformation (solve system B*x = b) */ alpar@1: alpar@1: #define bfd_btran _glp_bfd_btran alpar@1: void bfd_btran(BFD *bfd, double x[]); alpar@1: /* perform backward transformation (solve system B'*x = b) */ alpar@1: alpar@1: #define bfd_update_it _glp_bfd_update_it alpar@1: int bfd_update_it(BFD *bfd, int j, int bh, int len, const int ind[], alpar@1: const double val[]); alpar@1: /* update LP basis factorization */ alpar@1: alpar@1: #define bfd_get_count _glp_bfd_get_count alpar@1: int bfd_get_count(BFD *bfd); alpar@1: /* determine factorization update count */ alpar@1: alpar@1: #define bfd_delete_it _glp_bfd_delete_it alpar@1: void bfd_delete_it(BFD *bfd); alpar@1: /* delete LP basis factorization */ alpar@1: alpar@1: #endif alpar@1: alpar@1: /* eof */