back to list

Wedge product definitions from mathworld

🔗genewardsmith <genewardsmith@juno.com>

1/12/2002 1:54:53 PM

Here is exterior algebra:

http://mathworld.wolfram.com/ExteriorAlgebra.html

Here is wedge product:

http://mathworld.wolfram.com/WedgeProduct.html

This could and should be made a lot simpler for musical purposes.

🔗dkeenanuqnetau <d.keenan@uq.net.au>

3/15/2002 8:23:46 AM

--- In tuning-math@y..., "genewardsmith" <genewardsmith@j...> wrote:
> Here is exterior algebra:
>
> http://mathworld.wolfram.com/ExteriorAlgebra.html
>
> Here is wedge product:
>
> http://mathworld.wolfram.com/WedgeProduct.html
>
> This could and should be made a lot simpler for musical purposes.

Gene,

If you have attempted that somewhere, could you please point me to it.

The mathworld definition makes no sense to me whatsoever, since it is
recursive and I can't find where the recursion bottoms out. Can you
please give a definition that only applies to matrices or vectors
(whatever makes sense for temperaments) and not general k-forms, and
that eventually bottoms out into ordinary scalar multiplication *?

Does it take two vectors and give another vector or what?

🔗graham@microtonal.co.uk

3/15/2002 8:42:00 AM

In-Reply-To: <a6t76i+vkbe@eGroups.com>
dkeenanuqnetau wrote:

> The mathworld definition makes no sense to me whatsoever, since it is
> recursive and I can't find where the recursion bottoms out. Can you
> please give a definition that only applies to matrices or vectors
> (whatever makes sense for temperaments) and not general k-forms, and
> that eventually bottoms out into ordinary scalar multiplication *?

My Python source code includes an implementation of wedge products.
Whether that's easier to understand than the mathworld link I don't know.
Their description looks clear enough, but not the source code. For mine,
I think you need the __setitem__ and __getitem__ methods of Wedgable, as
well as the obvious __mul__ which does the product.

> Does it take two vectors and give another vector or what?

It can take vectors, implemented as a list of real (or maybe even complex,
but scalar) coefficients of a set of unison vectors. The wedge product of
a pair of such vectors will be a list of coefficients of a combination of
unison vectors. So if you start with 3-D vectors defined on i, j and k
the wedge product will be defined on ij, ik and jk. My Wedgable class is
to implement this generalisation of vectors, and the product of two
wedgables is always another wedgable.

Graham

🔗graham@microtonal.co.uk

3/15/2002 9:05:00 AM

In-Reply-To: <memo.707336@cix.compulink.co.uk>
I wrote:

> My Python source code includes an implementation of wedge products.
> Whether that's easier to understand than the mathworld link I don't
> know. Their description looks clear enough, but not the source code.
> For mine, I think you need the __setitem__ and __getitem__ methods of
> Wedgable, as well as the obvious __mul__ which does the product.

Oops, sorry. __mul__ is for multiplication by a scalar. You want the
standalone wedgeProduct function.

🔗genewardsmith <genewardsmith@juno.com>

3/15/2002 10:53:49 AM

--- In tuning-math@y..., "dkeenanuqnetau" <d.keenan@u...> wrote:

> If you have attempted that somewhere, could you please point me to it.

I've started writing (someone needs to) but haven't got far. The plan is to explain wedge products, among other things, in an attempt to explain the theory of it all.

> The mathworld definition makes no sense to me whatsoever, since it is
> recursive and I can't find where the recursion bottoms out. Can you
> please give a definition that only applies to matrices or vectors
> (whatever makes sense for temperaments) and not general k-forms, and
> that eventually bottoms out into ordinary scalar multiplication *?

(1) You consider intervals to be expressed as vectors in the basis
{e2,e3,e5...} etc. so that 2^-4 3^4 5^-1 would be -4 e2 + 4 e3 - e5,
for instance.

