Mathematics for large scale tensor computations

83
Mathematics for large scale tensor computations Jos´ e M. Mart´ ın-Garc´ ıa Institut d’Astrophysique de Paris, Laboratoire Universe et Th´ eories Meudon, October 2, 2009

Transcript of Mathematics for large scale tensor computations

Page 1: Mathematics for large scale tensor computations

Mathematics for large scale

tensor computations

Jose M. Martın-Garcıa

Institut d’Astrophysique de Paris,

Laboratoire Universe et Theories

Meudon, October 2, 2009

Page 2: Mathematics for large scale tensor computations

What we consider

Tensors in a single vector space V (general. to several spaces). Use indexed notations. Numeric component indices (general.

to several frames). Einstein convention for contractions.

Tb1b

1a

There is a single invertible metric gab, symmetric orantisymmetric (spinor calculus). Indices can always be raisedand lowered. Beware of non-compatible derivatives:

gab∂cvb 6= ∂cva, gab(∂v)bc = (∂v)ac

Tensors have symmetries. Most general expression we consider: an arbitrary polynomial

in any number of tensors, with homogeneous free indices.

· · · + FabcTbdT c

d − 7Feff Taduevd + · · ·

Page 3: Mathematics for large scale tensor computations

What we consider

Tensors in a single vector space V (general. to several spaces). Use indexed notations. Numeric component indices (general.

to several frames). Einstein convention for contractions.

Tb1b

1a

There is a single invertible metric gab, symmetric orantisymmetric (spinor calculus). Indices can always be raisedand lowered. Beware of non-compatible derivatives:

gab∂cvb 6= ∂cva, gab(∂v)bc = (∂v)ac

Tensors have symmetries. Most general expression we consider: an arbitrary polynomial

in any number of tensors, with homogeneous free indices.

· · · + FabcTbdT c

d − 7Feff Taduevd + · · ·

Page 4: Mathematics for large scale tensor computations

What we consider

Tensors in a single vector space V (general. to several spaces). Use indexed notations. Numeric component indices (general.

to several frames). Einstein convention for contractions.

Tb1b

1a

There is a single invertible metric gab, symmetric orantisymmetric (spinor calculus). Indices can always be raisedand lowered. Beware of non-compatible derivatives:

gab∂cvb 6= ∂cva, gab(∂v)bc = (∂v)ac

Tensors have symmetries. Most general expression we consider: an arbitrary polynomial

in any number of tensors, with homogeneous free indices.

· · · + FabcTbdT c

d − 7Feff Taduevd + · · ·

Page 5: Mathematics for large scale tensor computations

What we consider

Tensors in a single vector space V (general. to several spaces). Use indexed notations. Numeric component indices (general.

to several frames). Einstein convention for contractions.

Tb1b

1a

There is a single invertible metric gab, symmetric orantisymmetric (spinor calculus). Indices can always be raisedand lowered. Beware of non-compatible derivatives:

gab∂cvb 6= ∂cva, gab(∂v)bc = (∂v)ac

Tensors have symmetries. Most general expression we consider: an arbitrary polynomial

in any number of tensors, with homogeneous free indices.

· · · + FabcTbdT c

d − 7Feff Taduevd + · · ·

Page 6: Mathematics for large scale tensor computations

What we consider

Tensors in a single vector space V (general. to several spaces). Use indexed notations. Numeric component indices (general.

to several frames). Einstein convention for contractions.

Tb1b

1a

There is a single invertible metric gab, symmetric orantisymmetric (spinor calculus). Indices can always be raisedand lowered. Beware of non-compatible derivatives:

gab∂cvb 6= ∂cva, gab(∂v)bc = (∂v)ac

Tensors have symmetries. Most general expression we consider: an arbitrary polynomial

in any number of tensors, with homogeneous free indices.

· · · + FabcTbdT c

d − 7Feff Taduevd + · · ·

Page 7: Mathematics for large scale tensor computations

What we consider

Tensors in a single vector space V (general. to several spaces). Use indexed notations. Numeric component indices (general.

to several frames). Einstein convention for contractions.

Tb1b

1a

There is a single invertible metric gab, symmetric orantisymmetric (spinor calculus). Indices can always be raisedand lowered. Beware of non-compatible derivatives:

gab∂cvb 6= ∂cva, gab(∂v)bc = (∂v)ac

Tensors have symmetries. Most general expression we consider: an arbitrary polynomial

in any number of tensors, with homogeneous free indices.

· · · + FabcTbdT c

d − 7Feff Taduevd + · · ·

Page 8: Mathematics for large scale tensor computations

Tensor canonicalization

0. Key question in computer algebra:How do we know whether two tensor expressions are equal?Convert expressions into a canonical form and then compare.

1. Simplification:

F antisym(1↔2) (Fabcua + Fb

dcud)vb

1) Expand all parenthesis Fabcuavb + Fb

dcudvb

2) Rename dummies p, q, . . . Fpqcupvq + Fp

qcuqv

p

3) Canonicalize terms separately Fpqcupvq − Fpqcu

pvq

4) Add equal terms 0

⇒ Need only canonicalization of tensor monomials.

Page 9: Mathematics for large scale tensor computations

Tensor canonicalization

0. Key question in computer algebra:How do we know whether two tensor expressions are equal?Convert expressions into a canonical form and then compare.

1. Simplification:

F antisym(1↔2) (Fabcua + Fb

dcud)vb

1) Expand all parenthesis Fabcuavb + Fb

dcudvb

2) Rename dummies p, q, . . . Fpqcupvq + Fp

qcuqv

p

3) Canonicalize terms separately Fpqcupvq − Fpqcu

pvq

4) Add equal terms 0

⇒ Need only canonicalization of tensor monomials.

Page 10: Mathematics for large scale tensor computations

Tensor canonicalization

0. Key question in computer algebra:How do we know whether two tensor expressions are equal?Convert expressions into a canonical form and then compare.

1. Simplification:

F antisym(1↔2) (Fabcua + Fb

dcud)vb

1) Expand all parenthesis Fabcuavb + Fb

dcudvb

2) Rename dummies p, q, . . . Fpqcupvq + Fp

qcuqv

p

3) Canonicalize terms separately Fpqcupvq − Fpqcu

pvq

4) Add equal terms 0

⇒ Need only canonicalization of tensor monomials.

Page 11: Mathematics for large scale tensor computations

2. Simplification: Reorder tensors in a monomial using namesand ranks; form an equivalent tensor with inherited properties.

