Re: Symmetrizing function arguments

• To: mathgroup at smc.vnet.net
• Subject: [mg127620] Re: Symmetrizing function arguments
• From: Sseziwa Mukasa <mukasa at gmail.com>
• Date: Wed, 8 Aug 2012 03:14:44 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• Delivered-to: l-mathgroup@wolfram.com
• Delivered-to: mathgroup-newout@smc.vnet.net
• Delivered-to: mathgroup-newsend@smc.vnet.net
• References: <20120807070126.D06C1662F@smc.vnet.net>

```You could just sort the arguments:

h[a_,b_,c_,d_,e_,f_]:=h[Sort[{a,b}],Sort[{c,d}],Sort[{e,f}]]

or

h[a_,b_,c_,d_,e_,f_]:=h[Sort[{a,b},Greater],Sort[{c,d},Greater],Sort[{e,f},Greater]]

On Aug 7, 2012, at 3:01 AM, Hauke Reddmann wrote:

> I'd like to define a quasi 6j symbol which has tetrahedron
> symmetry in its 6 arguments. At the moment (I'm a n00b, still :-)
> I use a cheap hack:
> f[a_,b_] := If[a>b,F[a,b],F[b,a]];
> Bingo, f now is commutative and sorts by descending arguments,
> and NOOOOO endless loops. My, am I proud of myself :-)
> Needless to say, using this method to implement the symmetries
> of h[a_,b_,c_,d_,e_,f] is a royal pain in the backside, as you
> see with the hassle needed already for just 3 arguments...
> =
g[a_,b_,c_]:=If[b>c,If[a>c,If[a>b,G[a,b,c],g[b,a,c]],g[c,b,a]],g[a,c,b]];
> ...especially considering all the subcases needed when two arguments
> are equal.
> Surely, you can offer a more elegant way? It more or less suffices to
> bring the largest value to position 1 and the second-largest to 2 or 3
> (assume a,b and c,d and e,f are the opponent edges of the tetrahedron),
> but optimal would be if none of the 24 tetrahedron operations gives
> a smaller lexicalic ordering even in the case of equal entries.
>
> P.S. No, the inbuilt 6j symbol is useless - wrong Lie group :-)
>
> --
> Hauke Reddmann <:-EX8    fc3a501 at uni-hamburg.de
> Out on deck the dawn arrived