straighten -- computes straightening of a tableau

Synopsis

• Usage:
straighten(t)straighten(t, h)
• Inputs:
• t, a list, a tableau to straighten; a tableau looks like {{3,4}, {1,2}} for example, where we list the entries from left to right, top to bottom
• h, , where the answers should be stored
• Consequences:
• If provided, the hashtable h is updated with any calculations which are performed as a result of calling this function.

Description

If a hashtable h is provided, then this outputs nothing, it simply just modifies h. When looking up values, remember that the keys are stored with rows weakly increasing. If no hashtable is provided, then the user is simply given the straightening of the tableau in terms of semistandard tableaux. The answer is in the form a hashtable: each key is a semistandard tableaux, and the value of the key is the coefficient of that semistandard tableaux used to write the input t as a linear combination.
 i1 : h = new MutableHashTable from {} o1 = MutableHashTable{} o1 : MutableHashTable i2 : straighten({{3,4}, {1,2}}, h) i3 : h#{{3,4}, {1,2}} -- get the coefficients o3 = HashTable{{{1, 2}, {3, 4}} => 1} o3 : HashTable i4 : straighten({{3,4}, {1,2}}) -- just get the answer instead o4 = HashTable{{{1, 2}, {3, 4}} => 1} o4 : HashTable

Ways to use straighten :

• straighten(List)
• straighten(List,MutableHashTable)