tiebreak.hpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 namespace Gecode {
00035
00037 template<class VarBranch>
00038 class TieBreak {
00039 public:
00041 VarBranch a, b, c, d;
00043 TieBreak(VarBranch a0 = VarBranch(),
00044 VarBranch b0 = VarBranch(),
00045 VarBranch c0 = VarBranch(),
00046 VarBranch d0 = VarBranch());
00047 };
00048
00055
00056 template<class VarBranch>
00057 TieBreak<VarBranch>
00058 tiebreak(VarBranch a, VarBranch b);
00060 template<class VarBranch>
00061 TieBreak<VarBranch>
00062 tiebreak(VarBranch a, VarBranch b, VarBranch c);
00064 template<class VarBranch>
00065 TieBreak<VarBranch>
00066 tiebreak(VarBranch a, VarBranch b, VarBranch c, VarBranch d);
00068
00069
00070 template<class VarBranch>
00071 forceinline
00072 TieBreak<VarBranch>::TieBreak(VarBranch a0,
00073 VarBranch b0,
00074 VarBranch c0,
00075 VarBranch d0)
00076 : a(a0), b(b0), c(c0), d(d0) {}
00077
00078 template<class VarBranch>
00079 TieBreak<VarBranch>
00080 tiebreak(VarBranch a, VarBranch b) {
00081 TieBreak<VarBranch> ab(a,b);
00082 return ab;
00083 }
00084
00085 template<class VarBranch>
00086 TieBreak<VarBranch>
00087 tiebreak(VarBranch a, VarBranch b, VarBranch c) {
00088 TieBreak<VarBranch> abc(a,b,c);
00089 return abc;
00090 }
00091
00092 template<class VarBranch>
00093 TieBreak<VarBranch>
00094 tiebreak(VarBranch a, VarBranch b, VarBranch c, VarBranch d) {
00095 TieBreak<VarBranch> abcd(a,b,c,d);
00096 return abcd;
00097 }
00098
00099 }
00100
00101