Processing math: 100%

M.E. Irizarry-Gelpí

Physics impostor. Mathematics interloper. Husband. Father.

The Triangle Product for 3-Arrays


Lately, I have been thinking about vectors, matrices and linear algebra. Indeed, I have been thinking about higher-dimensional generalizations of matrices, i.e. from two-dimensional arrays of numbers to three-dimensional arrays of numbers. This was triggered by reading this blog post on tensors. In this post I will propose some generalizations to many of the properties of 2-arrays to the case of 3-arrays.

Orthotopic k-Arrays

A matrix is a rectangular array of elements. The 3-dimensional analog of a rectangle is the cuboid (also known as a 3-orthotope). Arranging elements into a cuboidal array yields what I will call a cuboidal 3-array. A square matrix is a special case where the 2-array has a square shape. The 3-dimensional analog of a square is the cube. Arranging elements into a cubic array yields what I will call a cubic 3-array.

More generally, the k-dimensional analog of a rectangle is the k-orthotope, and the k-dimensional analog of a square is the k-cube. Arranging elements into a k-orthotopic array yields an orthotopic k-array. Similarly, arranging elements into a k-cubic array yields a cubic k-array.

The discussion below will have the following form: I will first introduce a property of a 2-array, then I will propose the analog of the property for 3-arrays, and finally I will comment on the general case for k-arrays.

Size

The size of a rectangular 2-array A is given by a 2-tuple of natural numbers:

size(A)=(m,n)N2.

Here m is the number of rows, and n is the number of columns. I will refer to m as the capacity of the row-axis, and n as the capacity of the column-axis. The set of all possible 2-arrays with size (m,n) is denoted by Am×n. The set of all possible rectangular 2-arrays is denoted by A2. It is given by

A2=(m,n)N2Am×n.

The set of square 2-arrays is a subset of this space. The 2-tuples of natural numbers can be arranged in a semi-infinite triangular array, similar to Pascal's triangle:

(1,1)
(1,2)(2,1)
(1,3)(2,2)(3,1)
(1,4)(2,3)(3,2)(4,1)
(1,5)(2,4)(3,3)(4,2)(5,1)

The 2-tuple on top of the triangle describes the size of 2-arrays that correspond to scalars (plain numbers). The left outer edge of the triangle describes the size of 2-arrays that correspond to row vectors. Similarly, the right outer edge of the triangle describes the size of 2-arrays that correspond to column vectors. Finally, the internal triangle, with (2,2) being on top, describes the size of rectangular 2-arrays.

In a similar manner, the size of an orthotopic 3-array A is given by a 3-tuple of natural numbers:

size(A)=(a,b,c)N3.

I will refer to a as the capacity of the 1-axis, to b as the capacity of the 2-axis, and c as the capacity of the 3-axis. The set of all possible orthotopic 3-arrays with size (a,b,c) is denoted by Aa×b×c. The set of all possible orthotopic 3-arrays is denoted by A3. It is given by

A3=(a,b,c)N3Aa×b×c.

The set of cubic 3-arrays is a subset of this space. The 3-tuples of natural numbers can be arranged in a semi-infinite tetrahedral array, similar to Pascal's tetrahedron. The top vertex of this tetrahedron describes the size of 3-arrays that correspond to scalars. Each of the three edges from the top vertex correspond to the size of 3-arrays that correspond to vectors (three kinds now). Each of the three faces correspond to the size of 3-arrays that correspond to 2-arrays. The internal tetrahedron, with the 3-tuple (2,2,2) being on top, describes the size of orthotopic 3-arrays.

More generally, the size of an orthotopic k-array A is given by a k-tuple of natural numbers:

size(A)=t=(n1,n2,,nk)Nk.

I will refer to nj as the capacity of the j-axis. The set of all possible orthotopic k-arrays with size t is denoted by At. The set of all possible orthotopic k-arrays is denoted by Ak. It is given by

Ak=tNkAt.

The set of cubic k-arrays is a subset of this space.

Addition

Given two rectangular 2-arrays A and B, both with size (m,n), the operation add2(A,B) returns a third 2-array with size (m,n). Thus,

add2:Am×n×Am×nAm×n.

The elements of the 2-array add2(A,B) are found by element-wise adding the elements of A with the elements of B. The addition operation on 2-arrays is commutative:

add2(A,B)=add2(B,A).

It is also associative:

add2(add2(A,B),C)=add2(A,add2(B,C)).

In a very similar manner, you can define the operation add3, and more generally addk for adding two k-arrays of the same size. These operations are also associative and commutative.

Cayley Transposition

A rectangular 2-array A with size (m,n) has a total of mn elements. These can be rearranged into a rectangular 2-array T(A) with size (n,m) by swapping the row-axis with the column-axis. This operation is called the Cayley transposition:

T:Am×nAn×m.

The Cayley transposition is an involution:

TT=I,

where I is the identity operation. The operations I and T form S2, the symmetric group of degree 2.

Similarly, an orthotopic 3-array with size (a,b,c) has a total of abc elements. These can be rearranged into five other orthotopic 3-arrays, corresponding to the 3!1=5 permutations of its three axes. Thus, there are five Cayley transpositions:

