00001 /* H79_Certificate class declaration. 00002 Copyright (C) 2001-2006 Roberto Bagnara <bagnara@cs.unipr.it> 00003 00004 This file is part of the Parma Polyhedra Library (PPL). 00005 00006 The PPL is free software; you can redistribute it and/or modify it 00007 under the terms of the GNU General Public License as published by the 00008 Free Software Foundation; either version 2 of the License, or (at your 00009 option) any later version. 00010 00011 The PPL is distributed in the hope that it will be useful, but WITHOUT 00012 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00013 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00014 for more details. 00015 00016 You should have received a copy of the GNU General Public License 00017 along with this program; if not, write to the Free Software Foundation, 00018 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA. 00019 00020 For the most up-to-date information see the Parma Polyhedra Library 00021 site: http://www.cs.unipr.it/ppl/ . */ 00022 00023 #ifndef PPL_H79_Certificate_defs_hh 00024 #define PPL_H79_Certificate_defs_hh 1 00025 00026 #include "H79_Certificate.types.hh" 00027 #include "Polyhedron.types.hh" 00028 #include "globals.types.hh" 00029 #include <cassert> 00030 #include <vector> 00031 00033 00040 class Parma_Polyhedra_Library::H79_Certificate { 00041 public: 00043 H79_Certificate(); 00044 00046 template <typename PH> 00047 H79_Certificate(const PH& ph); 00048 00050 H79_Certificate(const Polyhedron& ph); 00051 00053 H79_Certificate(const H79_Certificate& y); 00054 00056 ~H79_Certificate(); 00057 00059 00068 int compare(const H79_Certificate& y) const; 00069 00071 template <typename PH> 00072 int compare(const PH& ph) const; 00073 00075 int compare(const Polyhedron& ph) const; 00076 00078 00082 struct Compare { 00084 bool operator()(const H79_Certificate& x, 00085 const H79_Certificate& y) const; 00086 }; 00087 00088 private: 00090 dimension_type affine_dim; 00092 dimension_type num_constraints; 00093 }; 00094 00095 #include "H79_Certificate.inlines.hh" 00096 00097 #endif // !defined(PPL_H79_Certificate_defs_hh)