Lp.h

Go to the documentation of this file.

00001 /*
00002  * Lurupa, a library for verified linear programming.
00003  * Copyright (C) 2006 by Christian Keil
00004  *
00005  * This file is part of Lurupa.
00006  *
00007  * Lurupa is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU Lesser General Public
00009  * License as published by the Free Software Foundation; either
00010  * version 2.1 of the License, or (at your option) any later version.
00011  *
00012  * This library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015  * Lesser General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Lesser General Public
00018  * License along with this library; if not, write to the Free Software
00019  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
00020  * USA
00021  */
00022 
00034 #ifndef LURUPA_LP_H
00035 #define LURUPA_LP_H
00036 
00037 #include <lurupa/globals.h>
00038 #include <lurupa/Lurupa.h>
00039 #include <lurupa/Solver_module.h>
00040 #include <IntervalMatrix.h>
00041 
00042 #include <IntervalVector.h>
00043 
00051 struct Primal_deflation {
00052   VECTOR a;   
00054   VECTOR xl;  
00055   VECTOR xu;  
00056 };
00057 
00066 class LU_LURUPA_SCOPE Lp {
00067 public:
00068   INTERVAL_MATRIX IA;         
00069   INTERVAL_MATRIX IB;         
00071   INTERVAL_VECTOR ia;         
00072   INTERVAL_VECTOR ib;         
00073   INTERVAL_VECTOR ic;         
00074   VECTOR          xl;         
00075   VECTOR          xu;         
00076   INTERVAL_VECTOR ix;         
00078   INTERVAL_VECTOR iy;         
00080   INTERVAL_VECTOR iz;         
00082   REAL infinite;              
00084   int free_variables_size;    
00085   int *free_variables;        
00086   int non_fixed_vars;         
00087   Solver_status feasibility;  
00088   bool maximize;              
00090   char *name;                 
00092   Lp_solver *module;          
00094   Lurupa *lurupa;             
00097   Lp();
00099   Lp(Lurupa *lurupa);
00100 
00102   ~Lp();
00103 
00105   void set_lurupa(Lurupa *lurupa);
00106 
00108   bool is_consistent() const;
00109 };
00110 
00111 #endif /* LURUPA_LP_H */

Generated on Thu Jun 26 18:08:52 2008 for Lurupa by  doxygen 1.5.6