T1:Aa×b×cAb×a×c,
T2:Aa×b×cAa×c×b,
T3:Aa×b×cAc×b×a,
T4:Aa×b×cAc×a×b,
T5:Aa×b×cAb×c×a.

Three of these are involutions:

T1T1=I,T2T2=I,T3T3=I.

The other two are each other's inverses:

T4T5=I,T5T4=I.

The five Cayley transpositions and the identity operation form S3, the symmetric group of degree 3.

More generally, an orthotopic k-array can be rearranged into k!1 different orthotopic k-arrays. Thus, you will have k!1 Cayley transpositions Tj. Only k of these are involutions. Together with the identity element, the k!1 Cayley transpositions form Sk, the symmetric group of degree k.

Complex Conjugation

If a rectangular 2-array A has complex elements, then the complex conjugation operation C returns a 2-array C(A) with the same size as A, but with element-wise complex conjugation. This operation is an involution:

CC=I

The operation C together with the identity operation form S2, the symmetric group of degree 2.

Complex conjugation can be defined in the same way for 3-arrays, and also for k-arrays.

Hermite Transposition

The Hermite transposition operation H on a rectangular 2-array A is defined by composing complex conjugation with Cayley transposition:

H(A)=CT(A)=TC(A).

Hermite transposition on a 2-array is an involution. The operations C, T, H, and the identity form the group S2×S2, which is equivalent to the dihedral group of order 4.

There are five Cayley transpositions on a 3-array, so there are five Hermite transpositions:

Hj=CTj=TjC.

Only three of these are involutions. The composition of two distinct Hermite transpositions is a Cayley transposition. The five Hermite transpositions, together with the five Cayley transpositions, C and the identity operation form the group S3×S2, which is equivalent to the dihedral group of order 12.

A similar story holds for k-arrays: you have k!1 Hermite transpositions, some of them are involutions, and together with the k!1 Cayley transpositions, the complex conjugation operation, and the identity operation they form the group Sk×S2 with 2(k!) elements.

Multiplication

The 2-array multiplication operation mul2 takes a 2-array A with size (m,p), and a 2-array B with size (p,n), and returns a 2-array mul2(A,B) with size (m,n). That is,

mul2:Am×p×Ap×nAm×n.

If the elements of A are denoted by Aαμ, the elements of B are denoted by Bμβ, and the elements of C=mul2(A,B) are denoted by Cαβ, then

Cαβ=pμ=1AαμBμβ.

That is, the elements of C are found by contracting the column-axis of A with the row-axis of B. It is for this reason that the capacity of the column-axis of A must equal the capacity of the row-axis of B.

The multiplication operation satisfies the property

T(mul2(A,B))=mul2(T(B),T(A)).

This is how you distribute the Cayley transposition operation on a product of 2-arrays.

One way to motivate the 2-array multiplication operation is by viewing each rectangular 2-array as a line with two endpoints (i.e. a 1-simplex): the row-axis and the column-axis. The operation mul2 takes two lines and concatenates them to return another line. The concatenation contracts the column-axis of the first 2-array with the row-axis of the second 2-array.

I want the 3-array multiplication operation mul3 to return a 3-array. A 3-array has three axes. Viewing each orthotopic 3-array as a triangle (i.e. a 2-simplex), it appears one needs to concatenate three triangles to return another triangle. This leads me to introduce the triangle product operation, which is a ternary operation:

mul3:Aa×p×q×Ap×b×r×Aq×r×cAa×b×c.

Let A be a 3-array with size (a,p,q), B be a 3-array with size (p,b,r), and C be a 3-array with size (q,r,c). The triangle product D=mul3(A,B,C) is a 3-array with size (a,b,c). The elements of D are given by

Dαβγ=pμ=1qν=1rρ=1AαμνBμβρCνργ.

Here are more details:

  • The 1-axis of A survives as the 1-axis of D.
  • The 2-axis of A is contracted with the 1-axis of B.
  • The 3-axis of A is contracted with the 1-axis of C.
  • The 2-axis of B survives as the 2-axis of D.
  • The 3-axis of B is contracted with the 2-axis of C.
  • The 3-axis of C survives as the 3-axis of D.

The triangle product satisfies these properties:

T1(mul3(A,B,C))=mul3(T1(B),T1(A),T1(C)),
T2(mul3(A,B,C))=mul3(T2(A),T2(C),T2(B)),
T3(mul3(A,B,C))=mul3(T3(C),T3(B),T3(A)),
T4(mul3(A,B,C))=mul3(T4(C),T4(A),T4(B)),
T5(mul3(A,B,C))=mul3(T5(B),T5(C),T5(A)).

This is how you distribute the Cayley transpositions on a triangle product of 3-arrays. These are natural generalizations of the property for 2-arrays.

Presumably, for the case of k-arrays, the multiplication operation mulk takes k orthotopic k-arrays and returns another orthotopic k-array. The contraction is done in such a way as to preserve the k-simplex structure.

I will explore more properties of the triangle product in a future post.