1 /* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
2 /*
3  *  Main authors:
4  *     Christian Schulte <schulte@gecode.org>
5  *     Guido Tack <tack@gecode.org>
6  *
7  *  Copyright:
8  *     Christian Schulte, 2009
9  *     Guido Tack, 2010
10  *
11  *  This file is part of Gecode, the generic constraint
12  *  development environment:
13  *     http://www.gecode.org
14  *
15  *  Permission is hereby granted, free of charge, to any person obtaining
16  *  a copy of this software and associated documentation files (the
17  *  "Software"), to deal in the Software without restriction, including
18  *  without limitation the rights to use, copy, modify, merge, publish,
19  *  distribute, sublicense, and/or sell copies of the Software, and to
20  *  permit persons to whom the Software is furnished to do so, subject to
21  *  the following conditions:
22  *
23  *  The above copyright notice and this permission notice shall be
24  *  included in all copies or substantial portions of the Software.
25  *
26  *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
27  *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
28  *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
29  *  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30  *  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
31  *  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
32  *  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
33  *
34  */
35 
36 namespace Gecode { namespace Int { namespace Unary {
37 
38   template<class Char, class Traits>
39   std::basic_ostream<Char,Traits>&
operator <<(std::basic_ostream<Char,Traits> & os,const ManFixPTaskBwd & t)40   operator <<(std::basic_ostream<Char,Traits>& os, const ManFixPTaskBwd& t) {
41     std::basic_ostringstream<Char,Traits> s;
42     s.copyfmt(os); s.width(0);
43     s << t.est() << ':' << t.pmin() << ':' << t.lct();
44     return os << s.str();
45   }
46 
47   template<class Char, class Traits>
48   std::basic_ostream<Char,Traits>&
operator <<(std::basic_ostream<Char,Traits> & os,const ManFixPSETaskBwd & t)49   operator <<(std::basic_ostream<Char,Traits>& os,
50               const ManFixPSETaskBwd& t) {
51     std::basic_ostringstream<Char,Traits> s;
52     s.copyfmt(os); s.width(0);
53     s << t.est() << ':' << t.pmin() << ':' << t.lct();
54     return os << s.str();
55   }
56 
57   template<class Char, class Traits>
58   std::basic_ostream<Char,Traits>&
operator <<(std::basic_ostream<Char,Traits> & os,const OptFixPTaskBwd & t)59   operator <<(std::basic_ostream<Char,Traits>& os, const OptFixPTaskBwd& t) {
60     std::basic_ostringstream<Char,Traits> s;
61     s.copyfmt(os); s.width(0);
62     s << t.est() << ':' << t.pmin() << ':' << t.lct() << ":"
63       << (t.mandatory() ? '1' : (t.optional() ? '?' : '0'));
64     return os << s.str();
65   }
66 
67   template<class Char, class Traits>
68   std::basic_ostream<Char,Traits>&
operator <<(std::basic_ostream<Char,Traits> & os,const OptFixPSETaskBwd & t)69   operator <<(std::basic_ostream<Char,Traits>& os,
70               const OptFixPSETaskBwd& t) {
71     std::basic_ostringstream<Char,Traits> s;
72     s.copyfmt(os); s.width(0);
73     s << t.est() << ':' << t.pmin() << ':' << t.lct() << ":"
74       << (t.mandatory() ? '1' : (t.optional() ? '?' : '0'));
75     return os << s.str();
76   }
77 
78   template<class Char, class Traits>
79   std::basic_ostream<Char,Traits>&
operator <<(std::basic_ostream<Char,Traits> & os,const ManFlexTaskBwd & t)80   operator <<(std::basic_ostream<Char,Traits>& os, const ManFlexTaskBwd& t) {
81     std::basic_ostringstream<Char,Traits> s;
82     s.copyfmt(os); s.width(0);
83     s << t.est() << ':' << t.lst() << ':' << t.pmin() << ':'
84       << t.pmax() << ':' << t.ect() << ':' << t.lct();
85     return os << s.str();
86   }
87 
88   template<class Char, class Traits>
89   std::basic_ostream<Char,Traits>&
operator <<(std::basic_ostream<Char,Traits> & os,const OptFlexTaskBwd & t)90   operator <<(std::basic_ostream<Char,Traits>& os, const OptFlexTaskBwd& t) {
91     std::basic_ostringstream<Char,Traits> s;
92     s.copyfmt(os); s.width(0);
93     s << t.est() << ':' << t.lst() << ':' << t.pmin() << ':'
94       << t.pmax() << ':' << t.ect() << ':' << t.lct() << ':'
95       << (t.mandatory() ? '1' : (t.optional() ? '?' : '0'));
96     return os << s.str();
97   }
98 
99 }}}
100 
101 // STATISTICS: int-var
102