T adFabcTbe → FTTabc

adbe

antisym(1↔2), sym(4↔6,5↔7). Anticommuting objects?

⇒ Need only canonicalization of single tensors.

3. Tensor properties (“symmetries”):

Slot-syms: relations among slots, independently of indices.

Index-syms: relations among indices, independently of slots.

Contractions, metric and components

Dimension-dependent identities.

Page 12: Mathematics for large scale tensor computations

2. Simplification: Reorder tensors in a monomial using namesand ranks; form an equivalent tensor with inherited properties.

T adFabcTbe → FTTabc

adbe

antisym(1↔2), sym(4↔6,5↔7). Anticommuting objects?

⇒ Need only canonicalization of single tensors.

3. Tensor properties (“symmetries”):

Slot-syms: relations among slots, independently of indices.

Index-syms: relations among indices, independently of slots.

Contractions, metric and components

Dimension-dependent identities.

Page 13: Mathematics for large scale tensor computations

2. Simplification: Reorder tensors in a monomial using namesand ranks; form an equivalent tensor with inherited properties.

T adFabcTbe → FTTabc

adbe

antisym(1↔2), sym(4↔6,5↔7). Anticommuting objects?

⇒ Need only canonicalization of single tensors.

3. Tensor properties (“symmetries”):

Slot-syms: relations among slots, independently of indices.

Index-syms: relations among indices, independently of slots.

Contractions, metric and components

Dimension-dependent identities.

Page 14: Mathematics for large scale tensor computations

4. Two types of slot-symmetries:

Permutation (or monoterm) symmetries:

Rbacd = −Rabcd Rcdba = Rabcd

Need permutation group theory.

Multiterm symmetries:

Rabcd + Racdb + Radbc = 0

Need permutation group algebra.

5. Canonical ordering of indices:

First symbolic free indices, alphabetically.

Then symbolic dummy pairs, alphabetically. Up-indices first.

Then component indices, numerically. Up-indices first.

Example:

T a1db2b

1ac3 → [c , d , a, a, b, b, 1, 1, 2, 3]

Rough idea: Approach this “as much as possible”, unless 0.

Page 15: Mathematics for large scale tensor computations

4. Two types of slot-symmetries:

Permutation (or monoterm) symmetries:

Rbacd = −Rabcd Rcdba = Rabcd

Need permutation group theory.

Multiterm symmetries:

Rabcd + Racdb + Radbc = 0

Need permutation group algebra.

5. Canonical ordering of indices:

First symbolic free indices, alphabetically.

Then symbolic dummy pairs, alphabetically. Up-indices first.

Then component indices, numerically. Up-indices first.

Example:

T a1db2b

1ac3 → [c , d , a, a, b, b, 1, 1, 2, 3]

Rough idea: Approach this “as much as possible”, unless 0.

Page 16: Mathematics for large scale tensor computations

4. Two types of slot-symmetries:

Permutation (or monoterm) symmetries:

Rbacd = −Rabcd Rcdba = Rabcd

Need permutation group theory.

Multiterm symmetries:

Rabcd + Racdb + Radbc = 0

Need permutation group algebra.

5. Canonical ordering of indices:

First symbolic free indices, alphabetically.

Then symbolic dummy pairs, alphabetically. Up-indices first.

Then component indices, numerically. Up-indices first.

Example:

T a1db2b

1ac3 → [c , d , a, a, b, b, 1, 1, 2, 3]

Rough idea: Approach this “as much as possible”, unless 0.

Page 17: Mathematics for large scale tensor computations

4. Two types of slot-symmetries:

Permutation (or monoterm) symmetries:

Rbacd = −Rabcd Rcdba = Rabcd

Need permutation group theory.

Multiterm symmetries:

Rabcd + Racdb + Radbc = 0

Need permutation group algebra.

5. Canonical ordering of indices:

First symbolic free indices, alphabetically.

Then symbolic dummy pairs, alphabetically. Up-indices first.

Then component indices, numerically. Up-indices first.

Example:

T a1db2b

1ac3 → [c , d , a, a, b, b, 1, 1, 2, 3]

Rough idea: Approach this “as much as possible”, unless 0.

Page 18: Mathematics for large scale tensor computations

Permutation Symmetries

Page 19: Mathematics for large scale tensor computations

Permutation slot-symmetries

Riemann tensor Rabcd . Three equivalence classes:

Rabcd = −Rbacd = −Rabdc = Rbadc = Rcdab = −Rdcab = −Rcdba = Rdcba

Racbd = −Rcabd = −Racdb = Rcadb = Rbdac = −Rdbac = −Rbdca = Rdbca

Radbc = −Rdabc = −Radcb = Rdacb = Rbcad = −Rcbad = −Rbcda = Rcbda

Symmetry group S of order 8 of permutations of slots:

(1234),−(2134),−(1243), (2143), (3412),−(4312),−(3421), (4321)

and two left cosets gS , with g=(1324) or g=(1423).

Canonical representatives (choose a permutation ordering)

(1234), (1324), (1423)

Algorithm: given T with slot-symmetry S and a configurationg find the canonical representative of the left coset gS .

Page 20: Mathematics for large scale tensor computations

Permutation slot-symmetries

Riemann tensor Rabcd . Three equivalence classes:

Rabcd = −Rbacd = −Rabdc = Rbadc = Rcdab = −Rdcab = −Rcdba = Rdcba

Racbd = −Rcabd = −Racdb = Rcadb = Rbdac = −Rdbac = −Rbdca = Rdbca

Radbc = −Rdabc = −Radcb = Rdacb = Rbcad = −Rcbad = −Rbcda = Rcbda

Symmetry group S of order 8 of permutations of slots:

(1234),−(2134),−(1243), (2143), (3412),−(4312),−(3421), (4321)

and two left cosets gS , with g=(1324) or g=(1423).

Canonical representatives (choose a permutation ordering)

(1234), (1324), (1423)

Algorithm: given T with slot-symmetry S and a configurationg find the canonical representative of the left coset gS .

Page 21: Mathematics for large scale tensor computations

Permutation slot-symmetries

Riemann tensor Rabcd . Three equivalence classes:

Rabcd = −Rbacd = −Rabdc = Rbadc = Rcdab = −Rdcab = −Rcdba = Rdcba

Racbd = −Rcabd = −Racdb = Rcadb = Rbdac = −Rdbac = −Rbdca = Rdbca

