Skip to content

Trace ​

Generated from the engine's own definition: compute-engine's symbol, which we neither extend nor document by hand.

Trace of a matrix or pair of tensor axes.

✓ checked against that system · ! checked, with disagreements (hover a chip)FindStatSt001919via PlanePartition✓Wolfram LanguageTr!
Trace(list<number> | number, axis1: integer?, axis2: integer?) -> list<number> | numberTrace of a matrix or pair of tensor axes.
Typed signatures
TypePackageApplies
((plane_partition) -> number) & ((number | tensor, axis1: integer?, axis2: integer?) -> number | tensor)combinatoricsreplaces compute-enginealways
(number | tensor, axis1: integer?, axis2: integer?) -> number | tensorcompute-enginealways

Domain: Compute engine

Definition

Epsil, as the implementation runs it.

on PlanePartition, over _x

0 if Length(Flatten(_x)) < 1 else Apply((reading: list<integer>) => Apply(
                                                                           (lengths: list<integer>) => Apply(
                                                                                                              (rowIds: list<integer>) => Apply(
                                                                                                                                                (columnIds: list<integer>) => Max(Sum(Map(Function(reading[u] if rowIds[u] == columnIds[u] else 0, u), Range(1, Length(reading), 1))), 0),
                                                                                                                                                Flatten(Map(Function(Range(1, lengths[i], 1), i), Range(1, Length(_x)))),
                                                                                                                                              ),
                                                                                                              Flatten(Map(
                                                                                                                           Function(Map(Function(i, j), Range(1, lengths[i], 1)), i),
                                                                                                                           Range(1, Length(_x)),
                                                                                                                         )),
                                                                                                            ),
                                                                           Map(
                                                                                Function(Length(r), r),
                                                                                _x,
                                                                              ),
                                                                         ), Flatten(_x))

Examples

Basic #

The sum of the diagonal

live ↗
Intr⁡([[1,2],[3,4]])\operatorname{tr}\left(\bigl\lbrack\bigl\lbrack1, 2\bigr\rbrack, \bigl\lbrack3, 4\bigr\rbrack\bigr\rbrack\right)Out55
live ↗
Intr⁡([[1,2,3],[4,5,6],[7,8,9]])\operatorname{tr}\left(\bigl\lbrack\bigl\lbrack1, 2, 3\bigr\rbrack, \bigl\lbrack4, 5, 6\bigr\rbrack, \bigl\lbrack7, 8, 9\bigr\rbrack\bigr\rbrack\right)Out1515

The plane partition with rows 32∣21∣132 \mid 21 \mid 1: the diagonal entries 33 and 11

