basis.h

Go to the documentation of this file.
00001 /****************************************************************************/
00002 /*                                                                          */
00003 /*  This file is part of QSopt_ex.                                          */
00004 /*                                                                          */
00005 /*  (c) Copyright 2006 by David Applegate, William Cook, Sanjeeb Dash,      */
00006 /*  and Daniel Espinoza                                                     */
00007 /*                                                                          */
00008 /*  Sanjeeb Dash ownership of copyright in QSopt_ex is derived from his     */
00009 /*  copyright in QSopt.                                                     */
00010 /*                                                                          */
00011 /*  This code may be used under the terms of the GNU General Public License */
00012 /*  (Version 2.1 or later) as published by the Free Software Foundation.    */
00013 /*                                                                          */
00014 /*  Alternatively, use is granted for research purposes only.               */
00015 /*                                                                          */
00016 /*  It is your choice of which of these two licenses you are operating      */
00017 /*  under.                                                                  */
00018 /*                                                                          */
00019 /*  We make no guarantees about the correctness or usefulness of this code. */
00020 /*                                                                          */
00021 /****************************************************************************/
00022 
00023 /* RCSINFO $Id: basis.h,v 1.3 2003/11/05 16:57:39 meven Exp $ */
00024 #ifndef __BASIS_H
00025 #define __BASIS_H
00026 
00027 #include "config.h"
00028 #include "dstruct.h"
00029 #include "lpdefs.h"
00030 #include "lpdata.h"
00031 
00032 #if EGLPNUM_TYPE != DBL_TYPE && EGLPNUM_TYPE != LDBL_TYPE
00033 extern EGlpNum_t CB_PRI_RLIMIT; /* = 0.25 */
00034 extern EGlpNum_t CB_INF_RATIO;  /* = 10.0 */
00035 extern EGlpNum_t CB_EPS;        /* = 0.001 */
00036 #endif
00037 
00038 typedef struct var_data
00039 {
00040   int nartif;
00041   int nslacks;
00042   int nfree;
00043   int nbndone;
00044   int nbounded;
00045   int nfixed;
00046   EGlpNum_t cmax;
00047 }
00048 var_data;
00049 
00050 void ILLbasis_init_vardata (
00051   var_data * vd);
00052 void ILLbasis_clear_vardata (
00053   var_data * vd);
00054 
00055 int ILLbasis_build_basisinfo (
00056   lpinfo * lp),
00057   ILLbasis_get_initial (
00058   lpinfo * lp,
00059   int algorithm),
00060   ILLbasis_get_cinitial (
00061   lpinfo * lp,
00062   int algorithm),
00063   ILLbasis_load (
00064   lpinfo * lp,
00065   ILLlp_basis * B),
00066   ILLbasis_tableau_row (
00067   lpinfo * lp,
00068   int row,
00069   EGlpNum_t * brow,
00070   EGlpNum_t * trow,
00071   EGlpNum_t * rhs,
00072   int strict),
00073   ILLbasis_factor (
00074   lpinfo * lp,
00075   int *singular),
00076   ILLbasis_refactor (
00077   lpinfo * lp),
00078   ILLbasis_update (
00079   lpinfo * lp,
00080   svector * y,
00081   int lindex,
00082   int *refactor,
00083   int *singular);
00084 
00085 void ILLbasis_column_solve (
00086   lpinfo * lp,
00087   svector * rhs,
00088   svector * soln),
00089   ILLbasis_column_solve_update (
00090   lpinfo * lp,
00091   svector * rhs,
00092   svector * upd,
00093   svector * soln),
00094   ILLbasis_row_solve (
00095   lpinfo * lp,
00096   svector * rhs,
00097   svector * soln),
00098   ILLbasis_free_basisinfo (
00099   lpinfo * lp),
00100   ILLbasis_free_fbasisinfo (
00101   lpinfo * lp),
00102   ILLbasis_init_basisinfo (
00103   lpinfo * lp);
00104 
00105 #endif /* __BASIS_H */

Generated on Wed Apr 22 09:16:09 2009 for QSopt_ex by  doxygen 1.5.2