Radbc = −Rdabc = −Radcb = Rdacb = Rbcad = −Rcbad = −Rbcda = Rcbda

Symmetry group S of order 8 of permutations of slots:

(1234),−(2134),−(1243), (2143), (3412),−(4312),−(3421), (4321)

and two left cosets gS , with g=(1324) or g=(1423).

Canonical representatives (choose a permutation ordering)

(1234), (1324), (1423)

Algorithm: given T with slot-symmetry S and a configurationg find the canonical representative of the left coset gS .

Page 22: Mathematics for large scale tensor computations

Index-symmetries

Tensor Tabcd with no slot-symmetries.

T aabb = Ta

abb = T a

abb = Ta

abb = T b

baa = Tb

baa = T b

baa = Tb

baa

New group D of permutations of indices (in canonical order).

We need (start from [a, a, b, b]):

Exchange dummies: (3412)

Swap metric (2134) and (1243). Add sign with spinors

Symmetry under exchange of repeated components

T111 → D = S3

These three groups do not intersect and always commute.

Page 23: Mathematics for large scale tensor computations

Index-symmetries

Tensor Tabcd with no slot-symmetries.

T aabb = Ta

abb = T a

abb = Ta

abb = T b

baa = Tb

baa = T b

baa = Tb

baa

New group D of permutations of indices (in canonical order).

We need (start from [a, a, b, b]):

Exchange dummies: (3412)

Swap metric (2134) and (1243). Add sign with spinors

Symmetry under exchange of repeated components

T111 → D = S3

These three groups do not intersect and always commute.

Page 24: Mathematics for large scale tensor computations

Both together

A tensor configuration Rabba will be given by g = (1342):

[a, a, b, b]g

−→ [a, b, b, a]

being equivalent to the double coset DgS :

[a, a, b, b]d

−→ [a, a, b, b]g

−→ [a, b, b, a]s

−→ −[a, b, a, b]

Algorithm: given T with slot-symmetry S and index-symmetryD, and a configuration g , find the representative of the doublecoset DgS . If there is p such that p,−p ∈ DgS , then rep=0.

Page 25: Mathematics for large scale tensor computations

Both together

A tensor configuration Rabba will be given by g = (1342):

[a, a, b, b]g

−→ [a, b, b, a]

being equivalent to the double coset DgS :

[a, a, b, b]d

−→ [a, a, b, b]g

−→ [a, b, b, a]s

−→ −[a, b, a, b]

Algorithm: given T with slot-symmetry S and index-symmetryD, and a configuration g , find the representative of the doublecoset DgS . If there is p such that p,−p ∈ DgS , then rep=0.

Page 26: Mathematics for large scale tensor computations

Example 1

R Riemann and T symmetric. Canonical index order:

[a, d , e, g , b, b, c , c , f , f ]

R R Ta b c db c

e ff g

Page 27: Mathematics for large scale tensor computations

Example 1

R Riemann and T symmetric. Canonical index order:

[a, d , e, g , b, b, c , c , f , f ]

R R Ta b c db c

e ff gR R Ta b c d

b ce f

f g

Page 28: Mathematics for large scale tensor computations

Example 1

R Riemann and T symmetric. Canonical index order:

[a, d , e, g , b, b, c , c , f , f ]

R R Ta b c db c

e ff gR R Ta b c d

b ce f

f gR R Ta b c db c

e ff g

Page 29: Mathematics for large scale tensor computations

Example 1

R Riemann and T symmetric. Canonical index order:

[a, d , e, g , b, b, c , c , f , f ]

R R Ta b c db c

e ff gR R Ta b c d

b ce f

f gR R Ta b c db c

e ff gR R Ta b c d

b ce f

f g

Page 30: Mathematics for large scale tensor computations

Example 1

R Riemann and T symmetric. Canonical index order:

[a, d , e, g , b, b, c , c , f , f ]

R R Ta b c db c

e ff gR R Ta b c d

b ce f

f gR R Ta b c db c

e ff gR R Ta b c d

b ce f

f gR R Ta b c db c

e ff g

Page 31: Mathematics for large scale tensor computations

Example 1

R Riemann and T symmetric. Canonical index order:

[a, d , e, g , b, b, c , c , f , f ]

R R Ta b c db c

e ff gR R Ta b c d

b ce f

f gR R Ta b c db c

e ff gR R Ta b c d

b ce f

f gR R Ta b c db c

e ff gR R Ta b c d

b ce f

f g

Page 32: Mathematics for large scale tensor computations

Example 1

R Riemann and T symmetric. Canonical index order:

[a, d , e, g , b, b, c , c , f , f ]

R R Ta b c db c

e ff gR R Ta b c d

b ce f

f gR R Ta b c db c

e ff gR R Ta b c d

b ce f

f gR R Ta b c db c

e ff gR R Ta b c d

b ce f

f g

R R Tfb ce

gfa d

cb

Page 33: Mathematics for large scale tensor computations

Example 2

Antisymmetric tensor Fba = −Fab.

FabFbc symmetric

F abF

bc

n... F ha = 0 if number n of tensors is odd.

Timings (in seconds)

Page 34: Mathematics for large scale tensor computations

Example 2

Antisymmetric tensor Fba = −Fab.

FabFbc symmetric

F abF

bc

n... F ha = 0 if number n of tensors is odd.

Timings (in seconds)

n |D |, |S | MathTensor xAct

1 2 0 0

3 48 0.01 0.01

5 3840 0.02 0.03

7 645120 1.12 0.05

9 185794560 350 0.07

11 8.2 1010

107745 0.09

19 6.4 1022

? 0.28

29 4.7 1039

? 0.94

39 1.1 1058

? 2.7

49 3.4 1077

? 6.5

59 8.0 1097

? 13.7 10 20 30 40 500.001

0.01

0.1

1

10

100

1000

10000

100000

Second

Minute

Hour

Day

Page 35: Mathematics for large scale tensor computations

Example 3

Random Riemann scalar monomials. Example R7:

Rbjdk Rncel R

hgia Rk

gde R l

fjc Rmaf

h Rnm

ib

Takes 19596s in MathTensor, and 0.031s in xTensor.

++++++

++++++

+

+

++

+

+

+++

+

+

+++

+

+

+++

+

+

+

+

++

+

+

++

+

+

+

+++

++++

+

+

+

+

+

++

+

+

++

+

+++

++

oooooooo

ooooooooo

o

ooooooo

o

ooooooo

o

ooooooooooooo

o

ooo

o

oooooo