live ↗
InCombinatorialStat(PlanePartition⁡([[3,2],[2,1],[1]]),Trace)\mathrm{CombinatorialStat}({\operatorname{PlanePartition}}([[3, 2], [2, 1], [1]]), \text{Trace})Out44
Scope #
live ↗
Intr⁡(Array(a,[4,3,2]))\operatorname{tr}\left(\mathrm{Array}(a, \bigl\lbrack4, 3, 2\bigr\rbrack)\right)Outtr⁡([[[a(1,1,1),a(1,1,2)],[a(1,2,1),a(1,2,2)],[a(1,3,1),a(1,3,2)]],[[a(2,1,1),a(2,1,2)],[a(2,2,1),a(2,2,2)],[a(2,3,1),a(2,3,2)]],[[a(3,1,1),a(3,1,2)],[a(3,2,1),a(3,2,2)],[a(3,3,1),a(3,3,2)]],[[a(4,1,1),a(4,1,2)],[a(4,2,1),a(4,2,2)],[a(4,3,1),a(4,3,2)]]])\operatorname{tr}\left(\bigl\lbrack\bigl\lbrack\bigl\lbrack a(1, 1, 1), a(1, 1, 2)\bigr\rbrack, \bigl\lbrack a(1, 2, 1), a(1, 2, 2)\bigr\rbrack, \bigl\lbrack a(1, 3, 1), a(1, 3, 2)\bigr\rbrack\bigr\rbrack, \bigl\lbrack\bigl\lbrack a(2, 1, 1), a(2, 1, 2)\bigr\rbrack, \bigl\lbrack a(2, 2, 1), a(2, 2, 2)\bigr\rbrack, \bigl\lbrack a(2, 3, 1), a(2, 3, 2)\bigr\rbrack\bigr\rbrack, \bigl\lbrack\bigl\lbrack a(3, 1, 1), a(3, 1, 2)\bigr\rbrack, \bigl\lbrack a(3, 2, 1), a(3, 2, 2)\bigr\rbrack, \bigl\lbrack a(3, 3, 1), a(3, 3, 2)\bigr\rbrack\bigr\rbrack, \bigl\lbrack\bigl\lbrack a(4, 1, 1), a(4, 1, 2)\bigr\rbrack, \bigl\lbrack a(4, 2, 1), a(4, 2, 2)\bigr\rbrack, \bigl\lbrack a(4, 3, 1), a(4, 3, 2)\bigr\rbrack\bigr\rbrack\bigr\rbrack\right)
live ↗
Intr⁡([[1,2,3],[4,5,6],[7,8,9]],f)\operatorname{tr}(\bigl\lbrack\bigl\lbrack1, 2, 3\bigr\rbrack, \bigl\lbrack4, 5, 6\bigr\rbrack, \bigl\lbrack7, 8, 9\bigr\rbrack\bigr\rbrack, f)Out1515
live ↗
Intr⁡(Array(a,[4,3,2]),f,2)\operatorname{tr}(\mathrm{Array}(a, \bigl\lbrack4, 3, 2\bigr\rbrack), f, 2)Outtr⁡([[[a(1,1,1),a(1,1,2)],[a(1,2,1),a(1,2,2)],[a(1,3,1),a(1,3,2)]],[[a(2,1,1),a(2,1,2)],[a(2,2,1),a(2,2,2)],[a(2,3,1),a(2,3,2)]],[[a(3,1,1),a(3,1,2)],[a(3,2,1),a(3,2,2)],[a(3,3,1),a(3,3,2)]],[[a(4,1,1),a(4,1,2)],[a(4,2,1),a(4,2,2)],[a(4,3,1),a(4,3,2)]]],f,2)\operatorname{tr}(\bigl\lbrack\bigl\lbrack\bigl\lbrack a(1, 1, 1), a(1, 1, 2)\bigr\rbrack, \bigl\lbrack a(1, 2, 1), a(1, 2, 2)\bigr\rbrack, \bigl\lbrack a(1, 3, 1), a(1, 3, 2)\bigr\rbrack\bigr\rbrack, \bigl\lbrack\bigl\lbrack a(2, 1, 1), a(2, 1, 2)\bigr\rbrack, \bigl\lbrack a(2, 2, 1), a(2, 2, 2)\bigr\rbrack, \bigl\lbrack a(2, 3, 1), a(2, 3, 2)\bigr\rbrack\bigr\rbrack, \bigl\lbrack\bigl\lbrack a(3, 1, 1), a(3, 1, 2)\bigr\rbrack, \bigl\lbrack a(3, 2, 1), a(3, 2, 2)\bigr\rbrack, \bigl\lbrack a(3, 3, 1), a(3, 3, 2)\bigr\rbrack\bigr\rbrack, \bigl\lbrack\bigl\lbrack a(4, 1, 1), a(4, 1, 2)\bigr\rbrack, \bigl\lbrack a(4, 2, 1), a(4, 2, 2)\bigr\rbrack, \bigl\lbrack a(4, 3, 1), a(4, 3, 2)\bigr\rbrack\bigr\rbrack\bigr\rbrack, f, 2)
About
Examples7
Checked againstWolfram Language 4 agree1 differSageMath 2 agree
CrosswalkFindStatWolfram LanguageSageMath

Implementation

mappedsagepackages/oracle/src/mappings.ts