v2.27 version numsymconf: N=6-chain-JJ - rekursiv creation of states - start state is dddddd=111111 (all spins down, most significant bit first) - flip one spin and test if its minimum symmetric cfg 3+3: oxxxxx=1 1:ooxxxx=2 2:oooxxx=5 ooxoxx=6 ooxxox- ooxxxo- xoxxxx- oxoxxx=3 3:oxooxx- oxoxox=7 oxoxxo- xxoxxx- oxxoxx=4 4:oxxoox- oxxoxo- xxxoxx- oxxxox- xxxxox* oxxxxo* xxxxxo* 3+3: 6-2tests 5-1tests 9tests = 17scalls (3of6)=20 2+4: 6-1tests 5tests = 10scalls (2of6)=15 1+5: 6tests = 6scalls (1of6)=6 4+2: 6-3tests 5-2tests 9-3tests 6tests = 18scalls (4of6)=15 5+1: 6-4tests 5-3tests 7-4tests 5-2tests ... 6+0: 6-5tests 5-4tests ... = 6scalls -5no_choice??? 1=min.symconfig for 1u+5d, used to put next up spin -: not symconfig, through away *: not usable to put further up-spins, also not symcfg 2-4=min.sym configs for 2u+4d, used to generate 3u+3d-cfgs 5-7=min sym cfgs for 3u+3d 2+4 q01: n1=3 scalls=10, q00: n1=1 sc=10 4+2 q01: n1=3 scalls=10, q00: n1=1 sc=10 # N=6 is to simple # N=8-chain-tJ (n1=result=hilbert_dim, scalls=CPUcost) 2+6 n1=2 scalls=18 n1=12-sign 6+2 n1=2 scalls=39 theor. 4,38 1+7 n1=3 scalls=37-29 (incl. dive into ddd.ddd = bad) 7+1 n1=3 scalls=89-88 # N=40-chain-tJ 1+38 n1=19 157 -> 156 38+1 n1=19 4938 -> 933 2+37 n1=361 scalls=1332 37+2 n1=361 scalls=39328 tJ8=1+6: first put all holes, then all ups to remaining downs one hole * 2nd holes (in 8 downs) * by one up (in rest downs) .xxxxxxx=1:..xxxxxx=2: ..oxxxxx=6 ..xoxxxx=7 ..xxoxxx=8 ..xxxoxx- etc. x.xxxxxx- .x.xxxxx=3: .o.xxxxx=9 .x.oxxxx=A .x.xoxxx=B .x.xxoxx=C .x.xxxox- xx.xxxxx- .xx.xxxx=4: .ox.xxxx=D .xo.xxxx- .xx.oxxx=E .xx.xoxx=F .xx.xxox- xxx.xxxx- .xxx.xxx=5: .oxx.xxx=G .xox.xxx=H .xxo.xxx- .xxx.oxx- .xxx.xox- xxxx.xxx- .xxxx.xx- xxxxx.xx- .xxxxx.x- but sorted: 6,7,8,9,D,G,A,H,B,C,E,F (D<A) xxxxxx.x- .xxxxxx.- xxxxxxx.* 7tests +7tests +4*6tests = 38tests, 2nd_up: +12*5-1tests => 12 scfgs, 38 tests tJ8=0+2 (6holes): .xxxxxxx=1:..xxxxxx=2 2:...xxxxx=5 5:....xxxx=9 9:.....xxx=F F:......xx=K x.xxxxxx- .x.xxxxx=3 ..x.xxxx=6 ...x.xxx=A ....x.xx=G .....x.x=L xx.xxxxx- .xx.xxxx=4 ..xx.xxx=7 ...xx.xx=B ....xx.x- .....xx.- xxx.xxxx* .xxx.xxx* ..xxx.xx* ...xxx.x* ....xxx.- G:....x..x=M etc etc etc etc A:...x..xx=H ....x.x.- 3:.x..xxxx- 6:..x..xxx=C ...x.x.x=I H:...x...x=N .x.x.xxx=8 ..x.x.xx=D ...x.xx.* ...x..x.- .x.xx.xx* ..x.xx.x* B:...xx..x- I:...x.x..- etc etc ...xx.x.* 4:.xx..xxx- 7:..xx..xx=E C:..x...xx- .xx.x.xx* ..xx.x.x* ..x..x.x=J J:..x..x..- etc etc ..x..xx.* D:..x.x..x- 8:.x.x..xx- ..x.x.x.* .x.x.x.x* E:..xx...x- etc ..xx..x.* 8cfgs +7cfgs +6+5+4cfgs +5+4+3+3cfgs 4+3+2+3+2+2 => 4cfgs K-N 3tests +3tests +6tests +7tests +11tests +9-2tests =38scalls better set 2ds to holes! by inversion .<->d, maxcfg, +bitinversion # transformation: (nu,nd,u,d,i) -> (nd,nu,d,u,n-i-1) o=up x=down oooxxxx vs. ooooxxx vs. xxxoooo ooxoxxx oooxoxx xxoxooo ooxxoxx ooxooxx xxooxoo oxooxxx oooxxox unsorted! xoxxooo (better maxsymcfg.) oxoxoxx ooxoxox xoxoxoo # transformation: (nu,nd,.,u,d,i) -> (nu,N-nu-nd,d,u,.,n-i-1) ..oxxx vs. ...oxx ..xoxx ..o.xx .o.xxx ...xox unsorted .x.oxx ..ox.x .x.xox .o.x.x tJ: put . and u (first method) .xxxxxxx=1 1: ..xxxxxx=3 oxxxxxxx=2 .oxxxxxx=4 x.xxxxxx- .x.xxxxx=5 xoxxxxxx- .xoxxxxx=6 etc. xx.xxxxx- 2: scfg, but all substates are - etc. 2*8tests 2nd method: put all . first, than put all u to rest d (nh-of-nn)*(nu-of-(nn-hh)) ??? ..xxxxxx=A: ..oxxxxx=1 ..xoxxxx=2 ..xxoxxx=3 ..xxxoxx- ..xxxxox- ..xxxxxo- .x.xxxxx=B: .o.xxxxx=4 .x.oxxxx=5 .x.xoxxx=6 .x.xxoxx=7 .x.xxxox- .x.xxxxo- .xx.xxxx=C: .ox.xxxx=8 but less than cfg5! etc. ToDo: other coding!? .xxx.xxx=D: etc. .xxxx.xx- .xxxxx.x- .xxxxxx.- # Speed dominated by number of ifsmallest-calls (old=n1/600000[min]) # time [min] P4-1.3GHz # (40!/8!/32!)=76904685=480654*160+45=482184+482139+480948+... #JJ40sq #nu+nd t.old-v2.26 t.new-v2.27 n1 #ifsmallest-calls 8+32 old= 0.88 new= 0.05 n1= 482184 scalls= 1139661 10+30 old= 8.80 new= 0.60 n1= 5302829 scalls= 12369688 12+28 old= 58.35 new= 4.67 n1= 34930456 scalls= 82401417 14+26 old= 244.48 new= 24.35 n1= 145068828 16+24 old= 669.62 new= 86.05 n1= 392867556 18+22 old= 1190 new= 218.37 n1= 708682778 20+20 old= 1278.68 new= 450.80 n1= 430909650 22+18 old= 1190 new= 550.05 n1= 398340048 JJ ??? 28+12 old= 66.03 new= 19.98 n1= 34930456 scalls=250458421 30+10 old= 11.17 new= 4.17 n1= 5302829 scalls= 50885321 32+8 old= 1.05 new= 0.55 n1= 482184 scalls= 6509371 #tJ40sq 5+33 old= 41 new= 0.87 n1= 2446389 scalls= 4922574 4+34 old= 5 new= 0.12 n1= 359793 scalls= 753046 34+4 old= 5 new= 0.42 n1= 359793 scalls= 2684232 5+34 old= 2.13 new= 0.05 n1= 144063 scalls= 311580 34+5 old= 2.13 new= 0.10 n1= 144063 scalls= 588798 #tU40sq 37+38 old= 0.77 new= 0.02 n1= 48216 scalls= 109806 3+38 old= 0.75 new= 0.05 n1= 48216 scalls= 370574 3+2 old= 0.78 new= 0.28 n1= 48216 scalls= 1371829 ToDo! 1373256 37+2 old= 0.78 new= 0.07 n1= 48216 scalls= 423675 37+37 old= 26.72 new= 0.60 n1= 303840 scalls= 1333350 36+37 old= 200 new= 3.40 n1= 5643142 scalls= 11783358 #tU16sq 10+10 old= 7.90 new= 0.30 n1= 84708 scalls= 1348616? 8+ 8 old= 28 new= 0.68 n1= 218082 scalls= 2806661? 6+ 6 old= 7.72 new= 0.47 n1= 84708 scalls= 1703094?