o

ooooooooo

oooooooo

ooooooo

o

oo

Second

Minute

0 10 20 30 40 50

0.001

0.01

0.1

1

10

100

1000

0.001

0.01

0.1

1

10

100

1000

number of Riemann tensors

timin

gsin

seco

nds

Page 36: Mathematics for large scale tensor computations

A million random Riemann scalar monomials R10.Timings histogram:

CPU 1.7 GHz

bin: 0.0001 s

Zero: 424108

Nonzero: 575892

0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.100

5000

10 000

15 000

timings in seconds

All but 7 below 1s, 6 in 1-2s, and 1 with 4.9s. Worst case:

Ra1b1a2b2

Ra2b2a3b3

· · ·Ranbna1b1

Page 37: Mathematics for large scale tensor computations

Working with permutation groups: strong generators

Describe a group G through generators.S = s1, . . . , sm generating set: G = 〈S〉.Example: Sn = 〈(2134 . . . n), (234 . . . n1)〉.Difficult to extract information from S . Direct algorithms areexponential in n.

Better idea: use strong generators (Sims 1960’s). Take agroup G acting on the points Ω = 1, . . . , n. We need threedefinitions:

Orbit pG of a point p: pg , g ∈ G. Ω partitioned intodisjoing orbits.

Stabilizer Gp of a point p: g ∈ G , pg = p subgroup of G .G partitioned into disjoint cosets of Gp .

Base of G : B = [b1, . . . , bk ], none of the permutations of G

fixes all points of B. That is, Gb1...bk= id.

Examples: for Sn we need n − 1 points in the base. For theslot-symmetries of Riemann [1, 3] is a base, but [1, 2] is not.

Page 38: Mathematics for large scale tensor computations

Working with permutation groups: strong generators

Describe a group G through generators.S = s1, . . . , sm generating set: G = 〈S〉.Example: Sn = 〈(2134 . . . n), (234 . . . n1)〉.Difficult to extract information from S . Direct algorithms areexponential in n.

Better idea: use strong generators (Sims 1960’s). Take agroup G acting on the points Ω = 1, . . . , n. We need threedefinitions:

Orbit pG of a point p: pg , g ∈ G. Ω partitioned intodisjoing orbits.

Stabilizer Gp of a point p: g ∈ G , pg = p subgroup of G .G partitioned into disjoint cosets of Gp .

Base of G : B = [b1, . . . , bk ], none of the permutations of G

fixes all points of B. That is, Gb1...bk= id.

Examples: for Sn we need n − 1 points in the base. For theslot-symmetries of Riemann [1, 3] is a base, but [1, 2] is not.

Page 39: Mathematics for large scale tensor computations

Working with permutation groups: strong generators

Describe a group G through generators.S = s1, . . . , sm generating set: G = 〈S〉.Example: Sn = 〈(2134 . . . n), (234 . . . n1)〉.Difficult to extract information from S . Direct algorithms areexponential in n.

Better idea: use strong generators (Sims 1960’s). Take agroup G acting on the points Ω = 1, . . . , n. We need threedefinitions:

Orbit pG of a point p: pg , g ∈ G. Ω partitioned intodisjoing orbits.

Stabilizer Gp of a point p: g ∈ G , pg = p subgroup of G .G partitioned into disjoint cosets of Gp .

Base of G : B = [b1, . . . , bk ], none of the permutations of G

fixes all points of B. That is, Gb1...bk= id.

Examples: for Sn we need n − 1 points in the base. For theslot-symmetries of Riemann [1, 3] is a base, but [1, 2] is not.

Page 40: Mathematics for large scale tensor computations

Working with permutation groups: strong generators

Describe a group G through generators.S = s1, . . . , sm generating set: G = 〈S〉.Example: Sn = 〈(2134 . . . n), (234 . . . n1)〉.Difficult to extract information from S . Direct algorithms areexponential in n.

Better idea: use strong generators (Sims 1960’s). Take agroup G acting on the points Ω = 1, . . . , n. We need threedefinitions:

Orbit pG of a point p: pg , g ∈ G. Ω partitioned intodisjoing orbits.

Stabilizer Gp of a point p: g ∈ G , pg = p subgroup of G .G partitioned into disjoint cosets of Gp .

Base of G : B = [b1, . . . , bk ], none of the permutations of G

fixes all points of B. That is, Gb1...bk= id.

Examples: for Sn we need n − 1 points in the base. For theslot-symmetries of Riemann [1, 3] is a base, but [1, 2] is not.

Page 41: Mathematics for large scale tensor computations

Working with permutation groups: strong generators

Describe a group G through generators.S = s1, . . . , sm generating set: G = 〈S〉.Example: Sn = 〈(2134 . . . n), (234 . . . n1)〉.Difficult to extract information from S . Direct algorithms areexponential in n.

Better idea: use strong generators (Sims 1960’s). Take agroup G acting on the points Ω = 1, . . . , n. We need threedefinitions:

Orbit pG of a point p: pg , g ∈ G. Ω partitioned intodisjoing orbits.

Stabilizer Gp of a point p: g ∈ G , pg = p subgroup of G .G partitioned into disjoint cosets of Gp .

Base of G : B = [b1, . . . , bk ], none of the permutations of G

fixes all points of B. That is, Gb1...bk= id.

Examples: for Sn we need n − 1 points in the base. For theslot-symmetries of Riemann [1, 3] is a base, but [1, 2] is not.

Page 42: Mathematics for large scale tensor computations

Key observation 1: bijection between the orbit pG and the setof cosets G/Gp. Proof:

1) g ∈ Gp ⇔ pg = p

2) h′ ∈ Gp · h ⇒ g ∈ Gp, h′ = g · h ⇒ ph′ = pg ·h = ph

3) ph = ph′ ⇒ p = ph′·h−1⇒ h′ · h−1 ∈ Gp, same coset

In particular|G | = |Gp| · |p

G |

Key observation 2: Base images identify permutations:

[bg1 , . . . , bg

k ] = [bg ′

1 , . . . , bg ′

k ] ⇔ g = g ′

Otherwise g ′g−1 would fix all points of B .

We want to work in the hierarchy of stabilizers

G > Gb1> Gb1b2

> · · · > Gb1...bk= id

Page 43: Mathematics for large scale tensor computations

Key observation 1: bijection between the orbit pG and the setof cosets G/Gp. Proof:

1) g ∈ Gp ⇔ pg = p

