{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "def x(i):\n", " return SR.var('x_{}'.format(i))" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def vcoding(lam,g,t):\n", " '''\n", " this function returns the V_{g,t} coding of a partition\n", " lam is the partition\n", " g is the value of the parameter depending on the type of Lie algebra considered\n", " t is the rank of the Lie algebra\n", " '''\n", " l=lam.length()\n", " tmp=[lam[i]-i-1 for i in range(l)]\n", " res = [abs(tmp[i]%g) for i in range(l)]\n", " #print(tmp)\n", " #print(set(res))\n", " #setres =set(res)\n", " cnt = 1\n", " while len(set(res))A)}\n", " sgn=1\n", " #sgn_diag encodes the value of (-1)^{number of hook lengths A) that are on the main diagonal}\n", " sgn_diag=1\n", " #P is the product of hook lengths on the left-hand side of Theorems from Section 4.2\n", " P=1\n", " Q=1\n", " P_hookdiag=1\n", " for i in range(l):\n", " for j in range(lam[i]):\n", " h=lam.hook_length(i,j)\n", " #apart from the type A case, the products on the left-hand side of the theorems in Section 4.2 depend on the position\n", " #of a box with respect to the main diagonal\n", " if ty=='a':\n", " P=P*(x(h))/(x(h+g))*(x(h+2*g))/(x(h+g))\n", " if hj:\n", " P=P*(x(h+2*g))/(x(h+g))\n", " vg=vcoding(lam,g,t)\n", " '''this part fills Q to be the right-hand side of Theorems from Section 4.2. \n", " Since all of variables must be of positive index, the indices are shifted by g.\n", " Recall also that range(n) goes from 0 to n-1 which explains the (i+1) and the (j+1)\n", " '''\n", " for i in range(len(vg)):\n", " if ty=='c':\n", " Q=Q*x(vg[i]+g/2)/x(i+1+g)\n", " elif ty=='bv':\n", " Q=Q*x(vg[i]+g/2+1)/x(i+1+g)\n", " elif ty=='d':\n", " if x(vg[i]+g/2+1)==0:\n", " #here we just handle the exception r_i=0, then tau(2r_i)/tau(r_i)=1 in order to call \n", " #hook_functionty for the applications to the q Nekrasov-Okounkov formula\n", " Q=Q\n", " else:\n", " Q=Q*x(2*vg[i]+2)/x(vg[i]+g/2+1)\n", " if i