Macaulay2 » Documentation
Packages » PathSignatures :: shuffle
next | previous | forward | backward | up | index | toc

shuffle -- shuffle product of two words

Description

We start with the mathematical definition of this operation, based on [1]. Consider $T(\mathbb{R}^d)$, the free algebra on the symbols $1,\dots, d$. Denote by $\bullet$ its concatenation product and by $e$ the neutral element with respect to the concatenation (the empty word). The shuffle product of two words is defined recursively as follows. Let $w, w_1, w_2$ be three words and $a, b$ bet two letters, i.e. $w, w_1, w_2\in T(\mathbb{R}^d)$ and $a,b\in \{1,\dots, d\}$. Then the shuffle product $\char"29E2$ is defined to be $$ e \char"29E2 w := w =: w\char"29E2 e$$ and $$(w_1\bullet a) \char"29E2 (w_2\bullet b) = (w_1 \char"29E2 (w_2\bullet b))\bullet a + ((w_1\bullet a)\char"29E2 w_2)\bullet b$$

The easiest way to compute a shuffle product is through NCRingElement ** NCRingElement which is equivalent to shuffle(NCRingElement,NCRingElement):

i1 : R = wordAlgebra(2); -- create a free associative algebra over two letters Lt_1, Lt_2
i2 : f = [1,2]_R; -- [i_1,...,i_k]_R defines a word
i3 : wordFormat f -- display the polynomial in word notation

o3 = [1, 2]
i4 : f = ([1,2]_R ** [1,2]_R); -- compute the shuffle product
i5 : f // wordFormat --display the result in word notation

o5 = 2 [1, 2, 1, 2] + 4 [1, 1, 2, 2]

References

Signatures of paths transformed by polynomial maps (doi.org/10.1007/s13366-020-00493-9)

See also

Ways to use shuffle:

  • shuffle(NCRingElement,NCRingElement)

For the programmer

The object shuffle is a method function.


The source of this document is in PathSignatures/documentation.m2:918:0.