(2) The basis vectors ep eq wedge according to ep^eq = - eq^ep (antisymmetric); aside from that everything is associative and distributive. In fact, *any* two intervals u, v will give u^v = - v^u.

(3) If you wedge together n intervals, you get a blade; in particular a wedge of n basis vectors is a blade. Linear combinations of
n-blades produce n-intervals. If U is an n-interval and V is an
m-interval, then U^V = (-1)^nm V^U; it can be calculated by simply working with the basis vectors.

(4) If we have a p-limit, so that we have d=phi(p) primes, we get a
2^d sized object, the exterior algebra, which is graded into
scalars (dimension d choose 0 = 1) intervals (dimension d choose 1 = d) 2-intervals (dimension d choose 2) and so forth, up to
d-intervals, of dimension d choose d = 1, which are pseudo-scalars.

(5) Everything I said about intervals is also true of their dual objects, vals. A basis for the vals is v2, v3, v5,... where vp is the
p-adic valuation map which sends a rational number q to the exponent of p in the factorization of q.

(6) Thus, you get n-vals as well as n-intervals.

(7) There is a natural inner product between n-vals and n-intervals,
which can be expressed as the determinant of the matrix [vp(eq)]
as it runs through the list of primes. For n !=0, the natural inner product would be 0; this defines an inner product between the exterior algebra of vals and the exterior algebra of intervals.

(8) There is an isomorphism between the exteror algebra of vals and of intervals (Poincare duality) defined by relating the inner product of a n-val with a n-interval (going to scalars) with the wedge product of (n-d)-vals and n-intervals, going to pseudoscalars, which makes the (n-d)-vals and n-intervals isomorphic. Hence the wedgie
one gets by wedging h12^h22 and the wedgie one gets by wedging
64/63^50/49 can be equated, and both considered to be the pajara wedgie.

