exact.c File Reference


Detailed Description

Definition in file exact.c.

#include "exact.h"
#include "util.h"

Include dependency graph for exact.c:

Go to the source code of this file.

Functions

static void infeasible_output (mpq_QSdata *p_mpq, mpq_t *const y, mpq_t *y_mpq)
 print into screen (if enable) a message indicating that we have successfully prove infeasibility, and save (if y is non NULL ) the dual ray solution provided in y_mpq.
int mpq_grab_cache (mpq_QSdata *p, int status)
void mpq_ILLfct_check_dfeasible (mpq_lpinfo *lp, mpq_feas_info *fs, const mpq_t ftol)
void mpq_ILLfct_check_pfeasible (mpq_lpinfo *lp, mpq_feas_info *fs, const mpq_t ftol)
void mpq_ILLfct_compute_dobj (mpq_lpinfo *lp)
void mpq_ILLfct_compute_dz (mpq_lpinfo *lp)
void mpq_ILLfct_compute_phaseI_piz (mpq_lpinfo *lp)
void mpq_ILLfct_compute_piz (mpq_lpinfo *lp)
void mpq_ILLfct_compute_xbz (mpq_lpinfo *lp)
void mpq_ILLfct_set_status_values (mpq_lpinfo *lp, int pstatus, int dstatus, int ptype, int dtype)
void mpq_ILLfct_set_variable_type (mpq_lpinfo *lp)
static void optimal_output (mpq_QSdata *p_mpq, mpq_t *const x, mpq_t *const y, mpq_t *x_mpq, mpq_t *y_mpq)
 print into screen (if enable) a message indicating that we have successfully solved the problem at optimality, and save (if x and y are non NULL respectivelly) the optimal primal/dual solution provided in x_mpq and y_mpq.
dbl_QSdataQScopy_prob_mpq_dbl (mpq_QSdata *p, const char *newname)
 Copy an exact problem (mpq_QSdata) to a regular double version of the problem (dbl_QSdata).
mpf_QSdataQScopy_prob_mpq_mpf (mpq_QSdata *p, const char *newname)
 Copy an exact problem (mpq_QSdata) to a regular double version of the problem (dbl_QSdata).
int QSexact_basis_dualstatus (mpq_QSdata *p_mpq, QSbasis *basis, char *result, mpq_t *dobjval, const int msg_lvl)
 test whether given basis is dual feasible in rational arithmetic.
int QSexact_basis_optimalstatus (mpq_QSdata *p_mpq, QSbasis *basis, char *result, const int msg_lvl)
 test whether given basis is primal and dual feasible in rational arithmetic.
static int QSexact_basis_status (mpq_QSdata *p_mpq, int *status, QSbasis *const basis, const int msg_lvl, int *const simplexalgo)
 get the status for a given basis in rational arithmetic, it should also leave everything set to get primal/dual solutions when needed.
int QSexact_infeasible_test (mpq_QSdata *p, mpq_t *d_sol)
 Check if the given dual vector is a proof of infeasibility for the given exact problem.
int QSexact_optimal_test (mpq_QSdata *p, mpq_t *p_sol, mpq_t *d_sol, QSbasis *basis)
 Test if a given primal/dual solution is feasible and has the same objective value.
int QSexact_print_sol (mpq_QSdata *p, EGioFile_t *out_f)
 Print into a file the optimal solution.
int QSexact_solver (mpq_QSdata *p_mpq, mpq_t *const x, mpq_t *const y, QSbasis *const basis, int simplexalgo, int *status)
 Given an mpq_QSdata problem, solve it exactly.
int QSexact_verify (mpq_QSdata *p_mpq, QSbasis *basis, int useprestep, double *dbl_p_sol, double *dbl_d_sol, char *result, mpq_t *dobjval, const int msg_lvl)
 test whether given basis is dual feasible in rational arithmetic. if wanted it will first directly test the corresponding approximate dual and primal solution (corrected via dual variables for bounds and primal variables for slacks if possible) for optimality before performing the dual feasibility test on the more expensive exact basic solution.
void QSexactClear (void)
 This function must be called at the end of the program to free all internal data used in the QSexact structures, once this function is called any operation on EGxxx mpq_xxx mpf_xx QSxx may fail.
void QSexactStart (void)
 Initializator for global data, this is needed mainly for defining constants in extended floating point precision and for rational precision. This call should be done BEFORE any mpq_xxx mpf_xxx QSxx EGxx call.

Variables

int __QSexact_setup = 0
 indicate if the global data needed for QSexact has been initialized, if zero, initialization routine should be called. This is provided to allow syncronization between libraries
static const char __sp [81]
 Used as separator while printing output to the screen (controled by enabling simplex_display in the mpq_QSdata.
mpq_t mpq_ILL_MAXDOUBLE
mpq_t mpq_ILL_MINDOUBLE


Generated on Thu Mar 29 09:35:14 2012 for QSopt_ex by  doxygen 1.4.7