Package: database-cubic-hecke
Database Cubic Hecke AlgebrasThis repository contains data for the representations of theCubic Hecke Algebracalculated byIvan Marin.
The original data of Ivan Marin are published in a format which
can be read byMaple.
The purpose of this repository is, to make them available in
a Python like style such that they can be easily installed intoSageMathusingpip.This repository was created as a part of theSageMathfunctionality for the cubic Hecke algebras (see Trac ticket#29717)In addition to Ivan Marin's data it contains coefficients for linear forms
on the cubic Hecke algebras on up to four strands satisfying the Markov
trace condition (see for exampleLouis Kauffman: Knots and Physics, sections 7.1 and 7.2).
This data has been precomputed with the SageMath functionality
introduced by the above mentioned ticket
(seePython module create_markov_trace_data.py).UsageIn Python, it can be used as follows:>>>fromdatabase_cubic_heckeimportread_basis>>>b4=read_basis()>>>len(b4)648>>>b2=read_basis(num_strands=2);b2[[],[1],[-1]]>>>b3=read_basis(num_strands=3)>>>len(b3)24>>>fromdatabase_cubic_heckeimportread_irr>>>dim_list,repr_list,repr_list_inv=read_irr()>>>dim_list[1,1,1,2,2,2,3,3,3,3,3,3,3,6,6,6,6,6,6,8,8,8,9,9]>>>repr_list[5][1]{(0,0):c,(0,1):-1,(1,1):a}>>>frommathimportsqrt>>>j=(sqrt(3)*1j-1)/2>>>dim_list,repr_list,repr_list_inv=read_irr((5,7,3,j))>>>repr_list[23][0][(3,8)](1.5+6.06217782649107j)>>>fromdatabase_cubic_heckeimportread_reg>>>dim_list,repr_list,repr_list_inv=read_reg()>>>dim_list[648]>>>[len(m)forminrepr_list[0]][1080,1701,7862]>>>[len(m)forminrepr_list_inv[0]][1080,1728,9370]>>>dim_list,repr_list,repr_list_inv=read_reg(num_strands=3)>>>dim_list[24]>>>[len(m)forminrepr_list[0]][40,63]>>>fromdatabase_cubic_hecke.markov_trace_coeffsimportread_markov>>>read_markov('U2',(3,5,7,11),num_strands=3)[0,11,0.09090909090909091,11,0.09090909090909091,0,0,0,0,-55,11,11,-4.714285714285714,-0.45454545454545453,0.09090909090909091,0,0,0,0,0.09090909090909091,-0.03896103896103896,-0.45454545454545453,0,0]If you haveSymPyinstalled you can obtain
representation matrices directly:>>>fromdatabase_cubic_heckeimportirr_reprs_matrices>>>m1,m2,m3=irr_reprs_matrices(5)>>>m1i,m2i,m3i=irr_reprs_matrices(5,inverse=True)>>>m1*m1iMatrix([[1,0],[0,1]])>>>m1*m2*m1==m2*m1*m2True>>>m1i*m2i*m1i==m2i*m1i*m2iTrue>>>fromdatabase_cubic_heckeimportreg_reprs_matrices>>>m1,m2,m3=reg_reprs_matrices()>>>m1.shape(648,648)>>>m1i,m2i=reg_reprs_matrices(inverse=True,num_strands=3)>>>m1i.shape(24,24)>>>m1i*m2i*m1i==m2i*m1i*m2iTrue>>>fromdatabase_cubic_hecke.markov_trace_coeffsimportread_markov>>>fromsympyimportvar>>>u,v,w,s=var('u, v, w, s')>>>variables=(u,v,w,s)>>>read_markov('U2',variables,num_strands=3)[0,s,1/s,s,1/s,0,0,0,0,-s*v,s,s,-s*u/w,-v/s,1/s,0,0,0,0,1/s,-u/(s*w),-v/s,0,0]The usage in Sage will be implicitely via the new classCubicHeckeAlgebraaccording to
the Trac ticket#29717. But anyway, it can also
be used indenpendently, for example:sage:fromdatabase_cubic_heckeimportread_irrsage:F=CyclotomicField(3)sage:L.<a,b,c>=LaurentPolynomialRing(F)sage:T=L.gens_dict_recursive()sage:T['j']=T['zeta3']sage:T.pop('zeta3')sage:irr=read_irr(tuple(T.values()))sage:dim_list,repr_list,repr_list_inv=irrsage:m1d,m2d,m3d=repr_list[23]sage:d=dim_list[23]sage:m1=matrix(d,d,m1d)sage:m2=matrix(d,d,m2d)sage:m3=matrix(d,d,m3d)sage:m1[c00000000][b^2+a*cb0000(-zeta3)*b*c00][b1a000c00][000a00-c(-zeta3-1)*ca+zeta3*b][zeta3*a-b000b0000][zeta3*a000ba000][000000c00][0000000c0][0000000zeta3*cb]sage:m1*m2*m1==m2*m1*m2Truesage:m3*m2*m3==m2*m3*m2Truesage:m3*m1==m1*m3Truesage:fromdatabase_cubic_heckeimportread_regsage:R.<u,v,w>=ZZ[]sage:B=R.localization(w)sage:T=B.gens_dict_recursive()sage:reg=read_reg(tuple(T.values()))sage:dim_list,repr_list,repr_list_inv=regsage:m1d,m2d,m3d=repr_list[0]sage:d=dim_list[0]sage:m1=matrix(d,d,m1d)sage:m2=matrix(d,d,m2d)sage:m3=matrix(d,d,m3d)sage:m1648x648sparsematrixoverMultivariatePolynomialRinginu,v,woverIntegerRinglocalizedat(w,)(usethe'.str()'methodtoseetheentries)sage:m1*m2*m1==m2*m1*m2Truesage:m3*m2*m3==m2*m3*m2Truesage:m3*m1==m1*m3TrueTo build a new release, the files containing the data in Python syntax can be
upgraded with thecreate_marin_data script. There is aworkflowto run this script and build a new release if differences are detected. It can
be triggered manually.InstallationPythonpipinstalldatabase_cubic_heckeorpipinstalldatabase_cubic_hecke==2022.3.5if you want to install a former version.SageMathAfter release of the above mentioned Trac ticket, the database can be installed in Sage by:sage-idatabase_cubic_heckeThis will contain integration with the cubic Hecke algebra functionality of Sage.
Before, or to use it independent on the new Sage functionality the installation
works as follows:sage-pipinstalldatabase_cubic_heckeorsage-pipinstalldatabase_cubic_hecke==2022.3.5for a special version.VersioningVersion numbers are automatically generated on a manually triggered workflowCheck version changedif differences to the original databases are detected.
They follow the scheme<year>.<month>.<day>with respect to the date the workflow is triggered.HelpIf you note a divergence between this repository and the original data in case
the current release is older than a month please create an issue about that.CreditsMany thanks to Ivan Marin to make his data available for their use in Sage.