#13391: WeylCharacterRing improvement
------------------------------------------+---------------------------------
       Reporter:  bump                    |         Owner:  bump           
           Type:  enhancement             |        Status:  positive_review
       Priority:  major                   |     Milestone:  sage-5.3       
      Component:  combinatorics           |    Resolution:                 
       Keywords:  WeylCharacterRing, Lie  |   Work issues:                 
Report Upstream:  N/A                     |     Reviewers:  Anne Schilling 
        Authors:  Daniel Bump             |     Merged in:                 
   Dependencies:                          |      Stopgaps:                 
------------------------------------------+---------------------------------

Comment (by aschilling):

 I can confirm that this is a huge speedup:
 {{{
 sage: B4=WeylCharacterRing("B4",style="coroots"); spin=B4(0,0,0,1)
 sage: time spin^(16)
 1844536720*B4(0,0,0,0) + 8300415240*B4(1,0,0,0) + 19920996576*B4(0,1,0,0)
 + 33201660960*B4(0,0,1,0) + 42140569680*B4(0,0,0,2) +
 16709332640*B4(2,0,0,0) + 52634397816*B4(1,1,0,0) +
 96675424560*B4(1,0,1,0) + 127247994720*B4(1,0,0,2) +
 56393997660*B4(0,2,0,0) + 134271423000*B4(0,1,1,0) +
 190871992080*B4(0,1,0,2) + 96675424560*B4(0,0,2,0) +
 171784792872*B4(0,0,1,2) + 81802282320*B4(0,0,0,4) +
 19747393120*B4(3,0,0,0) + 69115875920*B4(2,1,0,0) +
 133294903560*B4(2,0,1,0) + 179028564000*B4(2,0,0,2) +
 97749595944*B4(1,2,0,0) + 244373989860*B4(1,1,1,0) +
 354476556720*B4(1,1,0,2) + 195499191888*B4(1,0,2,0) +
 354476556720*B4(1,0,1,2) + 177238278360*B4(1,0,0,4) +
 62610852304*B4(0,3,0,0) + 172499286960*B4(0,2,1,0) +
 259486106880*B4(0,2,0,2) + 181124251308*B4(0,1,2,0) +
 340575515280*B4(0,1,1,2) + 187664059440*B4(0,1,0,4) +
 79062173190*B4(0,0,3,0) + 160557028632*B4(0,0,2,2) +
 114683591880*B4(0,0,1,4) + 34405077564*B4(0,0,0,6) +
 14990430000*B4(4,0,0,0) + 55404629280*B4(3,1,0,0) +
 109929820000*B4(3,0,1,0) + 149492475000*B4(3,0,0,2) +
 87424187760*B4(2,2,0,0) + 224856450000*B4(2,1,1,0) +
 330242467500*B4(2,1,0,2) + 189958728960*B4(2,0,2,0) +
 348736045680*B4(2,0,1,2) + 179390970000*B4(2,0,0,4) +
 74144430360*B4(1,3,0,0) + 210159950000*B4(1,2,1,0) +
 320089770000*B4(1,2,0,2) + 233025352560*B4(1,1,2,0) +
 443644421220*B4(1,1,1,2) + 251499105000*B4(1,1,0,4) +
 113486373000*B4(1,0,3,0) + 233345442330*B4(1,0,2,2) +
 171476662500*B4(1,0,1,4) + 54323806680*B4(1,0,0,6) +
 31455212880*B4(0,4,0,0) + 93616705000*B4(0,3,1,0) +
 145495350000*B4(0,3,0,2) + 115335780560*B4(0,2,2,0) +
 224062839000*B4(0,2,1,2) + 133370737500*B4(0,2,0,4) +
 74144430360*B4(0,1,3,0) + 155563628220*B4(0,1,2,2) +
 120033663750*B4(0,1,1,4) + 42251849640*B4(0,1,0,6) +
 22049487460*B4(0,0,4,0) + 47975807880*B4(0,0,3,2) +
 40795755000*B4(0,0,2,4) + 18847638810*B4(0,0,1,6) + 4038779745*B4(0,0,0,8)
 + 7475227760*B4(5,0,0,0) + 28541778720*B4(4,1,0,0) +
 57666042720*B4(4,0,1,0) + 79064909000*B4(4,0,0,2) +
 47705544432*B4(3,2,0,0) + 124943092560*B4(3,1,1,0) +
 185011887060*B4(3,1,0,2) + 109041244416*B4(3,0,2,0) +
 201831149520*B4(3,0,1,2) + 105721078320*B4(3,0,0,4) +
 45247113912*B4(2,3,0,0) + 130596626160*B4(2,2,1,0) +
 200545816240*B4(2,2,0,2) + 149592499056*B4(2,1,2,0) +
 287145145980*B4(2,1,1,2) + 165757256280*B4(2,1,0,4) +
 77170733640*B4(2,0,3,0) + 159980867046*B4(2,0,2,2) +
 119713573980*B4(2,0,1,4) + 39178987848*B4(2,0,0,6) +
 25463743760*B4(1,4,0,0) + 77170733640*B4(1,3,1,0) +
 120922802000*B4(1,3,0,2) + 98217297360*B4(1,2,2,0) +
 192377185000*B4(1,2,1,2) + 116604130500*B4(1,2,0,4) +
 66881302488*B4(1,1,3,0) + 141479678340*B4(1,1,2,2) +
 111162604410*B4(1,1,1,4) + 40422765240*B4(1,1,0,6) +
 22243329108*B4(1,0,4,0) + 48795907160*B4(1,0,3,2) +
 42251849640*B4(1,0,2,4) + 20165655510*B4(1,0,1,6) + 4577283711*B4(1,0,0,8)
 + 7422629760*B4(0,5,0,0) + 23143120000*B4(0,4,1,0) +
 36717450000*B4(0,4,0,2) + 31104353280*B4(0,3,2,0) +
 61685316000*B4(0,3,1,2) + 38465900000*B4(0,3,0,4) +
 23631229440*B4(0,2,3,0) + 50614003440*B4(0,2,2,2) +
 40913730000*B4(0,2,1,4) + 15710872320*B4(0,2,0,6) +
 10406235840*B4(0,1,4,0) + 23113850760*B4(0,1,3,2) +
 20590570000*B4(0,1,2,4) + 10377647280*B4(0,1,1,6) + 2628105480*B4(0,1,0,8)
 + 2207383360*B4(0,0,5,0) + 5002998000*B4(0,0,4,2) + 4679675000*B4(0,0,3,4)
 + 2620618000*B4(0,0,2,6) + 876035160*B4(0,0,1,8) + 140280140*B4(0,0,0,10)
 + 2387047520*B4(6,0,0,0) + 9309485328*B4(5,1,0,0) +
 19042129080*B4(5,0,1,0) + 26257522720*B4(5,0,0,2) +
 16112570760*B4(4,2,0,0) + 42722725500*B4(4,1,1,0) +
 63623997360*B4(4,1,0,2) + 38084258160*B4(4,0,2,0) +
 70895311344*B4(4,0,1,2) + 37595998440*B4(4,0,0,4) +
 16217881680*B4(3,3,0,0) + 47389914000*B4(3,2,1,0) +
 73188389120*B4(3,2,0,2) + 55446199380*B4(3,1,2,0) +
 107038019088*B4(3,1,1,2) + 62554686480*B4(3,1,0,4) +
 29618696250*B4(3,0,3,0) + 61752703320*B4(3,0,2,2) + 4678235100*B4(1,0,5,0)
 + 3414290880*B4(1,0,4,2) + 3233230000*B4(1,0,3,4) + 1849407560*B4(1,0,2,6)
 + 640179540*B4(1,0,1,8) + 108788680*B4(1,0,0,10) + 791494704*B4(0,6,0,0) +
 2544090120*B4(0,5,1,0) + 4092771760*B4(0,5,0,2) + 3607982352*B4(0,4,2,0) +
 7255368120*B4(0,4,1,2) + 4664165220*B4(0,4,0,4) + 3006651960*B4(0,3,3,0) +
 6529831308*B4(0,3,2,2) + 5441526090*B4(0,3,1,4) + 2204878104*B4(0,3,0,6) +
 1571349780*B4(0,2,4,0) + 3539043816*B4(0,2,3,2) + 3250142280*B4(0,2,2,4) +
 1728484758*B4(0,2,1,6) + 480134655*B4(0,2,0,8) + 495213264*B4(0,1,5,0) +
 1138096960*B4(0,1,4,2) + 1097450640*B4(0,1,3,4) + 648493560*B4(0,1,2,6) +
 237780972*B4(0,1,1,8) + 45189144*B4(0,1,0,10) + 75741120*B4(0,0,6,0) +
 176243760*B4(0,0,5,2) + 174845000*B4(0,0,4,4) + 109103280*B4(0,0,3,6) +
 44633160*B4(0,0,2,8) + 11231220*B4(0,0,1,10) + 1361360*B4(0,0,0,12) +
 445429920*B4(7,0,0,0) + 1762874568*B4(6,1,0,0) + 3637677680*B4(6,0,1,0) +
 5036784480*B4(6,0,0,2) + 3122292420*B4(5,2,0,0) + 8351811000*B4(5,1,1,0) +
 12489169680*B4(5,1,0,2) + 7555176720*B4(5,0,2,0) + 14122368792*B4(5,0,1,2)
 + 7555176720*B4(5,0,0,4) + 3259095840*B4(4,3,0,0) + 9607312000*B4(4,2,1,0)
 + 14898723840*B4(4,2,0,2) + 11406835440*B4(4,1,2,0) +
 22111711776*B4(4,1,1,2) + 13036383360*B4(4,1,0,4) + 6235515000*B4(4,0,3,0)
 + 13054290480*B4(4,0,2,2) + 9976824000*B4(4,0,1,4) +
 3384445680*B4(4,0,0,6) + 2182606608*B4(3,4,0,0) + 6755687120*B4(3,3,1,0) +
 10690318080*B4(3,3,0,2) + 8912310316*B4(3,2,2,0) + 17628745680*B4(3,2,1,2)
 + 10913033040*B4(3,2,0,4) + 6430894470*B4(3,1,3,0) +
 13738086648*B4(3,1,2,2) + 11024390520*B4(3,1,1,4) + 4155347196*B4(3,1,0,6)
 + 2353791440*B4(3,0,4,0) + 5214553344*B4(3,0,3,2) + 4611509760*B4(3,0,2,4)
 + 2281367088*B4(3,0,1,6) + 548725320*B4(3,0,0,8) + 947320920*B4(2,5,0,0) +
 3016650000*B4(2,4,1,0) + 4833270000*B4(2,4,0,2) + 4202518320*B4(2,3,2,0) +
 8416582020*B4(2,3,1,2) + 5360355000*B4(2,3,0,4) + 3383289000*B4(2,2,3,0) +
 7317942570*B4(2,2,2,2) + 6041587500*B4(2,2,1,4) + 2404737720*B4(2,2,0,6) +
 1639638000*B4(2,1,4,0) + 3677834160*B4(2,1,3,2) + 3346200000*B4(2,1,2,4) +
 1748106360*B4(2,1,1,6) + 469111500*B4(2,1,0,8) + 413884380*B4(2,0,5,0) +
 947320920*B4(2,0,4,2) + 904995000*B4(2,0,3,4) + 525314790*B4(2,0,2,6) +
 186080895*B4(2,0,1,8) + 32792760*B4(2,0,0,10) + 251839224*B4(1,6,0,0) +
 816621520*B4(1,5,1,0) + 1319157840*B4(1,5,0,2) + 1175249712*B4(1,4,2,0) +
 2373100380*B4(1,4,1,2) + 1539017480*B4(1,4,0,4) + 1002217320*B4(1,3,3,0) +
 2185604694*B4(1,3,2,2) + 1837398420*B4(1,3,1,4) + 755517672*B4(1,3,0,6) +
 543182640*B4(1,2,4,0) + 1228428432*B4(1,2,3,2) + 1138096960*B4(1,2,2,4) +
 614214216*B4(1,2,1,6) + 174594420*B4(1,2,0,8) + 181883884*B4(1,1,5,0) +
 419732040*B4(1,1,4,2) + 408310760*B4(1,1,3,4) + 244843690*B4(1,1,2,6) +
 91869921*B4(1,1,1,8) + 18106088*B4(1,1,0,10) + 31187520*B4(1,0,6,0) +
 72870840*B4(1,0,5,2) + 72930000*B4(1,0,4,4) + 46181520*B4(1,0,3,6) +
 19333080*B4(1,0,2,8) + 5045040*B4(1,0,1,10) + 649740*B4(1,0,0,12) +
 33256080*B4(0,7,0,0) + 109174000*B4(0,6,1,0) + 177365760*B4(0,6,0,2) +
 160485780*B4(0,5,2,0) + 325909584*B4(0,5,1,2) + 213981040*B4(0,5,0,4) +
 141716250*B4(0,4,3,0) + 310816440*B4(0,4,2,2) + 264537000*B4(0,4,1,4) +
 111105540*B4(0,4,0,6) + 81510000*B4(0,3,4,0) + 185391360*B4(0,3,3,2) +
 173888000*B4(0,3,2,4) + 95855760*B4(0,3,1,6) + 28215000*B4(0,3,0,8) +
 30568720*B4(0,2,5,0) + 70946304*B4(0,2,4,2) + 69871360*B4(0,2,3,4) +
 42796208*B4(0,2,2,6) + 16628040*B4(0,2,1,8) + 3477760*B4(0,2,0,10) +
 6961500*B4(0,1,6,0) + 16358760*B4(0,1,5,2) + 16575000*B4(0,1,4,4) +
 10720710*B4(0,1,3,6) + 4647375*B4(0,1,2,8) + 1287000*B4(0,1,1,10) +
 185640*B4(0,1,0,12) + 755820*B4(0,0,7,0) + 1790712*B4(0,0,6,2) +
 1847560*B4(0,0,5,4) + 1234506*B4(0,0,4,6) + 566865*B4(0,0,3,8) +
 175560*B4(0,0,2,10) + 33592*B4(0,0,1,12) + 3060*B4(0,0,0,14) +
 37119160*B4(8,0,0,0) + 148476640*B4(7,1,0,0) + 308374560*B4(7,0,1,0) +
 428298000*B4(7,0,0,2) + 267257952*B4(6,2,0,0) + 719540640*B4(6,1,1,0) +
 1079310960*B4(6,1,0,2) + 657865728*B4(6,0,2,0) + 1233498240*B4(6,0,1,2) +
 664191360*B4(6,0,0,4) + 285817532*B4(5,3,0,0) + 848030040*B4(5,2,1,0) +
 1319157840*B4(5,2,0,2) + 1017636048*B4(5,1,2,0) + 1978736760*B4(5,1,1,2) +
 1174195440*B4(5,1,0,4) + 565353360*B4(5,0,3,0) + 1187242056*B4(5,0,2,2) +
 913263120*B4(5,0,1,4) + 313118784*B4(5,0,0,6) + 198696680*B4(4,4,0,0) +
 619016580*B4(4,3,1,0) + 982566000*B4(4,3,0,2) + 825355440*B4(4,2,2,0) +
 1637610000*B4(4,2,1,2) + 1020357000*B4(4,2,0,4) + 605260656*B4(4,1,3,0) +
 1296987120*B4(4,1,2,2) + 1047566520*B4(4,1,1,4) + 399072960*B4(4,1,0,6) +
 226972746*B4(4,0,4,0) + 504383880*B4(4,0,3,2) + 448957080*B4(4,0,2,4) +
 224478540*B4(4,0,1,6) + 54872532*B4(4,0,0,8) + 91706160*B4(3,5,0,0) +
 293930000*B4(3,4,1,0) + 472387500*B4(3,4,0,2) + 413853440*B4(3,3,2,0) +
 831402000*B4(3,3,1,2) + 532950000*B4(3,3,0,4) + 338607360*B4(3,2,3,0) +
 734657040*B4(3,2,2,2) + 610470000*B4(3,2,1,4) + 245583360*B4(3,2,0,6) +
 168127960*B4(3,1,4,0) + 378287910*B4(3,1,3,2) + 346417500*B4(3,1,2,4) +
 182908440*B4(3,1,1,6) + 49884120*B4(3,1,0,8) + 44054920*B4(3,0,5,0) +
 101146500*B4(3,0,4,2) + 97256250*B4(3,0,3,4) + 57057000*B4(3,0,2,6) +
 20540520*B4(3,0,1,8) + 3708705*B4(3,0,0,10) + 27350960*B4(2,6,0,0) +
 89266320*B4(2,5,1,0) + 144644500*B4(2,5,0,2) + 129841920*B4(2,4,2,0) +
 262990000*B4(2,4,1,2) + 171666000*B4(2,4,0,4) + 112529664*B4(2,3,3,0) +
 246158640*B4(2,3,2,2) + 208288080*B4(2,3,1,4) + 86561280*B4(2,3,0,6) +
 62486424*B4(2,2,4,0) + 141751610*B4(2,2,3,2) + 132182820*B4(2,2,2,4) +
 72099720*B4(2,2,1,6) + 20828808*B4(2,2,0,8) + 21719880*B4(2,1,5,0) +
 50277500*B4(2,1,4,2) + 49227750*B4(2,1,3,4) + 29835000*B4(2,1,2,6) +
 11377080*B4(2,1,1,8) + 2297295*B4(2,1,0,10) + 3960320*B4(2,0,6,0) +
 9282000*B4(2,0,5,2) + 9350000*B4(2,0,4,4) + 5984000*B4(2,0,3,6) +
 2545920*B4(2,0,2,8) + 680680*B4(2,0,1,10) + 91000*B4(2,0,0,12) +
 4803656*B4(1,7,0,0) + 15872220*B4(1,6,1,0) + 25865840*B4(1,6,0,2) +
 23581584*B4(1,5,2,0) + 48036560*B4(1,5,1,2) + 31744440*B4(1,5,0,4) +
 21162960*B4(1,4,3,0) + 46558512*B4(1,4,2,2) + 39884040*B4(1,4,1,4) +
 16930368*B4(1,4,0,6) + 12471030*B4(1,3,4,0) + 28452424*B4(1,3,3,2) +
 26860680*B4(1,3,2,4) + 14965236*B4(1,3,1,6) + 4476780*B4(1,3,0,8) +
 4855032*B4(1,2,5,0) + 11302720*B4(1,2,4,2) + 11203920*B4(1,2,3,4) +
 6935760*B4(1,2,2,6) + 2738736*B4(1,2,1,8) + 586872*B4(1,2,0,10) +
 1175720*B4(1,1,6,0) + 2771340*B4(1,1,5,2) + 2826250*B4(1,1,4,4) +
 1847560*B4(1,1,3,6) + 813960*B4(1,1,2,8) + 230945*B4(1,1,1,10) +
 34580*B4(1,1,0,12) + 143208*B4(1,0,7,0) + 340340*B4(1,0,6,2) +
 353430*B4(1,0,5,4) + 238680*B4(1,0,4,6) + 111384*B4(1,0,3,8) +
 35343*B4(1,0,2,10) + 7020*B4(1,0,1,12) + 680*B4(1,0,0,14) +
 379236*B4(0,8,0,0) + 1264120*B4(0,7,1,0) + 2068560*B4(0,7,0,2) +
 1905904*B4(0,6,2,0) + 3898440*B4(0,6,1,2) + 2598960*B4(0,6,0,4) +
 1750320*B4(0,5,3,0) + 3866616*B4(0,5,2,2) + 3341520*B4(0,5,1,4) +
 1439424*B4(0,5,0,6) + 1069640*B4(0,4,4,0) + 2450448*B4(0,4,3,2) +
 2333760*B4(0,4,2,4) + 1319472*B4(0,4,1,6) + 403920*B4(0,4,0,8) +
 442442*B4(0,3,5,0) + 1034280*B4(0,3,4,2) + 1034280*B4(0,3,3,4) +
 649740*B4(0,3,2,6) + 262548*B4(0,3,1,8) + 58344*B4(0,3,0,10) +
 120120*B4(0,2,6,0) + 284310*B4(0,2,5,2) + 292500*B4(0,2,4,4) +
 194040*B4(0,2,3,6) + 87480*B4(0,2,2,8) + 25740*B4(0,2,1,10) +
 4095*B4(0,2,0,12) + 19448*B4(0,1,7,0) + 46410*B4(0,1,6,2) +
 48620*B4(0,1,5,4) + 33320*B4(0,1,4,6) + 15912*B4(0,1,3,8) +
 5236*B4(0,1,2,10) + 1105*B4(0,1,1,12) + 120*B4(0,1,0,14) +
 1430*B4(0,0,8,0) + 3432*B4(0,0,7,2) + 3640*B4(0,0,6,4) + 2548*B4(0,0,5,6)
 + 1260*B4(0,0,4,8) + 440*B4(0,0,3,10) + 104*B4(0,0,2,12) + 15*B4(0,0,1,14)
 + B4(0,0,0,16)
 Time: CPU 3.77 s, Wall: 3.77 s
 sage: %timeit spin^(16)
 5 loops, best of 3: 3.63 s per loop
 }}}

 I give this revised patch a positive review!

 Anne

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/13391#comment:14>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to