2) h′ ∈ Gp · h ⇒ g ∈ Gp, h′ = g · h ⇒ ph′ = pg ·h = ph

3) ph = ph′ ⇒ p = ph′·h−1⇒ h′ · h−1 ∈ Gp, same coset

In particular|G | = |Gp| · |p

G |

Key observation 2: Base images identify permutations:

[bg1 , . . . , bg

k ] = [bg ′

1 , . . . , bg ′

k ] ⇔ g = g ′

Otherwise g ′g−1 would fix all points of B .

We want to work in the hierarchy of stabilizers

G > Gb1> Gb1b2

> · · · > Gb1...bk= id

Page 44: Mathematics for large scale tensor computations

Do we already have generators for the stabilizers?In general, no. Example:

G = S3 = 〈(213), (231)〉 with base B = [1, 2]

G1 = 〈(132)〉

G12 = id

However,

G = S3 = 〈(213), (231)〉 with base B = [3, 2]

G3 = 〈(213)〉

G32 = id

Definition: S = s1, . . . , sm is a strong generating set of G

relative to the base B = [b1, . . . , bk ] if S contains generatingsets for all the stabilizers Gb1...bi

, i = 1, . . . , k.

Page 45: Mathematics for large scale tensor computations

Do we already have generators for the stabilizers?In general, no. Example:

G = S3 = 〈(213), (231)〉 with base B = [1, 2]

G1 = 〈(132)〉

G12 = id

However,

G = S3 = 〈(213), (231)〉 with base B = [3, 2]

G3 = 〈(213)〉

G32 = id

Definition: S = s1, . . . , sm is a strong generating set of G

relative to the base B = [b1, . . . , bk ] if S contains generatingsets for all the stabilizers Gb1...bi

, i = 1, . . . , k.

Page 46: Mathematics for large scale tensor computations

Do we already have generators for the stabilizers?In general, no. Example:

G = S3 = 〈(213), (231)〉 with base B = [1, 2]

G1 = 〈(132)〉

G12 = id

However,

G = S3 = 〈(213), (231)〉 with base B = [3, 2]

G3 = 〈(213)〉

G32 = id

Definition: S = s1, . . . , sm is a strong generating set of G

relative to the base B = [b1, . . . , bk ] if S contains generatingsets for all the stabilizers Gb1...bi

, i = 1, . . . , k.

Page 47: Mathematics for large scale tensor computations

The Schreier-Sims algorithm constructs a strong-generatingset from a generating set of G , for a freely specifiable base.

Sims 1970: O(n6) Knuth 1991: O(n5) Today:

Deterministic: O(n2 log3 |G |)Randomized: O(n log n log4 |G |)

Things which can be computed in polynomial time: Group order and membership. Coset enumeration and representatives.

Things which cannot be computed in polynomial time: Intersection of groups. Double coset enumeration and representatives.

General strategy: backtrack search, usually quite fast, butexponential in the worst case.

Page 48: Mathematics for large scale tensor computations

The Schreier-Sims algorithm constructs a strong-generatingset from a generating set of G , for a freely specifiable base.

Sims 1970: O(n6) Knuth 1991: O(n5) Today:

Deterministic: O(n2 log3 |G |)Randomized: O(n log n log4 |G |)

Things which can be computed in polynomial time: Group order and membership. Coset enumeration and representatives.

Things which cannot be computed in polynomial time: Intersection of groups. Double coset enumeration and representatives.

General strategy: backtrack search, usually quite fast, butexponential in the worst case.

Page 49: Mathematics for large scale tensor computations

The Schreier-Sims algorithm constructs a strong-generatingset from a generating set of G , for a freely specifiable base.

Sims 1970: O(n6) Knuth 1991: O(n5) Today:

Deterministic: O(n2 log3 |G |)Randomized: O(n log n log4 |G |)

Things which can be computed in polynomial time: Group order and membership. Coset enumeration and representatives.

Things which cannot be computed in polynomial time: Intersection of groups. Double coset enumeration and representatives.

General strategy: backtrack search, usually quite fast, butexponential in the worst case.

Page 50: Mathematics for large scale tensor computations

The Schreier-Sims algorithm constructs a strong-generatingset from a generating set of G , for a freely specifiable base.

Sims 1970: O(n6) Knuth 1991: O(n5) Today:

Deterministic: O(n2 log3 |G |)Randomized: O(n log n log4 |G |)

Things which can be computed in polynomial time: Group order and membership. Coset enumeration and representatives.

Things which cannot be computed in polynomial time: Intersection of groups. Double coset enumeration and representatives.

General strategy: backtrack search, usually quite fast, butexponential in the worst case.

Page 51: Mathematics for large scale tensor computations

Back to tensors

Canonicalization of tensor expressions with permutationsymmetries entails finding double coset representatives.

Permutation groups can be efficiently manipulated usingstrong generating sets.

Butler 1984: Use of backtrack search with SGS to find doublecoset representatives of any two subgroups.

Portugal 2001: Tensorial case: general S but special D.

Implementations (both GPL free software):

Portugal 2003: Maple

JMM-G 2003: Mathematica and C (∼ 100 times faster)

Solves the general case of permutation symmetries, withtimings of seconds up to 100 indices (minutes in worst cases).

Page 52: Mathematics for large scale tensor computations

Back to tensors

Canonicalization of tensor expressions with permutationsymmetries entails finding double coset representatives.

Permutation groups can be efficiently manipulated usingstrong generating sets.

Butler 1984: Use of backtrack search with SGS to find doublecoset representatives of any two subgroups.

Portugal 2001: Tensorial case: general S but special D.

Implementations (both GPL free software):

Portugal 2003: Maple

JMM-G 2003: Mathematica and C (∼ 100 times faster)

Solves the general case of permutation symmetries, withtimings of seconds up to 100 indices (minutes in worst cases).

Page 53: Mathematics for large scale tensor computations

Back to tensors

Canonicalization of tensor expressions with permutationsymmetries entails finding double coset representatives.

Permutation groups can be efficiently manipulated usingstrong generating sets.

Butler 1984: Use of backtrack search with SGS to find doublecoset representatives of any two subgroups.

Portugal 2001: Tensorial case: general S but special D.

Implementations (both GPL free software):

Portugal 2003: Maple

JMM-G 2003: Mathematica and C (∼ 100 times faster)

Solves the general case of permutation symmetries, withtimings of seconds up to 100 indices (minutes in worst cases).

Page 54: Mathematics for large scale tensor computations

Back to tensors