This probably made things worse. :(

🔗genewardsmith <genewardsmith@juno.com>

3/15/2002 11:12:20 AM

--- In tuning-math@y..., "genewardsmith" <genewardsmith@j...> wrote:

> (7) There is a natural inner product between n-vals and n-intervals,
> which can be expressed as the determinant of the matrix [vp(eq)]
> as it runs through the list of primes.

This is murky; I should have said, if h1^h2^...^hn is a val n-blade,
and q1^q1^...^qn is an interval n-blade, then form the matrix
[hi(qj)], 1 <= i,j <= n, and take the determinant. The particular case when we have wedges of basis vectors leads to vectors with either 0 or 1 as entries and with determinants -1, 0, 1; which can be used to define the inner product in general by linearity.

> This probably made things worse. :(

When I first presented this I tried to avoid all theory and just do the special cases of 5,7, and 11-limits explicitly. No one seemed to like it, but this is still a possible alternative approach.

🔗dkeenanuqnetau <d.keenan@uq.net.au>

3/15/2002 2:58:28 PM

--- In tuning-math@y..., "genewardsmith" <genewardsmith@j...> wrote:
> This probably made things worse. :(

No. Thanks Gene. It probably got me a tiny bit closer. But I still
don't see a definition that tells me how to calculate the wedge
product of two vectors with given bases, using operations I'm already
familiar with.

I don't think there's much point trying to tell me what a wedge
invariant (wedgie) is until I understand wedge product.

Graham says his python code is harder to understand than the Mathworld
page, so I won't even bother looking at it, since I'm not familiar
with the python libraries anyway.

If you make me an Excel spreadsheet that implements wedge product for
say 1D, 2D, 3D and 4D vectors, then I'd probably figure it out. :-)

🔗genewardsmith <genewardsmith@juno.com>

3/15/2002 4:37:31 PM

--- In tuning-math@y..., "dkeenanuqnetau" <d.keenan@u...> wrote:

> If you make me an Excel spreadsheet that implements wedge product for
> say 1D, 2D, 3D and 4D vectors, then I'd probably figure it out. :-)

First I'd need to figure out Excel.

🔗paulerlich <paul@stretch-music.com>

3/15/2002 4:44:31 PM

--- In tuning-math@y..., "genewardsmith" <genewardsmith@j...> wrote:
> --- In tuning-math@y..., "dkeenanuqnetau" <d.keenan@u...> wrote:
>
> > If you make me an Excel spreadsheet that implements wedge product
for
> > say 1D, 2D, 3D and 4D vectors, then I'd probably figure it out. :-
)
>
> First I'd need to figure out Excel.

why not just restate the explicit formulae for 3d and 4d wedge
products?

🔗genewardsmith <genewardsmith@juno.com>

3/15/2002 7:46:56 PM

--- In tuning-math@y..., "paulerlich" <paul@s...> wrote:

> why not just restate the explicit formulae for 3d and 4d wedge
> products?

3D

[u1,u2,u3]^[v1,v2,v3] = [u2*v3-v2*u3,u3*v1-v3*u1,u1*v2-v1*u2]

This is the right form for both vals and intervals, and Poincare duality says we simply identify the wedge of two vals with an interval, and the wedge of two intervals with a val. Hence in the 5-limit, we may equate the wedge of two vals h and g with an interval, and write

h^g =
2^(h(3)*g(5)-g(3)*h(5)) 3^(h(5)*g(2)-g(5)*h(2))
5^(h(2)*g(3)-g(2)*h(3))

where h and g are vals.

4D

[u1,u2,u3,u4]^[v1,v2,v3,v4] =
[u3*v4-v3*u4,u4*v2-v4*u2,u2*v3-v2*u3,u1*v2-v1*u2,u1*v3-v1*u3,u1*v4-v1*u4]

Poincare duality then permutes this if we wedge two vals, so that if h and g are vals, we may identify h^g with its Poincare dual, and write it as

h^g =
[h(2)*g(3)-g(2)*h(3),h(2)*g(5)-g(2)*h(5),h(2)*g(7)-g(2)*h(7),
h(5)*g(7)-g(5)*h(7),h(7)*g(3)-g(7)*h(3),h(3)*g(5)-g(3)*h(5)]

Such a wedge product, whether from two vals or two intervals, represents a temperament if the intervals are small or the vals are et vals. Calling it T, we may wedge T with a val (viewing it as a wedge product of vals) and get an interval by Poincare duality, or wedge it with an interval (viewing it as a wedge product of intervals) and by Poincare duality, end up with a
val.

If T = [t1,t2,t3,t4,t5,t6], and u = [u1,u2,u3,u4] then

T^u =
[t6*u4+t5*u3+t4*u2,t3*u3-t4*u1-t2*u4,t1*u4-t3*u2-t5*u1,t2*u2-t6*u1-t1*u3]

Now if u is a val, u = [u1,u2,u3,u4] then T^u is given by the above, and may be changed to an interval by using these values as exponents of the primes by Poincare duality. If u is an interval,
u = 2^u1 3^u2 5^u3 7^u4, then permute T by changing it to T' = [t4,t5,t6,t1,t2,t3], and then take T'^u by the above formula; the result will be (Poincare duality) a val.

🔗genewardsmith <genewardsmith@juno.com>

3/15/2002 8:25:02 PM

--- In tuning-math@y..., "genewardsmith" <genewardsmith@j...> wrote:
> --- In tuning-math@y..., "paulerlich" <paul@s...> wrote:

> > why not just restate the explicit formulae for 3d and 4d wedge
> > products?

I might add to this that the inner product in the 4D case of two
2-intervals or 2-vals (defined, again, by Poincare duality) is interesting:

[u1,u2,u3,u4,u5,u6].[v1,v2,v3,v4,v5,v6] =
u1*v4+u2*v5+u3*v6+u4*v1+u5*v2+u6*v3

The length of a wedgie turns out to be zero according to this formula, which distinguishes wedgies from among all 6-D vectors.