print(`Created:Oct, 2002.`): print(`This version: Oct, 2002`): print(`Written by Xiangdong Wen, wen@math.temple.edu`): print(`Please report bugs to wen@math.temple.edu`): print(`The most current version of this package and paper`): print(` are available from`): print(`http://www.math.temple.edu/~wen/`): print(`For a list of the procedures type Help(), for help with`): print(`a specific procedure, type Help(procedure_name)`): Help:=proc() if args=NULL then print(`Contains the following procedures:`): print(`sumall_west,sumall_lind,sumall_4n_1,sumall_4n_2,`): print(`sumall_3n_1,sumall_3n_2,sumall_2n(),sumall_1n.`): fi: if nops([args])=1 and op(1,[args])=sumall_west then print(`sumall_west(): gives the total weights for the chains of L(4,n) by Douglas B. West`): print(`A Symmetric chain Decomposition of L(4,n)`): print(`Europ.J.Combinatorics(1980)1,379-383`): print(`example: sumall_west() `): fi: if nops([args])=1 and op(1,[args])=sumall_lind then print(`sumall_lind(): gives the total weights for the chains of L(3,n) by Bernt Lindstrom`): print(`A Partition of L(3,n) into Saturated Symmetric chains`): print(`Europ.J.Combinatorics(1980)1,61-63`): print(`example: sumall_lind() `): fi: if nops([args])=1 and op(1,[args])=sumall_4n_1 then print(`sumall_4n_1(): gives the total weights for the chains of L(4,n) by the authors`): print(`example: sumall_4n_1() `): fi: if nops([args])=1 and op(1,[args])=sumall_4n_2 then print(`sumall_4n_2(): gives the total weights for the chains of L(4,n) by the authors`): print(`example: sumall_4n_2() `): fi: if nops([args])=1 and op(1,[args])=sumall_3n_1 then print(`sumall_3n_1(): gives the total weights for the chains of L(3,n) by the authors`): print(`example: sumall_3n_1() `): fi: if nops([args])=1 and op(1,[args])=sumall_3n_2 then print(`sumall_3n_2(): gives the total weights for the chains of L(3,n) by the authors`): print(`example: sumall_3n_2() `): fi: if nops([args])=1 and op(1,[args])=sumall_2n then print(`sumall_2n(): gives the total weights for the chains of L(2,n)`): print(`example: sumall_2n() `): fi: if nops([args])=1 and op(1,[args])=sumall_1n then print(`sumall_1n(): gives the total weights for the chains of L(1,n)`): print(`example: sumall_1n() `): fi: end: ################################################################### ################################################################### Sum_of_one_Segment:=proc(n,arr1,arr2,n_lowerbound,n_upperbound,num_pars)local s,y,size,a,b,r_upper,z,c; size:=nops(arr1); a:=[n-arr1[size],seq((arr1[size-t]-arr1[size-t-1]),t=0..size-2),arr1[1]]; b:=[n-arr2[size],seq((arr2[size-t]-arr2[size-t-1]),t=0..size-2),arr2[1]]; for s from 1 to size+1 do if (a[s]-b[s]<>0)then r_upper:=a[s]-b[s]; fi;od; for s from 1 to size+1 do if (a[s]-b[s]<>0)then z[s]:=r*(a[s]-b[s])/(r_upper); else z[s]:=0; fi; od; for s from 1 to size+1 do c[s]:=b[s]+z[s]; od; if num_pars=4 then normal(sum(sum(sum(sum(sum(sum(expression(c,size+1),r=0..infinity),n=n_lowerbound..n_upperbound),j=0..infinity),i=0..infinity),k=0..infinity),l=0..infinity)-sum(sum(sum(sum(sum(sum(expression(c,size+1),r=r_upper..infinity),n=n_lowerbound..n_upperbound),j=0..infinity),i=0..infinity),k=0..infinity),l=0..infinity)); elif num_pars=3 then normal(sum(sum(sum(sum(sum(expression(c,size+1),r=0..infinity),n=n_lowerbound..n_upperbound),j=0..infinity),i=0..infinity),k=0..infinity)-sum(sum(sum(sum(sum(expression(c,size+1),r=r_upper..infinity),n=n_lowerbound..n_upperbound),j=0..infinity),i=0..infinity),k=0..infinity)); elif num_pars=2 then normal(sum(sum(sum(sum(expression(c,size+1),r=0..infinity),n=n_lowerbound..n_upperbound),j=0..infinity),i=0..infinity)-sum(sum(sum(sum(expression(c,size+1),r=r_upper..infinity),n=n_lowerbound..n_upperbound),j=0..infinity),i=0..infinity)); elif num_pars=1 then normal(sum(sum(sum(expression(c,size+1),r=0..infinity),n=n_lowerbound..n_upperbound),i=0..infinity)-sum(sum(sum(expression(c,size+1),r=r_upper..infinity),n=n_lowerbound..n_upperbound),i=0..infinity)); elif num_pars=0 then normal(sum(sum(expression(c,size+1),r=0..infinity),n=n_lowerbound..n_upperbound)-sum(sum(expression(c,size+1),r=r_upper..infinity),n=n_lowerbound..n_upperbound)); fi: end: ################################################################### ################################################################### expression:=proc(k,size) local t,s; t:=1; for s from 0 to size-1 do t:=t*x[s]^k[s+1]; od; t; end: ################################################################### ################################################################### Sum_of_one_chain:=proc(n,arr,n_lower_bound,n_upper_bound,num) local s,t,y,z,result; result:=0; t:=arr[1];t[1]:=t[1]+1; result:=result+Sum_of_one_Segment(n,t,arr[1],n_lower_bound,n_upper_bound,num); for s from 1 to nops(arr)-1 do result:=result+Sum_of_one_Segment(n,arr[s],arr[s+1],n_lower_bound,n_upper_bound,num); od; normal(result); end: ################################################################### ################################################################### sumall_4n_1:=proc() local a,b: a:=Sum_of_one_chain(n,[ [n-2*k-2*j-i-1,n-2*k-j-i-1,n-k-j-1,n-k], [n-2*k-2*j-i-1,n-2*k-j-i-1,n-k-i-j-1,n-k], [n-2*k-2*j-i-1,n-2*k-j-i-1,n-k-i-j-1,n-k-i-1], [k, n-2*k-j-i-1,n-k-i-j-1,n-k-i-1], [k, k+j, n-k-i-j-1,n-k-i-1], [k, k+j, 2*k+j+i+1,n-k-i-1], [k,k+j,2*k+i+j+1,2*k+2*j+i+2]],2*i+2*j+3*k+3,infinity,3): b:=Sum_of_one_chain(n,[ [n-2*k-2*j-i,n-2*k-j-i,n-k-j,n-k], [k+i,n-2*k-j-i,n-k-j,n-k], [k+i,k+j+i,n-k-j,n-k], [k+i,k+j+i,2*k+j+i,n-k] , [k+i,k+j+i,2*k+j+i,2*k+2*j+i], [k,k+j+i,2*k+j+i,2*k+2*j+i], [k,k+j,2*k+i+j,2*k+2*j+i]],2*i+2*j+3*k,infinity,3): normal(a+b); end: ################################################################### ################################################################### sumall_4n_2:=proc() local a,b: a:=Sum_of_one_chain(n,[ [n-2*k-2*j-i,n-2*k-j-i,n-k-j,n-k], [n-2*k-2*j-i,n-2*k-j-i,n-k-i-j,n-k], [n-2*k-2*j-i,n-2*k-j-i,n-k-i-j,n-k-i], [k, n-2*k-j-i,n-k-i-j,n-k-i], [k, k+j, n-k-i-j,n-k-i], [k, k+j, 2*k+j+i,n-k-i], [k,k+j,2*k+i+j,2*k+2*j+i]],2*i+2*j+3*k,infinity,3): b:=Sum_of_one_chain(n,[ [n-2*k-2*j-i-2,n-2*k-j-i-1,n-k-j,n-k], [k+i+1,n-2*k-j-i-1,n-k-j,n-k], [k+i+1,k+j+i+1,n-k-j,n-k], [k+i+1,k+j+i+1,2*k+j+i+1,n-k] , [k+i+1,k+j+i+1,2*k+j+i+1,2*k+2*j+i+1], [k,k+j+i+1,2*k+j+i+1,2*k+2*j+i+1], [k,k+j+1,2*k+i+j+1,2*k+2*j+i+1]],2*i+2*j+3*k+3,infinity,3): normal(a+b); end: ################################################################### ################################################################### sumall_3n_1:=proc() local a,b: a:=Sum_of_one_chain(n,[[n-i-3*j,n-i-2*j,n-j], [i+j,n-i-2*j,n-j] , [i+j,i+2*j,n-j], [i+j,i+2*j,i+3*j], [j,i+2*j,i+3*j]],2*i+4*j,infinity,2): b:=Sum_of_one_chain(n,[[n-i-3*j-1,n-i-2*j-1,n-j-1], [n-i-3*j-1,n-i-2*j-1,n-i-j-1] , [j,n-i-2*j-1,n-i-j-1], [j,i+2*j+1,n-i-j-1], [j,i+2*j+1,i+3*j+2]], 2*i+4*j+3,infinity,2): normal(a+b); end: ################################################################### ################################################################### sumall_3n_2:=proc() local a,b: a:=Sum_of_one_chain(n,[[n-i-3*j-2,n-i-2*j-1,n-j], [i+j+1,n-i-2*j-1,n-j] , [i+j+1,i+2*j+1,n-j], [i+j+1,i+2*j+1,i+3*j+1], [j+1,i+2*j+1,i+3*j+1]],2*i+4*j+3,infinity,2): b:=Sum_of_one_chain(n,[[n-i-3*j,n-i-2*j,n-j], [n-i-3*j,n-i-2*j,n-i-j] , [j,n-i-2*j,n-i-j], [j,i+2*j,n-i-j], [j,i+2*j,i+3*j]], 2*i+4*j,infinity,2): normal(a+b); end: ################################################################### ################################################################### sumall_2n:=proc() local a: a:=Sum_of_one_chain(n,[ [n-i,n-i], [i,n-i], [i,i]],2*i,infinity,1); end: ################################################################### ################################################################### sumall_1n:=proc() local a: a:=Sum_of_one_chain(n,[[n], [0]],0,infinity,0); end: ################################################################### ################################################################### sumall_west :=proc() local a,b; a:=Sum_of_one_chain(n,[[n-3*i-j-2,n-2*i-j-1,n-i,n], [j+1,n-2*i-j-1,n-i,n] , [j+1,i+j+1,n-i,n], [j+1,i+j+1,2*i+j+1,n], [0,i+j+1,2*i+j+1,n], [0,i+j+1,2*i+j+1,3*i+j+1], [0,i+1,2*i+j+1,3*i+j+1]],3*i+2*j+3,infinity,2): b:=Sum_of_one_chain(n,[[n-3*i-j,n-2*i-j,n-i,n], [n-3*i-j,n-2*i-j,n-i-j,n] , [0,n-2*i-j,n-i-j,n], [0,n-2*i-j,n-i-j,n-j], [0,i,n-i-j,n-j], [0,i,2*i+j,n-j], [0,i,2*i+j,3*i+j]],3*i+2*j,infinity,2): normal((a+b)/(1-x[0]*x[4])); end: ################################################################### ################################################################### ############################################################ Sum_of_one_Segment_lind:=proc(n,arr1,arr2,init_n,init_i) local s,y,size,a,b,r_upper,z,c,expre; size:=nops(arr1); a:=[n-arr1[size],seq((arr1[size-t]-arr1[size-t-1]),t=0..size-2),arr1[1]]; b:=[n-arr2[size],seq((arr2[size-t]-arr2[size-t-1]),t=0..size-2),arr2[1]]; for s from 1 to size+1 do if (a[s]-b[s]<>0)then r_upper:=a[s]-b[s]; fi;od; for s from 1 to size+1 do if (a[s]-b[s]<>0)then z[s]:=normal(r*(a[s]-b[s])/(r_upper)); else z[s]:=0; fi; od; for s from 1 to size+1 do c[s]:=b[s]+z[s]; ;od; expre:=subs(n=2*k+init_n,expression(c,size+1)); r_upper:=subs(n=2*k+init_n,r_upper); if(init_i<>infinity) then normal(sum(sum(sum(expre,r=0..infinity),k=i+1-init_n..infinity),i=init_i..infinity)-sum(sum(sum(expre,r=r_upper..infinity),k=i+1-init_n..infinity),i=init_i..infinity)); else normal(sum(sum(expre,r=0..infinity),k=0..infinity)-sum(sum(expre,r=r_upper..infinity),k=0..infinity)); fi; end: ########################################################### Sum_of_one_chain_lind:=proc(n,arr,init_n,init_i) local s,t,y,z,result; result:=0; t:=arr[1];t[1]:=t[1]+1; result:=result+Sum_of_one_Segment_lind(n,t,arr[1],init_n,init_i); for s from 1 to nops(arr)-1 do result:=result+Sum_of_one_Segment_lind(n,arr[s],arr[s+1],init_n,init_i); od; normal(result); end: ############################################################## sumall_lind:=proc() local oc124,oc35,ec1245,ec36,ed124,ed35,ec; oc124:=Sum_of_one_chain_lind(n,[[n-2*i,n,n],[1,2*i+1,n],[0,2*i,n],[0,i+1,n-i+1],[0,i,n-i],[0,i,i]],1,0); oc35:=Sum_of_one_chain_lind(n,[[n-2*i-1,n,n],[0,2*i+1,n],[0,2*i,n-1],[0,i+1,n-i]],1,0); ec1245:=Sum_of_one_chain_lind(n,[[n-2*i-1,n,n],[1,2*i+2,n],[1,2*i+1,n-1],[0,2*i,n-1],[0,i,n-i-1],[0,i,n-i-2],[0,i,i]],0,0); ec36:=Sum_of_one_chain_lind(n,[[n-2*i,n,n],[1,2*i+1,n],[0,2*i+1,n-1],[0,i+1,n-i-1]],0,0); ed124:=Sum_of_one_chain_lind(n,[[n-2*i,n-1,n-1],[1,2*i,n-1],[1,2*i-1,n-2],[1,i,n-i-1],[1,i,n-i-2],[1,i,i]],0,1); ed35:=Sum_of_one_chain_lind(n,[[n-2*i+1,n-1,n-1],[2,2*i,n-1],[1,2*i,n-2],[1,i+1,n-i-1]],0,1); ec:=Sum_of_one_chain_lind(n,[[0,n,n],[0,0,n]],0,infinity); normal((oc124+oc35)/(1-x[0]*x[3])+(ec+ec1245+ec36+ed124+ed35)/(1-x[0]^2*x[3]^2)); end: ###############################################################