16template <
class T1,
class T2>
class pair {
31template <
class T1,
class T2>
35 return (
h1 << 11) ^ (
h1 >> 21) ^
hash (p.x2);
38template <
class T1,
class T2>
41 return out <<
"[ " << p.x1 <<
", " << p.x2 <<
" ]";
44template <
class T1,
class T2,
class T3>
class triple {
59 return x1 ==
t.x1 &&
x2 ==
t.x2 &&
x3 ==
t.x3;
62 return x1 !=
t.x1 ||
x2 !=
t.x2 ||
x3 !=
t.x3;
66template <
class T1,
class T2,
class T3>
70 h = (h << 11) ^ (h >> 21) ^
hash (
t.x2);
71 return (h << 11) ^ (h >> 21) ^
hash (
t.x3);
74template <
class T1,
class T2,
class T3>
77 return out <<
"[ " <<
t.x1 <<
", " <<
t.x2 <<
", " <<
t.x3 <<
" ]";
80template <
class T1,
class T2,
class T3,
class T4>
class quartet {
98 return x1 ==
q.x1 &&
x2 ==
q.x2 &&
x3 ==
q.x3 &&
x4 ==
q.x4;
101 return x1 !=
q.x1 ||
x2 !=
q.x2 ||
x3 !=
q.x3 ||
x4 !=
q.x4;
105template <
class T1,
class T2,
class T3,
class T4>
109 h = (h << 11) ^ (h >> 21) ^
hash (
q.x2);
110 h = (h << 11) ^ (h >> 21) ^
hash (
q.x3);
111 return (h << 11) ^ (h >> 21) ^
hash (
q.x4);
114template <
class T1,
class T2,
class T3,
class T4>
117 return out <<
"[ " <<
q.x1 <<
", " <<
q.x2 <<
", " <<
q.x3 <<
", " <<
q.x4
121template <
class T1,
class T2,
class T3,
class T4,
class T5>
class quintuple {
142 return x1 ==
q.x1 &&
x2 ==
q.x2 &&
x3 ==
q.x3 &&
x4 ==
q.x4 &&
x5 ==
q.x5;
145 return x1 !=
q.x1 ||
x2 !=
q.x2 ||
x3 !=
q.x3 ||
x4 !=
q.x4 ||
x5 !=
q.x5;
149template <
class T1,
class T2,
class T3,
class T4,
class T5>
153 h = (h << 11) ^ (h >> 21) ^
hash (
q.x2);
154 h = (h << 11) ^ (h >> 21) ^
hash (
q.x3);
155 h = (h << 11) ^ (h >> 21) ^
hash (
q.x4);
156 return (h << 11) ^ (h >> 21) ^
hash (
q.x5);
159template <
class T1,
class T2,
class T3,
class T4,
class T5>
162 return out <<
"[ " <<
q.x1 <<
", " <<
q.x2 <<
", " <<
q.x3 <<
", " <<
q.x4
163 <<
", " <<
q.x5 <<
" ]";
166template <
class T1,
class T2,
class T3,
class T4,
class T5,
class T6>
178 const T5&
y5,
const T6&
y6)
199template <
class T1,
class T2,
class T3,
class T4,
class T5,
class T6>
203 h = (h << 11) ^ (h >> 21) ^
hash (s.x2);
204 h = (h << 11) ^ (h >> 21) ^
hash (s.x3);
205 h = (h << 11) ^ (h >> 21) ^
hash (s.x4);
206 h = (h << 11) ^ (h >> 21) ^
hash (s.x5);
207 return (h << 11) ^ (h >> 21) ^
hash (s.x6);
210template <
class T1,
class T2,
class T3,
class T4,
class T5,
class T6>
213 return out <<
"[ " << s.x1 <<
", " << s.x2 <<
", " << s.x3 <<
", " << s.x4
214 <<
", " << s.x5 <<
", " << s.x6 <<
" ]";
The list class represents a linked list.
bool operator!=(const pair &p)
pair(const T1 &y1, const T2 &y2)
bool operator==(const pair &p)
pair & operator=(const pair &p)
bool operator==(const quartet &q)
bool operator!=(const quartet &q)
quartet & operator=(const quartet &q)
quartet(const quartet &q)
quartet(const T1 &y1, const T2 &y2, const T3 &y3, const T4 &y4)
quintuple & operator=(const quintuple &q)
quintuple(const quintuple &q)
bool operator==(const quintuple &q)
bool operator!=(const quintuple &q)
quintuple(const T1 &y1, const T2 &y2, const T3 &y3, const T4 &y4, const T5 &y5)
sextuple & operator=(const sextuple &s)
bool operator==(const sextuple &s)
bool operator!=(const sextuple &s)
sextuple(const sextuple &s)
sextuple(const T1 &y1, const T2 &y2, const T3 &y3, const T4 &y4, const T5 &y5, const T6 &y6)
triple(const T1 &y1, const T2 &y2, const T3 &y3)
bool operator!=(const triple &t)
triple & operator=(const triple &t)
bool operator==(const triple &t)
int hash(const pair< T1, T2 > &p)
tm_ostream & operator<<(tm_ostream &out, const pair< T1, T2 > &p)