Canonicalization of tensor expressions with permutationsymmetries entails finding double coset representatives.

Permutation groups can be efficiently manipulated usingstrong generating sets.

Butler 1984: Use of backtrack search with SGS to find doublecoset representatives of any two subgroups.

Portugal 2001: Tensorial case: general S but special D.

Implementations (both GPL free software):

Portugal 2003: Maple

JMM-G 2003: Mathematica and C (∼ 100 times faster)

Solves the general case of permutation symmetries, withtimings of seconds up to 100 indices (minutes in worst cases).

Page 55: Mathematics for large scale tensor computations

Multiterm Symmetries

In particular,

where is the dimension of the vector space?

Page 56: Mathematics for large scale tensor computations

Sources of multiterm symmetries

Intrinsic cyclic symmetries:

Rabcd + Racdb + Radbc = 0

The Bianchi identity:

∇aRbcde + ∇bRcade + ∇cRabde = 0

The Ricci identity (more general concept of symmetry):

∇a∇bvc = ∇b∇av

c + Rabdcvd

Crystallographic symmetries

Dimensionally-dependent identities

Page 57: Mathematics for large scale tensor computations

The Cayley-Hamilton theorem

1. A square n × n matrix A satisfies its own characteristicequation:

p(x) := det(x I − A) = xn + c1xn−1 + · · · + cn−1x + cn

p(A) = 0

with

c1 = −tr(A) = −Aaa

c2 =1

2(tr(A)2 − tr(A2)) = A[a

aAb]

b

c3 = · · · = −A[aaA

bbA

c]c

The Cayley-Hamilton theorem is simply

A[a1a1A

a2a2 · · ·A

ananδ

a]b = 0

Page 58: Mathematics for large scale tensor computations

The Cayley-Hamilton theorem

1. A square n × n matrix A satisfies its own characteristicequation:

p(x) := det(x I − A) = xn + c1xn−1 + · · · + cn−1x + cn

p(A) = 0

with

c1 = −tr(A) = −Aaa

c2 =1

2(tr(A)2 − tr(A2)) = A[a

aAb]

b

c3 = · · · = −A[aaA

bbA

c]c

The Cayley-Hamilton theorem is simply

A[a1a1A

a2a2 · · ·A

ananδ

a]b = 0

Page 59: Mathematics for large scale tensor computations

2. This is a Lovelock-type (dimensionally-dependent) identity:

A[a1a2a3b1b2

Ba4a5b3· · ·Hanan+1]an+2

bm= 0

3. Gover 1997: Lovelock identities exhaust all dim-dep tensorrelations.

4. Obvious general algorithm (“brute force”): Take all possible canonical monomials appearing in a problem. Construct all possible linear multiterm relations among them.

For instance, in dim 4, antisymmetrize over all subsets of 5indices and perm-canonicalize again.

Introduce an order for those canonical monomials. Solve for the largest canonical monomials in terms of the

smaller monomials. Store all multiterm relations in a database.

Sounds crazy but works if perm-canonicalization is fastenough, and for moderate dimension.

Page 60: Mathematics for large scale tensor computations

2. This is a Lovelock-type (dimensionally-dependent) identity:

A[a1a2a3b1b2

Ba4a5b3· · ·Hanan+1]an+2

bm= 0

3. Gover 1997: Lovelock identities exhaust all dim-dep tensorrelations.

4. Obvious general algorithm (“brute force”): Take all possible canonical monomials appearing in a problem. Construct all possible linear multiterm relations among them.

For instance, in dim 4, antisymmetrize over all subsets of 5indices and perm-canonicalize again.

Introduce an order for those canonical monomials. Solve for the largest canonical monomials in terms of the

smaller monomials. Store all multiterm relations in a database.

Sounds crazy but works if perm-canonicalization is fastenough, and for moderate dimension.

Page 61: Mathematics for large scale tensor computations

2. This is a Lovelock-type (dimensionally-dependent) identity:

A[a1a2a3b1b2

Ba4a5b3· · ·Hanan+1]an+2

bm= 0

3. Gover 1997: Lovelock identities exhaust all dim-dep tensorrelations.

4. Obvious general algorithm (“brute force”): Take all possible canonical monomials appearing in a problem. Construct all possible linear multiterm relations among them.

For instance, in dim 4, antisymmetrize over all subsets of 5indices and perm-canonicalize again.

Introduce an order for those canonical monomials. Solve for the largest canonical monomials in terms of the

smaller monomials. Store all multiterm relations in a database.

Sounds crazy but works if perm-canonicalization is fastenough, and for moderate dimension.

Page 62: Mathematics for large scale tensor computations

2. This is a Lovelock-type (dimensionally-dependent) identity:

A[a1a2a3b1b2

Ba4a5b3· · ·Hanan+1]an+2

bm= 0

3. Gover 1997: Lovelock identities exhaust all dim-dep tensorrelations.

4. Obvious general algorithm (“brute force”): Take all possible canonical monomials appearing in a problem. Construct all possible linear multiterm relations among them.

For instance, in dim 4, antisymmetrize over all subsets of 5indices and perm-canonicalize again.

Introduce an order for those canonical monomials. Solve for the largest canonical monomials in terms of the

smaller monomials. Store all multiterm relations in a database.

Sounds crazy but works if perm-canonicalization is fastenough, and for moderate dimension.

Page 63: Mathematics for large scale tensor computations

Young tableaux

Schur-Weyl duality. Tensor transformation under M ∈ GL(n):

(MT )a1...ak= Ma1

bi · · ·Mak

bk Tb1...bk

Tensor transformation under p ∈ Sk :

(pT )a1...ak= Ta′1...a

k, a′j = ajp

Both

(pMT )a1...ak= Ma′1

bi · · ·Ma′k

bk Tb1...bk

= Ma′1

b′

i · · ·Ma′k

b′

k Tb′

1...b′

k

= Ma1bi · · ·Mak

bk (pT )b1...bk

= (MpT )a1...ak

Linear transformations and permutations commute on tensors!

Page 64: Mathematics for large scale tensor computations

That implies the existence of a common labelling of therepresentations of the groups GL(n) and Sk . The labels arethe integer partitions of k in at most n parts, representable asYoung diagrams of k boxes with at most n rows.Example: 12=4+3+3+2

This is a possible irreducible symmetry for a rank-12 tensor indimension 4 or larger. Other examples:

Lanczos Riemann ∇Riemann

Page 65: Mathematics for large scale tensor computations

