20 if ( p ==
ABC )
return i;
23 if ( i ==
A )
return C;
24 else if ( i ==
B )
return A;
25 else if ( i ==
C )
return B;
29 if ( i ==
A )
return C;
30 else if ( i ==
B )
return A;
31 else if ( i ==
C )
return B;
35 if ( i ==
A )
return B;
36 else if ( i ==
B )
return C;
37 else if ( i ==
C )
return A;
41 if ( i ==
A )
return C;
42 else if ( i ==
B )
return B;
43 else if ( i ==
C )
return A;
47 if ( i ==
A )
return B;
48 else if ( i ==
B )
return A;
49 else if ( i ==
C )
return C;
53 if ( i ==
A )
return A;
54 else if ( i ==
B )
return C;
55 else if ( i ==
C )
return B;
61 assert( i1 != i2 && i2 != i3 && i3 != i1 );
62 if ( i1 ==
A )
return ( i2 ==
B ) ?
ABC :
ACB;
63 if ( i1 ==
B )
return ( i2 ==
C ) ?
BCA :
BAC;
64 if ( i1 ==
C )
return ( i2 ==
A ) ?
CAB :
CBA;
83 assert( 0 <= i && i <= 2 );
125 default: assert( 0 );
132 default: assert( 0 );
139 default: assert( 0 );
165 if ( i ==
BC ) ret =
AB;
166 else if ( i ==
CA ) ret =
BC;
173 if ( i ==
BC ) ret =
CA;
174 else if ( i ==
CA ) ret =
AB;
219 if ( strcmp( str,
"A" ) )
return A;
220 else if ( strcmp( str,
"B" ) )
return B;
221 else if ( strcmp( str,
"C" ) )
return C;
224 std::cerr << __FILE__ <<
":" << __LINE__ <<
"Should not reach here!" << std::endl;
230 if ( !strcmp( str,
"AB" ) || !strcmp( str,
"BA" ) )
return AB;
231 else if ( !strcmp( str,
"BC" ) || !strcmp( str,
"CB" ) )
return BC;
232 else if ( !strcmp( str,
"CA" ) || !strcmp( str,
"AC" ) )
return CA;
235 std::cerr << __FILE__ <<
":" << __LINE__ <<
"Should not reach here!" << std::endl;
254 case BC:
return "BC";
255 case CA:
return "CA";
256 case AB:
return "AB";
263 if ( p ==
ABC )
return "ABC";
264 if ( p ==
BCA )
return "BCA";
265 if ( p ==
CAB )
return "CAB";
266 if ( p ==
CBA )
return "CBA";
267 if ( p ==
BAC )
return "BAC";
268 if ( p ==
ACB )
return "ACB";
274 char*
s =
new char[strlen( str ) + 2];
283 char*
s =
new char[strlen( str ) + 3];
ostream & operator<<(ostream &os, EvtCyclic3::Index i)
Index permute(Index i, Perm p)
Index strToIndex(const char *str)
Perm permutation(Index i1, Index i2, Index i3)
char * append(const char *str, EvtCyclic3::Index i)
Index common(Pair i, Pair j)
Pair strToPair(const char *str)
Pair combine(Index i, Index j)
Index other(Index i, Index j)