exact.h File Reference


Detailed Description

Definition in file exact.h.

#include "qs_config.h"
#include "symtab.h"
#include "dbl_basis.h"
#include "dbl_dheaps_i.h"
#include "dbl_dstruct.h"
#include "dbl_factor.h"
#include "dbl_format.h"
#include "dbl_lpdata.h"
#include "dbl_lpdefs.h"
#include "dbl_mps.h"
#include "dbl_price.h"
#include "dbl_priority.h"
#include "dbl_qsopt.h"
#include "dbl_qstruct.h"
#include "dbl_ratio.h"
#include "dbl_rawlp.h"
#include "dbl_readline.h"
#include "dbl_read_lp.h"
#include "dbl_read_mps.h"
#include "dbl_simplex.h"
#include "dbl_write_lp.h"
#include "dbl_lib.h"
#include "dbl_editor.h"
#include "mpq_lpdata.h"
#include "mpq_lpdefs.h"
#include "mpq_basis.h"
#include "mpq_dheaps_i.h"
#include "mpq_dstruct.h"
#include "mpq_factor.h"
#include "mpq_format.h"
#include "mpq_mps.h"
#include "mpq_price.h"
#include "mpq_priority.h"
#include "mpq_qsopt.h"
#include "mpq_qstruct.h"
#include "mpq_ratio.h"
#include "mpq_rawlp.h"
#include "mpq_readline.h"
#include "mpq_read_lp.h"
#include "mpq_read_mps.h"
#include "mpq_simplex.h"
#include "mpq_write_lp.h"
#include "mpq_lib.h"
#include "mpq_editor.h"
#include "fp20_basis.h"
#include "fp20_dheaps_i.h"
#include "fp20_dstruct.h"
#include "fp20_factor.h"
#include "fp20_format.h"
#include "fp20_lpdata.h"
#include "fp20_lpdefs.h"
#include "fp20_mps.h"
#include "fp20_price.h"
#include "fp20_priority.h"
#include "fp20_qsopt.h"
#include "fp20_qstruct.h"
#include "fp20_ratio.h"
#include "fp20_rawlp.h"
#include "fp20_readline.h"
#include "fp20_read_lp.h"
#include "fp20_read_mps.h"
#include "fp20_simplex.h"
#include "fp20_write_lp.h"
#include "fp20_lib.h"
#include "fp20_editor.h"
#include "mpf_basis.h"
#include "mpf_dheaps_i.h"
#include "mpf_dstruct.h"
#include "mpf_factor.h"
#include "mpf_format.h"
#include "mpf_lpdata.h"
#include "mpf_lpdefs.h"
#include "mpf_mps.h"
#include "mpf_price.h"
#include "mpf_priority.h"
#include "mpf_qsopt.h"
#include "mpf_qstruct.h"
#include "mpf_ratio.h"
#include "mpf_rawlp.h"
#include "mpf_readline.h"
#include "mpf_read_lp.h"
#include "mpf_read_mps.h"
#include "mpf_simplex.h"
#include "mpf_write_lp.h"
#include "mpf_lib.h"
#include "mpf_editor.h"
#include "ldbl_basis.h"
#include "ldbl_dheaps_i.h"
#include "ldbl_dstruct.h"
#include "ldbl_factor.h"
#include "ldbl_format.h"
#include "ldbl_lpdata.h"
#include "ldbl_lpdefs.h"
#include "ldbl_mps.h"
#include "ldbl_price.h"
#include "ldbl_priority.h"
#include "ldbl_qsopt.h"
#include "ldbl_qstruct.h"
#include "ldbl_ratio.h"
#include "ldbl_rawlp.h"
#include "ldbl_readline.h"
#include "ldbl_read_lp.h"
#include "ldbl_read_mps.h"
#include "ldbl_simplex.h"
#include "ldbl_write_lp.h"
#include "ldbl_lib.h"
#include "ldbl_editor.h"
#include "float128_basis.h"
#include "float128_dheaps_i.h"
#include "float128_dstruct.h"
#include "float128_factor.h"
#include "float128_format.h"
#include "float128_lpdata.h"
#include "float128_lpdefs.h"
#include "float128_mps.h"
#include "float128_price.h"
#include "float128_priority.h"
#include "float128_qsopt.h"
#include "float128_qstruct.h"
#include "float128_ratio.h"
#include "float128_rawlp.h"
#include "float128_readline.h"
#include "float128_read_lp.h"
#include "float128_read_mps.h"
#include "float128_simplex.h"
#include "float128_write_lp.h"
#include "float128_lib.h"
#include "float128_editor.h"
#include "eg_exutil.h"

Include dependency graph for exact.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define QS_EXACT_MAX_ITER   12
 This constant define the maximum number of try's for the exact solver with mpf_t numbers while incrementing the precision.
#define QScopy_array_dbl_mpq(array)
 create a copy of a double array into mpq_t array.
#define QScopy_array_mpf_mpq(array)
 create a copy of a mpf_t array into mpq_t array.
#define QScopy_array_mpq_dbl(array)
 create a copy of a mpq_t array into a double array.
#define QScopy_array_mpq_mpf(array)
 create a copy of a mpq_t array into a mpf_t array.
#define QSEXACT_SAVE_INT   0
 If enabled, save the intermediate problems created by the functions QScopy_prob_mpq_dbl and QScopy_prob_mpq_mpf.
#define QSEXACT_SAVE_OPTIMAL   0
 If enabled, save the last problem proved to be optimal, and its solution.
#define QSexact_set_precision(precision)   mpf_QSset_precision(precision)
 Set the number of bits to use with mpf_t type numbers and change all internal constants as needed.

Functions

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.
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 QSexact_write_row (EGioFile_t *out_f, mpq_ILLlpdata *lp, int row)
 Write a given row from the LP into the given stream, in exact arithmetic.
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
 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


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