1 /* Coefficient class implementation (non-inline functions).
2    Copyright (C) 2001-2010 Roberto Bagnara <bagnara@cs.unipr.it>
3    Copyright (C) 2010-2016 BUGSENG srl (http://bugseng.com)
4 
5 This file is part of the Parma Polyhedra Library (PPL).
6 
7 The PPL is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by the
9 Free Software Foundation; either version 3 of the License, or (at your
10 option) any later version.
11 
12 The PPL is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software Foundation,
19 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA.
20 
21 For the most up-to-date information see the Parma Polyhedra Library
22 site: http://bugseng.com/products/ppl/ . */
23 
24 #include "ppl-config.h"
25 #include "Coefficient_defs.hh"
26 
27 namespace Parma_Polyhedra_Library {
28 
29 #if defined(PPL_CHECKED_INTEGERS) || defined(PPL_NATIVE_INTEGERS)
30 void
Coefficient_constants_initialize()31 Coefficient_constants_initialize() {
32 }
33 
34 void
Coefficient_constants_finalize()35 Coefficient_constants_finalize() {
36 }
37 #endif
38 
39 #ifdef PPL_GMP_INTEGERS
40 const Coefficient* Coefficient_zero_p = 0;
41 const Coefficient* Coefficient_one_p = 0;
42 
43 void
Coefficient_constants_initialize()44 Coefficient_constants_initialize() {
45   PPL_ASSERT(Coefficient_zero_p == 0);
46   Coefficient_zero_p = new Coefficient(0);
47 
48   PPL_ASSERT(Coefficient_one_p == 0);
49   Coefficient_one_p = new Coefficient(1);
50 }
51 
52 void
Coefficient_constants_finalize()53 Coefficient_constants_finalize() {
54   PPL_ASSERT(Coefficient_zero_p != 0);
55   delete Coefficient_zero_p;
56   Coefficient_zero_p = 0;
57 
58   PPL_ASSERT(Coefficient_one_p != 0);
59   delete Coefficient_one_p;
60   Coefficient_one_p = 0;
61 }
62 #endif
63 
64 } // namespace Parma_Polyhedra_Library
65