       Re: Define an antisymmetric function

• To: mathgroup at smc.vnet.net
• Subject: [mg107408] Re: [mg107396] Define an antisymmetric function
• From: "David Park" <djmpark at comcast.net>
• Date: Fri, 12 Feb 2010 04:39:40 -0500 (EST)
• References: <3273383.1265889996178.JavaMail.root@n11>

```G[a, b] := f[a, b]
G[a, c] := g[a, c]
G[b, c] := h[b, c]
G[x_, y_] /; \[Not] OrderedQ[{x, y}] := -G[y, x]

{G[a, b], G[b, a], G[c, b], G[a, f[b]], G[f[b], a]}
{f[a, b], -f[a, b], -h[b, c], G[a, f[b]], -G[a, f[b]]}

David Park
djmpark at comcast.net
http://home.comcast.net/~djmpark/

From: Torsten Schoenfeld [mailto:kaffeetisch at gmx.de]

I'd like to define an antisymmetric function by giving its value on a
set of known objects.  I'm having trouble enforcing antisymmetry.  Say I
want to define G[_, _] on the objects {a, b, c}:

G[a, b] := f[a, b]
G[a, c] := g[a, c]
G[b, c] := h[b, c]

If I now enforce antisymmetry simply by

G[x_, y_] := -G[y, x]

then it mostly works (e.g., G[b, a] evaluates to -f[a, b]).  But if I
apply G to something that is not in {a, b, c}, then I run into an
infinite loop: G[a, f[b]] yields "\$RecursionLimit::reclim: Recursion
depth of 256 exceeded."

Ideally, I would like applications to unknown input to stay unevaluated
(e.g., G[a, f[b]] just yields G[a, f[b]]).  How can I achieve that while
also enforcing antisymmetry?

```

• Prev by Date: Re: Define an antisymmetric function
• Next by Date: Re: Upright \[Micro] in AxesLabel
• Previous by thread: Re: Define an antisymmetric function
• Next by thread: hi, how can i accomplish this densityplot?