That implies the existence of a common labelling of therepresentations of the groups GL(n) and Sk . The labels arethe integer partitions of k in at most n parts, representable asYoung diagrams of k boxes with at most n rows.Example: 12=4+3+3+2

This is a possible irreducible symmetry for a rank-12 tensor indimension 4 or larger. Other examples:

Lanczos Riemann ∇Riemann

Page 66: Mathematics for large scale tensor computations

Permutation symmetry in a tableau: columns are antisymmetries symmetry under exchange of columns of equal length

Dimensions of Sk representation: number of standardtableaux. Riemann:

a cb d

a bc d but not

a bd c

Dimensions of GL(n) representation: number of semistandardtableaux. Riemann in n = 4:

1 12 2

1 12 3

1 12 4

1 13 3

1 13 4

1 14 4

1 22 3

1 22 4

1 23 3

1 23 4

1 24 4

1 32 4

1 33 4

1 34 4

2 23 3

2 23 4

2 24 4

2 33 4

2 34 4

3 34 4 but not

1 24 3

Page 67: Mathematics for large scale tensor computations

Permutation symmetry in a tableau: columns are antisymmetries symmetry under exchange of columns of equal length

Dimensions of Sk representation: number of standardtableaux. Riemann:

a cb d

a bc d but not

a bd c

Dimensions of GL(n) representation: number of semistandardtableaux. Riemann in n = 4:

1 12 2

1 12 3

1 12 4

1 13 3

1 13 4

1 14 4

1 22 3

1 22 4

1 23 3

1 23 4

1 24 4

1 32 4

1 33 4

1 34 4

2 23 3

2 23 4

2 24 4

2 33 4

2 34 4

3 34 4 but not

1 24 3

Page 68: Mathematics for large scale tensor computations

Permutation symmetry in a tableau: columns are antisymmetries symmetry under exchange of columns of equal length

Dimensions of Sk representation: number of standardtableaux. Riemann:

a cb d

a bc d but not

a bd c

Dimensions of GL(n) representation: number of semistandardtableaux. Riemann in n = 4:

1 12 2

1 12 3

1 12 4

1 13 3

1 13 4

1 14 4

1 22 3

1 22 4

1 23 3

1 23 4

1 24 4

1 32 4

1 33 4

1 34 4

2 23 3

2 23 4

2 24 4

2 33 4

2 34 4

3 34 4 but not

1 24 3

Page 69: Mathematics for large scale tensor computations

Cyclic symmetry in a tableau: Garnir hooks. Riemann: twoequivalent Garnir hooks:

a cb d +

a bd c −

a bc d = 0

Symmetry of a tensor product: For different tensors, use the Littlewood-Richardson rule

× = + + +

For equal tensors, use plethysms

ˆ = + + +

Page 70: Mathematics for large scale tensor computations

Cyclic symmetry in a tableau: Garnir hooks. Riemann: twoequivalent Garnir hooks:

a cb d +

a bd c −

a bc d = 0

Symmetry of a tensor product: For different tensors, use the Littlewood-Richardson rule

× = + + +

For equal tensors, use plethysms

ˆ = + + +

Page 71: Mathematics for large scale tensor computations

Each standard tableau defines a projector. For Riemann:

12P = (1234) + (2134) − (3214) − (1432)

+(1243) − (4132) − (2314) − (3241)

−(1423) − (4123) + (4312) + (3421)

−(2341) + (2143) + (3412) + (4321)

with P2 = P . Using permutations symmetries we get

Rabcd = (PR)abcd =2

3Rabcd +

1

3Racbd −

1

3Radbc

Agacy 1998, Peeters 2005: replace Rabcd by this expression,and use only permutation symmetries then. That implementsall symmetries of Riemann!

Page 72: Mathematics for large scale tensor computations

Each standard tableau defines a projector. For Riemann:

12P = (1234) + (2134) − (3214) − (1432)

+(1243) − (4132) − (2314) − (3241)

−(1423) − (4123) + (4312) + (3421)

−(2341) + (2143) + (3412) + (4321)

with P2 = P . Using permutations symmetries we get

Rabcd = (PR)abcd =2

3Rabcd +

1

3Racbd −

1

3Radbc

Agacy 1998, Peeters 2005: replace Rabcd by this expression,and use only permutation symmetries then. That implementsall symmetries of Riemann!

Page 73: Mathematics for large scale tensor computations

Riemann invariants

Page 74: Mathematics for large scale tensor computations

History

Algebraic inv RabcdRabef Rcdef , or differential inv Rab∇c∇dRacbd .

Used in the classification of spacetimes, GR Lagrangian expansions,QG renormalization, etc.

Haskins 1902: 14 independent scalar invs in 4d.

Narlikar and Karmarkar 1948: first list of 14 scalar invs:(R , R2, W 2, R3, W 3, R2W , W 4, R4, R2W 2,W 5, R2W 3, R4W , R4W 2, R4W 3).

Other invariants are (possibly nonpolynomial) functions of them.

Completeness: polynomic basis for all invariants. Relations?

Sneddon 1999: 38 a-invs (deg 11). Complete basis. (Rotorcalculus.)

Carminati-Lim 2007: graph-based construction of a-inv relations.

Fulling et al 1992: bases for d-invs up to 10 derivatives and R6.

Page 75: Mathematics for large scale tensor computations

History

Algebraic inv RabcdRabef Rcdef , or differential inv Rab∇c∇dRacbd .

Used in the classification of spacetimes, GR Lagrangian expansions,QG renormalization, etc.

Haskins 1902: 14 independent scalar invs in 4d.

Narlikar and Karmarkar 1948: first list of 14 scalar invs:(R , R2, W 2, R3, W 3, R2W , W 4, R4, R2W 2,W 5, R2W 3, R4W , R4W 2, R4W 3).

Other invariants are (possibly nonpolynomial) functions of them.

Completeness: polynomic basis for all invariants. Relations?

Sneddon 1999: 38 a-invs (deg 11). Complete basis. (Rotorcalculus.)

Carminati-Lim 2007: graph-based construction of a-inv relations.

Fulling et al 1992: bases for d-invs up to 10 derivatives and R6.

Page 76: Mathematics for large scale tensor computations

History

Algebraic inv RabcdRabef Rcdef , or differential inv Rab∇c∇dRacbd .

Used in the classification of spacetimes, GR Lagrangian expansions,QG renormalization, etc.

Haskins 1902: 14 independent scalar invs in 4d.

