00001 /* Init class declaration. 00002 Copyright (C) 2001-2010 Roberto Bagnara <bagnara@cs.unipr.it> 00003 Copyright (C) 2010-2011 BUGSENG srl (http://bugseng.com) 00004 00005 This file is part of the Parma Polyhedra Library (PPL). 00006 00007 The PPL is free software; you can redistribute it and/or modify it 00008 under the terms of the GNU General Public License as published by the 00009 Free Software Foundation; either version 3 of the License, or (at your 00010 option) any later version. 00011 00012 The PPL is distributed in the hope that it will be useful, but WITHOUT 00013 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00014 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00015 for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with this program; if not, write to the Free Software Foundation, 00019 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA. 00020 00021 For the most up-to-date information see the Parma Polyhedra Library 00022 site: http://www.cs.unipr.it/ppl/ . */ 00023 00024 #ifndef PPL_Init_defs_hh 00025 #define PPL_Init_defs_hh 1 00026 00027 #include "Init.types.hh" 00028 #include "fpu.types.hh" 00029 00030 namespace Parma_Polyhedra_Library { 00031 00040 void set_rounding_for_PPL(); 00041 00050 void restore_pre_PPL_rounding(); 00051 00052 } // namespace Parma_Polyhedra_Library 00053 00054 #ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS 00055 00056 00066 #endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS) 00067 class Parma_Polyhedra_Library::Init { 00068 public: 00070 Init(); 00071 00073 ~Init(); 00074 00075 private: 00077 static unsigned int count; 00078 static fpu_rounding_direction_type old_rounding_direction; 00079 00080 friend void set_rounding_for_PPL(); 00081 friend void restore_pre_PPL_rounding(); 00082 }; 00083 00084 #include "Init.inlines.hh" 00085 00086 00087 #endif // !defined(PPL_Init_defs_hh)
1.6.3