quadratic_cuts_check.hpp

Go to the documentation of this file.
00001 /* $Id: quadratic_cuts_check.hpp 508 2011-02-15 21:52:44Z pbelotti $
00002  *
00003  * Name:    quadratic_cuts_check.hpp
00004  * Author:  Andrea Qualizza
00005  * Purpose: 
00006  *
00007  * This file is licensed under the Eclipse Public License (EPL)
00008  */
00009 
00010 #ifndef QUADRATIC_CUTS_CHECK_HPP
00011 #define QUADRATIC_CUTS_CHECK_HPP
00012 
00013 #include <tracer.hpp>
00014 
00015 #define indexQ(i,j,n) ((n) + (i) * (2*(n)-1-(i)) / 2 + (j))
00016 
00017 
00018 
00019 #define aaRECOMPUTE_XTILDE_EV_FROM_SCRATCH
00020 #define QUADRATIC_CUTS_DEBUG
00021 #define QUADRATIC_CUTS_CHECK_TOLERANCE 1e-8
00022 
00023 class QuadraticCuts{
00024 public:
00025         QuadraticCuts(int n, const double *initial_sol, Tracer *tracer);
00026         ~QuadraticCuts();
00027         void refresh(const double *current_sol);
00028 
00029 private:
00030         int n_;
00031         double *L; //L = X - xxT
00032         double *sol;
00033         double *previous_sol;
00034         double **eigenvectors;
00035         int card_ev;
00036 #ifdef RECOMPUTE_XTILDE_EV_FROM_SCRATCH
00037         double *Xtilde;
00038         double **eigenvectors_Xtilde;
00039         int card_ev_Xtilde;
00040 #endif
00041         Tracer *tracer_;
00042 
00043         void updateSolution(const double *current_sol);
00044         void computeEigenvectorsFromCurrentSolution();
00045         void checkQuadraticDiagonalCutsOnCurrentSolution();
00046         void checkPreviousQuadraticEVCutsOnCurrentSolution();
00047 };
00048 
00049 #endif
00050 

Generated on Mon Aug 8 03:06:41 2011 for Couenne by  doxygen 1.4.7