Narlikar and Karmarkar 1948: first list of 14 scalar invs:(R , R2, W 2, R3, W 3, R2W , W 4, R4, R2W 2,W 5, R2W 3, R4W , R4W 2, R4W 3).

Other invariants are (possibly nonpolynomial) functions of them.

Completeness: polynomic basis for all invariants. Relations?

Sneddon 1999: 38 a-invs (deg 11). Complete basis. (Rotorcalculus.)

Carminati-Lim 2007: graph-based construction of a-inv relations.

Fulling et al 1992: bases for d-invs up to 10 derivatives and R6.

Page 77: Mathematics for large scale tensor computations

History

Algebraic inv RabcdRabef Rcdef , or differential inv Rab∇c∇dRacbd .

Used in the classification of spacetimes, GR Lagrangian expansions,QG renormalization, etc.

Haskins 1902: 14 independent scalar invs in 4d.

Narlikar and Karmarkar 1948: first list of 14 scalar invs:(R , R2, W 2, R3, W 3, R2W , W 4, R4, R2W 2,W 5, R2W 3, R4W , R4W 2, R4W 3).

Other invariants are (possibly nonpolynomial) functions of them.

Completeness: polynomic basis for all invariants. Relations?

Sneddon 1999: 38 a-invs (deg 11). Complete basis. (Rotorcalculus.)

Carminati-Lim 2007: graph-based construction of a-inv relations.

Fulling et al 1992: bases for d-invs up to 10 derivatives and R6.

Page 78: Mathematics for large scale tensor computations

Riemann invariants up to degree 7 7 Riemann → 28 indices → 28! ≃ 3.0 · 1029 a-invs

Use monoterm symmetries: 16352 invariants

Use cyclic property: 1639 invariants

Antisymmetrise over sets of 5 indices in 4d: 4311 integer equations

Page 79: Mathematics for large scale tensor computations

Riemann invariants up to degree 7 7 Riemann → 28 indices → 28! ≃ 3.0 · 1029 a-invs

Use monoterm symmetries: 16352 invariants

Use cyclic property: 1639 invariants

Antisymmetrise over sets of 5 indices in 4d: 4311 integer equations

Gauss elimination: Intermediate swell problem:

Original integers: |ci | ≤ 384 Final integers: |cf | ≤ 4978120 Largest intermediate integer:

Page 80: Mathematics for large scale tensor computations

Riemann invariants up to degree 7 7 Riemann → 28 indices → 28! ≃ 3.0 · 1029 a-invs

Use monoterm symmetries: 16352 invariants

Use cyclic property: 1639 invariants

Antisymmetrise over sets of 5 indices in 4d: 4311 integer equations

Gauss elimination: Intermediate swell problem:

Original integers: |ci | ≤ 384 Final integers: |cf | ≤ 4978120 Largest intermediate integer:

4128432088811462631210560847258796357727760565961955312109033719974522122912026393839047919079833136293326586851425207976783555836309071365640456573585413951344201540916373441818847340888359206516826545838550350981924166243854816386358011913196352080821446913112544207777945582431400973483457511551249427165040578011486377996431957110887574044723612095478539444181734311327487135158150147408144620915351339939806272116543186970020596936859101026073658967889992306803277195043926510784936890214764598221917466623055176060658271638645490139036389024466375930303586688550738508615214422459534528028026604339296211874545398934176513452668215589707310886321265833677782947671903197039133298738083435857983747685083659334680222681616686514058699829948476521738772411701178283002256312672449814493504188768078308059566617955048754211100127225300485494079978006577938025856377710049543176142178387315401497328

Required 8Gb RAM and 384-bytes integers (BigNum: GMP).

Page 81: Mathematics for large scale tensor computations

Riemann invariants up to degree 7 7 Riemann → 28 indices → 28! ≃ 3.0 · 1029 a-invs

Use monoterm symmetries: 16352 invariants

Use cyclic property: 1639 invariants

Antisymmetrise over sets of 5 indices in 4d: 4311 integer equations

Gauss elimination: Intermediate swell problem:

Original integers: |ci | ≤ 384 Final integers: |cf | ≤ 4978120 Largest intermediate integer:

4128432088811462631210560847258796357727760565961955312109033719974522122912026393839047919079833136293326586851425207976783555836309071365640456573585413951344201540916373441818847340888359206516826545838550350981924166243854816386358011913196352080821446913112544207777945582431400973483457511551249427165040578011486377996431957110887574044723612095478539444181734311327487135158150147408144620915351339939806272116543186970020596936859101026073658967889992306803277195043926510784936890214764598221917466623055176060658271638645490139036389024466375930303586688550738508615214422459534528028026604339296211874545398934176513452668215589707310886321265833677782947671903197039133298738083435857983747685083659334680222681616686514058699829948476521738772411701178283002256312672449814493504188768078308059566617955048754211100127225300485494079978006577938025856377710049543176142178387315401497328

Required 8Gb RAM and 384-bytes integers (BigNum: GMP).

We get the 27 invs of Sneddon’s basis up to degree 7 (6 dual), plus allpolynomial expression of any other invariant. Invar package: CPC 2007.

Database of 645 625 relations up to 12 metric derivatives. CPC 2008.

Page 82: Mathematics for large scale tensor computations

Results for algebraic Riemann invariants

Degree A A∗ B B∗ C C∗ D D∗

1 1 1 1 0 1 0 1 02 3 4 2 1 2 1 2 13 9 27 5 6 3 2 3 24 38 232 15 40 4 1 3 15 204 2582 54 330 5 2 3 26 1613 35090 270 3159 8 2 4 27 16532 558323 1639 – 7 (1) 3 (1)8 217395 – 13140 – (9) (1) (2) (1)9 3406747 – – – (11) (1) (3) (1)10 – – – – (9) (1) (1) (1)11 – – – – (9) (0) (1) (0)12 – – – – (9) (0) (0) (0)

A: Permutation symmetries, B: Cyclic symmetry,C: Dim-dep identities, D: Products of duals (∗).

Page 83: Mathematics for large scale tensor computations

Conclusions

1. We have a fast algorithm for canonicalization underpermutation symmetries, both of slot and index type. Basedon the use of strong generating sets.

2. It is possible to use brute force to implement multitermsymmetries, in particular Lovelock identities, for moderatecases. We have shown the example of Riemann invariants.

3. It is possible to use Young tableaux to work with irreduciblemultiterm symmetries. Algorithm not complete, though.