00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef dbl___BASIS_H
00025 #define dbl___BASIS_H
00026
00027 #include "config.h"
00028 #include "dbl_dstruct.h"
00029 #include "dbl_lpdefs.h"
00030 #include "dbl_lpdata.h"
00031
00032 #if EGLPNUM_TYPE != DBL_TYPE && EGLPNUM_TYPE != LDBL_TYPE
00033 extern double dbl_CB_PRI_RLIMIT;
00034 extern double dbl_CB_INF_RATIO;
00035 extern double dbl_CB_EPS;
00036 #endif
00037
00038 typedef struct dbl_var_data
00039 {
00040 int nartif;
00041 int nslacks;
00042 int nfree;
00043 int nbndone;
00044 int nbounded;
00045 int nfixed;
00046 double cmax;
00047 }
00048 dbl_var_data;
00049
00050 void dbl_ILLbasis_init_vardata (
00051 dbl_var_data * vd);
00052 void dbl_ILLbasis_clear_vardata (
00053 dbl_var_data * vd);
00054
00055 int dbl_ILLbasis_build_basisinfo (
00056 dbl_lpinfo * lp),
00057 dbl_ILLbasis_get_initial (
00058 dbl_lpinfo * lp,
00059 int algorithm),
00060 dbl_ILLbasis_get_cinitial (
00061 dbl_lpinfo * lp,
00062 int algorithm),
00063 dbl_ILLbasis_load (
00064 dbl_lpinfo * lp,
00065 dbl_ILLlp_basis * B),
00066 dbl_ILLbasis_tableau_row (
00067 dbl_lpinfo * lp,
00068 int row,
00069 double * brow,
00070 double * trow,
00071 double * rhs,
00072 int strict),
00073 dbl_ILLbasis_factor (
00074 dbl_lpinfo * lp,
00075 int *singular),
00076 dbl_ILLbasis_refactor (
00077 dbl_lpinfo * lp),
00078 dbl_ILLbasis_update (
00079 dbl_lpinfo * lp,
00080 dbl_svector * y,
00081 int lindex,
00082 int *refactor,
00083 int *singular);
00084
00085 void dbl_ILLbasis_column_solve (
00086 dbl_lpinfo * lp,
00087 dbl_svector * rhs,
00088 dbl_svector * soln),
00089 dbl_ILLbasis_column_solve_update (
00090 dbl_lpinfo * lp,
00091 dbl_svector * rhs,
00092 dbl_svector * upd,
00093 dbl_svector * soln),
00094 dbl_ILLbasis_row_solve (
00095 dbl_lpinfo * lp,
00096 dbl_svector * rhs,
00097 dbl_svector * soln),
00098 dbl_ILLbasis_free_basisinfo (
00099 dbl_lpinfo * lp),
00100 dbl_ILLbasis_free_fbasisinfo (
00101 dbl_lpinfo * lp),
00102 dbl_ILLbasis_init_basisinfo (
00103 dbl_lpinfo * lp);
00104
00105 #endif