-
Notifications
You must be signed in to change notification settings - Fork 0
/
Hamiltonian.nb
2984 lines (2942 loc) · 117 KB
/
Hamiltonian.nb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
(* Content-type: application/vnd.wolfram.mathematica *)
(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)
(* CreatedBy='Mathematica 10.0' *)
(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[ 158, 7]
NotebookDataLength[ 119624, 2976]
NotebookOptionsPosition[ 117999, 2917]
NotebookOutlinePosition[ 118416, 2934]
CellTagsIndexPosition[ 118373, 2931]
WindowFrame->Normal*)
(* Beginning of Notebook Content *)
Notebook[{
Cell[BoxData[
RowBox[{
RowBox[{"SetOptions", "[",
RowBox[{
RowBox[{"SelectedNotebook", "[", "]"}], ",",
RowBox[{"FontProperties", "\[Rule]",
RowBox[{"{",
RowBox[{"\"\<ScreenResolution\>\"", "\[Rule]", "Automatic"}], "}"}]}]}],
"]"}], ";"}]], "Input",
CellChangeTimes->{{3.6880211146554074`*^9, 3.688021166465846*^9},
3.688253285003331*^9}],
Cell[BoxData[
RowBox[{"(*",
RowBox[{"System`WholeCellGroupOpener", ";", "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"NotebookWrite", "[",
RowBox[{"#", ",",
RowBox[{"Append", "[",
RowBox[{
RowBox[{"NotebookRead", "@", "#"}], ",",
RowBox[{"Unevaluated", "@",
RowBox[{"Sequence", "[",
RowBox[{
RowBox[{"WholeCellGroupOpener", "\[Rule]", "True"}], ",",
RowBox[{"ShowGroupOpener", "\[Rule]", "True"}]}],
RowBox[{"(*",
RowBox[{",",
RowBox[{"ShowCellBracket", "\[Rule]", "False"}]}], "*)"}],
"]"}]}]}], "]"}], ",",
RowBox[{"AutoScroll", "\[Rule]", "False"}]}], "]"}], "&"}], "/@",
RowBox[{
RowBox[{"Cells", "[",
RowBox[{"CellStyle", "\[Rule]", "\"\<Section\>\""}], "]"}],
"\[LeftDoubleBracket]",
RowBox[{"1", ";;", "3"}], "\[RightDoubleBracket]"}]}], ";"}],
"*)"}]], "Input",
CellChangeTimes->{{3.6569857199426565`*^9, 3.656985901536043*^9}, {
3.656985985317835*^9, 3.656986025894156*^9}, {3.656986100102401*^9,
3.6569861035225964`*^9}, {3.6569862057184415`*^9, 3.6569862092126412`*^9}, {
3.657114588282156*^9, 3.657114590922307*^9}}],
Cell[CellGroupData[{
Cell["Declaration", "Section",
ShowGroupOpener->True,
WholeCellGroupOpener->True,
CellChangeTimes->{{3.596256784940527*^9, 3.5962567950771065`*^9}, {
3.5962568419007845`*^9, 3.596256845363983*^9}}],
Cell[BoxData[{
RowBox[{
RowBox[{"DimensionType", "=",
RowBox[{"{", "}"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"DimensionNumber", "=",
RowBox[{"{", "}"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"DimensionRange", "=",
RowBox[{"{", "}"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"DimensionSize", "=",
RowBox[{"{", "}"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"TotalDimension", "=", "0"}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"DimensionVolume", "=",
RowBox[{"{", "}"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"DimensionScale", "=",
RowBox[{"{", "}"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"FullDimension", "=", "0"}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"DimensionPart", "=",
RowBox[{"{", "}"}]}], ";"}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{"ClearAll", "[",
RowBox[{
"System`Each", ",", "System`Spread", ",", "UpdateDimension", ",",
"Columnize", ",", "Decolumnize", ",", "Commutator", ",", "Hermitian", ",",
"QuotientRemainderDigits", ",", "FromReminderDigits", ",", "Addr", ",",
"Spec", ",", "StateVector", ",", "CouplingMatrix", ",", "PartialIndex",
",", "PartialTr", ",", "DimensionPos", ",", "DimensionTr", ",",
"\[IndentingNewLine]", "\[IndentingNewLine]", "EvolutionFunction", ",",
"TimeEvolutionFunction", ",", "ConstantEvolutionFunction", ",",
"HamiltonianCoefficient", ",", "CompiledHamiltonian", ",",
"CompiledEvolutionFunction", ",", "NormalEvolutionFunction", ",",
"Evolution", ",", "\[IndentingNewLine]", "\[IndentingNewLine]",
"InteractionPicture", ",", "RotatingWaveApproximation", ",",
"HamiltonianHarmonic", ",", "HarmonicHamiltonian", ",", "PiecewiseApply",
",", "EffectiveHamiltonian", ",", "\[IndentingNewLine]",
"\[IndentingNewLine]", "StateLegends", ",", "FilterOptions", ",",
"PopulationPlot", ",", "StatePlot", ",", "EvolutionPlot", ",",
"SamplingPlot", ",", "SinglePlot", ",", "MultiPlot"}],
"\[IndentingNewLine]", "]"}]}], "Input",
InitializationCell->True,
CellChangeTimes->{{3.656628372714115*^9, 3.656628375456153*^9}, {
3.6568461770061827`*^9, 3.6568461936148915`*^9}, {3.6568462330786486`*^9,
3.6568462707421083`*^9}, {3.656846301541792*^9, 3.6568463576364613`*^9}, {
3.6568463894209986`*^9, 3.6568464583807697`*^9}, {3.656846491372773*^9,
3.656846492564639*^9}, 3.656846592036478*^9, {3.6568469972130375`*^9,
3.6568470664966335`*^9}, {3.65684712267251*^9, 3.6568471912822614`*^9}, {
3.656847250112281*^9, 3.6568472504623013`*^9}, {3.656847401504366*^9,
3.656847410255043*^9}, {3.6568475032219286`*^9, 3.6568475641812663`*^9}, {
3.6568476793811646`*^9, 3.6568476917804427`*^9}, {3.656847979618991*^9,
3.656848002738654*^9}, {3.6568480346341977`*^9, 3.656848057818864*^9}, {
3.6568481083692293`*^9, 3.656848109058066*^9}, {3.656848342457637*^9,
3.6568483620413084`*^9}, {3.6568610861249065`*^9,
3.6568610908143644`*^9}, {3.6568613163726993`*^9,
3.6568613505883713`*^9}, {3.6568613863693275`*^9,
3.6568613869723616`*^9}, {3.6568614653962474`*^9,
3.6568614720112123`*^9}, {3.6571145745943727`*^9, 3.657114576969509*^9},
3.684654566711914*^9, 3.684654713177321*^9, {3.7221997975147915`*^9,
3.722199801691491*^9}, {3.7230322557519536`*^9, 3.7230322581906796`*^9}, {
3.7230787533505573`*^9, 3.7230787872945805`*^9}, {3.7230813035727406`*^9,
3.723081304037053*^9}, {3.723087129704917*^9, 3.7230871619531193`*^9}, {
3.72308719612642*^9, 3.723087196767599*^9}, {3.7230872337769423`*^9,
3.7230872344278097`*^9}, {3.723088544289948*^9, 3.7230885633277893`*^9}, {
3.723096557888767*^9, 3.7230965684229736`*^9}, {3.7231203235459695`*^9,
3.7231203304752192`*^9}, {3.723154968168457*^9, 3.7231549688190193`*^9}, {
3.755347754592867*^9, 3.7553477597068987`*^9}}]
}, Open ]],
Cell[CellGroupData[{
Cell["Definition", "Section",
ShowGroupOpener->True,
WholeCellGroupOpener->True,
CellChangeTimes->{{3.6046429445346966`*^9, 3.604642957117416*^9}}],
Cell[CellGroupData[{
Cell["Dimension", "Subsubsection",
CellChangeTimes->{{3.6882639350885725`*^9, 3.6882639441861315`*^9}}],
Cell[BoxData[{
RowBox[{
RowBox[{
RowBox[{"System`Each", "[",
RowBox[{"lst_", ",", "expr_"}], "]"}], ":=",
RowBox[{
RowBox[{
RowBox[{"(",
RowBox[{"expr", "@@", "#"}], ")"}], "&"}], "/@", "lst"}]}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"System`Spread", "[", "lst_", "]"}], ":=",
RowBox[{"If", "[",
RowBox[{
RowBox[{
RowBox[{"Head", "[",
RowBox[{"lst", "[",
RowBox[{"[",
RowBox[{"1", ",", "2"}], "]"}], "]"}], "]"}], "===", "List"}], ",",
RowBox[{"Transpose", "[",
RowBox[{"Thread", "/@", "lst"}], "]"}], ",", "lst"}], "]"}]}], ";"}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"UpdateDimension", "[", "]"}], ":=",
RowBox[{"(", "\[IndentingNewLine]",
RowBox[{
RowBox[{"DimensionRange", "=",
RowBox[{
RowBox[{
RowBox[{"If", "[",
RowBox[{
RowBox[{"IntegerQ", "@", "#"}], ",",
RowBox[{"Range", "@", "#"}], ",", "#"}], "]"}], "&"}], "/@",
"DimensionType"}]}], ";", "\[IndentingNewLine]",
RowBox[{"DimensionSize", "=",
RowBox[{"Length", "/@", "DimensionRange"}]}], ";",
"\[IndentingNewLine]",
RowBox[{"TotalDimension", "=",
RowBox[{"Plus", "@@", "DimensionNumber"}]}], ";",
"\[IndentingNewLine]",
RowBox[{"DimensionVolume", "=",
RowBox[{"Each", "[",
RowBox[{
RowBox[{"Transpose", "@",
RowBox[{"{",
RowBox[{"DimensionSize", ",", "DimensionNumber"}], "}"}]}], ",",
RowBox[{
SuperscriptBox["#1", "#2"], "&"}]}], "]"}]}], ";",
RowBox[{"DimensionScale", "=",
RowBox[{"Reverse", "@",
RowBox[{"FoldList", "[",
RowBox[{"Times", ",", "1", ",",
RowBox[{"Reverse", "@", "DimensionVolume"}]}], "]"}]}]}], ";",
"\[IndentingNewLine]",
RowBox[{"FullDimension", "=",
RowBox[{
"DimensionScale", "\[LeftDoubleBracket]", "1",
"\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"DimensionScale", "=",
RowBox[{"DimensionScale", "\[LeftDoubleBracket]",
RowBox[{"2", ";;",
RowBox[{"-", "1"}]}], "\[RightDoubleBracket]"}]}], ";",
"\[IndentingNewLine]",
RowBox[{"DimensionPart", "=",
RowBox[{"Each", "[",
RowBox[{
RowBox[{"Partition", "[",
RowBox[{
RowBox[{"Accumulate", "@",
RowBox[{"Prepend", "[",
RowBox[{"DimensionNumber", ",", "0"}], "]"}]}], ",", "2", ",",
"1"}], "]"}], ",",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"#1", "+", "1"}], ",", "#2"}], "}"}], "&"}]}], "]"}]}],
";"}], "\[IndentingNewLine]", ")"}]}], ";"}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"Columnize", "[", "v_", "]"}], ":=",
RowBox[{
RowBox[{"(",
RowBox[{
RowBox[{"{", "#1", "}"}], "&"}], ")"}], "/@", "v"}]}], ";"}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"Decolumnize", "[",
RowBox[{"v", ":",
RowBox[{"{",
RowBox[{
RowBox[{"{", "_", "}"}], ".."}], "}"}]}], "]"}], ":=",
RowBox[{
RowBox[{"Transpose", "[", "v", "]"}], "[",
RowBox[{"[", "1", "]"}], "]"}]}], ";"}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"Commutator", "[",
RowBox[{"a_", ",", "b_", ",",
RowBox[{"f_:", "Dot"}]}], "]"}], ":=",
RowBox[{
RowBox[{"f", "[",
RowBox[{"a", ",", "b"}], "]"}], "-",
RowBox[{"f", "[",
RowBox[{"b", ",", "a"}], "]"}]}]}], ";"}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"Hermitian", "[",
RowBox[{
RowBox[{"mat_", "?", "SquareMatrixQ"}], ",",
RowBox[{"f_:", "Plus"}], ",",
RowBox[{"t_:", "Global`t"}]}], "]"}], ":=",
RowBox[{"Simplify", "[",
RowBox[{
RowBox[{"f", "[",
RowBox[{"mat", ",",
RowBox[{"mat", "\[ConjugateTranspose]"}]}], "]"}], ",",
RowBox[{"Assumptions", "\[Rule]",
RowBox[{"t", ">", "0"}]}]}], "]"}]}], ";"}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"QuotientRemainderDigits", "[",
RowBox[{"n_Integer", ",", "base_Integer", ",", "exp_Integer", ",",
RowBox[{"baseexp_Integer:", "0"}]}], "]"}], ":=",
RowBox[{
RowBox[{
RowBox[{"{",
RowBox[{"#1", ",",
RowBox[{
RowBox[{"IntegerDigits", "[",
RowBox[{"#2", ",", "base", ",", "exp"}], "]"}], "+", "1"}]}], "}"}],
"&"}], "@@",
RowBox[{"QuotientRemainder", "[",
RowBox[{"n", ",",
RowBox[{"If", "[",
RowBox[{
RowBox[{"baseexp", "===", "0"}], ",",
RowBox[{"base", "^", "exp"}], ",", "baseexp"}], "]"}]}], "]"}]}]}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"QuotientRemainderDigits", "[",
RowBox[{"n_Integer", ",", "range_List", ",", "exp_Integer", ",",
RowBox[{"baseexp_Integer:", "0"}]}], "]"}], ":=",
RowBox[{
RowBox[{
RowBox[{"{",
RowBox[{"#1", ",",
RowBox[{
"range", "\[LeftDoubleBracket]", "#2", "\[RightDoubleBracket]"}]}],
"}"}], "&"}], "@@",
RowBox[{"QuotientRemainderDigits", "[",
RowBox[{"n", ",",
RowBox[{"Length", "@", "range"}], ",", "exp", ",", "baseexp"}],
"]"}]}]}], ";"}], "\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"FromReminderDigits", "[",
RowBox[{
RowBox[{"digits", ":",
RowBox[{"{", "__Integer", "}"}]}], ",", "base_Integer"}], "]"}], ":=",
RowBox[{"FromDigits", "[",
RowBox[{
RowBox[{"digits", "-", "1"}], ",", "base"}], "]"}]}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"FromReminderDigits", "[",
RowBox[{
RowBox[{"digits", ":",
RowBox[{"{", "__", "}"}]}], ",", "range_List"}], "]"}], ":=",
RowBox[{"FromDigits", "[",
RowBox[{"(*",
RowBox[{"digits", "-",
RowBox[{
"range", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}],
"*)"}],
RowBox[{
RowBox[{
RowBox[{
RowBox[{
RowBox[{
RowBox[{"Position", "[",
RowBox[{"range", ",", "#"}], "]"}], "\[LeftDoubleBracket]",
RowBox[{"1", ",", "1"}], "\[RightDoubleBracket]"}], "-", "1"}],
"&"}], "/@", "digits"}], ",",
RowBox[{"Length", "@", "range"}]}], "]"}]}], ";"}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"Addr", "[", "n__", "]"}], ":=",
RowBox[{"Addr", "[",
RowBox[{"DeleteCases", "[",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"Take", "[",
RowBox[{
RowBox[{"{", "n", "}"}], ",", "#"}], "]"}], "&"}], "/@",
"DimensionPart"}], ",",
RowBox[{"{", "}"}]}], "]"}], "]"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"Addr", "[",
RowBox[{"list", ":",
RowBox[{"{",
RowBox[{
RowBox[{"{", "__", "}"}], ".."}], "}"}]}], "]"}], ":=",
RowBox[{"1", "+",
RowBox[{
RowBox[{"Each", "[",
RowBox[{
RowBox[{"Transpose", "@",
RowBox[{"{",
RowBox[{"list", ",",
RowBox[{"DimensionType", "\[LeftDoubleBracket]",
RowBox[{"1", ";;",
RowBox[{"Length", "@", "list"}]}], "\[RightDoubleBracket]"}]}],
"}"}]}], ",", "FromReminderDigits"}], "]"}], ".",
RowBox[{"DimensionScale", "\[LeftDoubleBracket]",
RowBox[{"1", ";;",
RowBox[{"Length", "@", "list"}]}], "\[RightDoubleBracket]"}]}]}]}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"Addr", "[",
RowBox[{"list", ":",
RowBox[{
RowBox[{"{", "__", "}"}], ".."}]}], "]"}], ":=",
RowBox[{"Addr", "@",
RowBox[{"{", "list", "}"}]}]}], ";"}], "\n",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"Spec", "[", "n_Integer", "]"}], ":=",
RowBox[{"Reverse", "@",
RowBox[{
RowBox[{
RowBox[{"FoldList", "[",
RowBox[{
RowBox[{
RowBox[{"QuotientRemainderDigits", "[",
RowBox[{
RowBox[{
"#1", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",",
RowBox[{"Sequence", "@@", "#2"}]}], "]"}], "&"}], ",",
RowBox[{"{",
RowBox[{"n", "-", "1"}], "}"}], ",",
RowBox[{"Reverse", "@",
RowBox[{"Transpose", "@",
RowBox[{"{",
RowBox[{
"DimensionType", ",", "DimensionNumber", ",", "DimensionVolume"}],
"}"}]}]}]}], "]"}], "\[LeftDoubleBracket]",
RowBox[{"2", ";;",
RowBox[{"-", "1"}]}], "\[RightDoubleBracket]"}],
"\[LeftDoubleBracket]",
RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}]}]}], ";"}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"StateVector", "[", "i_Integer", "]"}], ":=",
RowBox[{"SparseArray", "@",
RowBox[{"UnitVector", "[",
RowBox[{"FullDimension", ",", "i"}], "]"}]}]}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"StateVector", "[",
RowBox[{"dim_Integer", ",", "i_Integer"}], "]"}], ":=",
RowBox[{"SparseArray", "@",
RowBox[{"Columnize", "@",
RowBox[{"UnitVector", "[",
RowBox[{"dim", ",", "i"}], "]"}]}]}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"CouplingMatrix", "[",
RowBox[{"dim_Integer", ",",
RowBox[{"pos", ":",
RowBox[{
RowBox[{"(",
RowBox[{
RowBox[{"{",
RowBox[{"_Integer", ",", "_Integer"}], "}"}], "|",
RowBox[{"(",
RowBox[{
RowBox[{"{",
RowBox[{"_Integer", ",", "_Integer"}], "}"}], "\[Rule]", "_"}],
")"}]}], ")"}], ".."}]}]}], "]"}], ":=",
RowBox[{"SparseArray", "@",
RowBox[{"ReplacePart", "[",
RowBox[{
RowBox[{"ConstantArray", "[",
RowBox[{"0", ",",
RowBox[{"{",
RowBox[{"dim", ",", "dim"}], "}"}]}], "]"}], ",",
RowBox[{
RowBox[{
RowBox[{"If", "[",
RowBox[{
RowBox[{
RowBox[{"Head", "@", "#"}], "===", "Rule"}], ",", "#", ",",
RowBox[{"#", "\[Rule]", "1"}]}], "]"}], "&"}], "/@",
RowBox[{"{", "pos", "}"}]}]}], "]"}]}]}], ";"}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"Ket", "/:",
TemplateBox[{"args__"},
"Ket"], ":=",
RowBox[{"StateVector", "[",
RowBox[{"FullDimension", ",",
RowBox[{"Addr", "[", "args", "]"}]}], "]"}]}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"Ket", "/:",
TemplateBox[{RowBox[{"n_", "[", "pos_Integer", "]"}]},
"Ket"], ":=",
RowBox[{"StateVector", "[",
RowBox[{
RowBox[{
"DimensionSize", "\[LeftDoubleBracket]", "pos",
"\[RightDoubleBracket]"}], ",",
RowBox[{"1", "+",
RowBox[{"FromReminderDigits", "[",
RowBox[{
RowBox[{"{", "n", "}"}], ",",
RowBox[{
"DimensionType", "\[LeftDoubleBracket]", "pos",
"\[RightDoubleBracket]"}]}], "]"}]}]}], "]"}]}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"Bra", "/:",
TemplateBox[{"args__"},
"Bra"], ":=",
RowBox[{
TemplateBox[{"args"},
"Ket"], "\[ConjugateTranspose]"}]}], ";"}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"PartialIndex", "[",
RowBox[{"n_Integer", ",",
RowBox[{"scale_Integer:", "1"}]}], "]"}], ":=", "\[IndentingNewLine]",
RowBox[{"Function", "@@",
RowBox[{"{",
RowBox[{
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"n", " ", "scale"}], ",", "1"}], "}"}], ".",
RowBox[{"QuotientRemainder", "[",
RowBox[{
RowBox[{"#1", "-", "1"}], ",", "scale"}], "]"}]}], "+",
RowBox[{"scale",
RowBox[{"(",
RowBox[{"#2", "-", "1"}], ")"}]}], "+", "1"}], "}"}]}]}], ";"}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"PartialTr", "[",
RowBox[{
RowBox[{"mat_", "?", "SquareMatrixQ"}], ",", "n_Integer", ",",
RowBox[{"scale_Integer:", "1"}]}], "]"}], ":=",
RowBox[{"Module", "[",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"size", "=",
RowBox[{"Length", "@", "mat"}]}], ",", "m", ",", "index"}], "}"}],
",", "\[IndentingNewLine]",
RowBox[{
RowBox[{"m", "=",
RowBox[{"size", "/", "n"}]}], ";", "\[IndentingNewLine]",
RowBox[{"index", "=",
RowBox[{"PartialIndex", "[",
RowBox[{"n", ",", "scale"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"Table", "[",
RowBox[{
RowBox[{"Sum", "[",
RowBox[{
RowBox[{"mat", "\[LeftDoubleBracket]",
RowBox[{
RowBox[{"index", "[",
RowBox[{"m1", ",", "i"}], "]"}], ",",
RowBox[{"index", "[",
RowBox[{"m2", ",", "i"}], "]"}]}], "\[RightDoubleBracket]"}],
",",
RowBox[{"{",
RowBox[{"i", ",", "n"}], "}"}]}], "]"}], ",",
RowBox[{"{",
RowBox[{"m1", ",", "m"}], "}"}], ",",
RowBox[{"{",
RowBox[{"m2", ",", "m"}], "}"}]}], "]"}]}]}], "\[IndentingNewLine]",
"]"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"PartialTr", "[",
RowBox[{
RowBox[{"state", ":",
RowBox[{"(",
RowBox[{"_SparseArray", "|", "_List"}], ")"}]}], ",", "n_Integer",
",",
RowBox[{"scale_Integer:", "1"}]}], "]"}], ":=",
RowBox[{"Module", "[",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"size", "=",
RowBox[{"Length", "@", "state"}]}], ",", "m", ",", "index"}], "}"}],
",", "\[IndentingNewLine]",
RowBox[{
RowBox[{"m", "=",
RowBox[{"size", "/", "n"}]}], ";", "\[IndentingNewLine]",
RowBox[{"index", "=",
RowBox[{"PartialIndex", "[",
RowBox[{"n", ",", "scale"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"Table", "[",
RowBox[{
RowBox[{"Sum", "[",
RowBox[{
RowBox[{"state", "\[LeftDoubleBracket]",
RowBox[{"index", "[",
RowBox[{"k", ",", "i"}], "]"}], "\[RightDoubleBracket]"}], ",",
RowBox[{"{",
RowBox[{"i", ",", "n"}], "}"}]}], "]"}], ",",
RowBox[{"{",
RowBox[{"k", ",", "m"}], "}"}]}], "]"}]}]}], "\[IndentingNewLine]",
"]"}]}], ";"}], "\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"DimensionPos", "[", "i_Integer", "]"}], ":=",
RowBox[{"Module", "[",
RowBox[{
RowBox[{"{",
RowBox[{"r", ",", "n"}], "}"}], ",",
RowBox[{
RowBox[{"r", "=",
RowBox[{
RowBox[{"FirstPosition", "[",
RowBox[{
RowBox[{"DimensionPart", "\[LeftDoubleBracket]",
RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], ",",
RowBox[{"_", "?",
RowBox[{"(",
RowBox[{
RowBox[{"#", "\[GreaterEqual]", "i"}], "&"}], ")"}]}]}], "]"}],
"\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], ";",
"\[IndentingNewLine]",
RowBox[{"n", "=",
RowBox[{"i", "-",
RowBox[{"DimensionPart", "\[LeftDoubleBracket]",
RowBox[{"r", ",", "1"}], "\[RightDoubleBracket]"}], "+", "1"}]}],
";",
RowBox[{"{",
RowBox[{"r", ",", "n"}], "}"}]}]}], "]"}]}], ";"}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"DimensionTr", "[",
RowBox[{
RowBox[{"mat", ":",
RowBox[{"(",
RowBox[{
RowBox[{"_", "?", "SquareMatrixQ"}], "|", "_SparseArray", "|",
"_List"}], ")"}]}], ",",
RowBox[{"{",
RowBox[{"r_Integer", ",", "n_Integer"}], "}"}]}], "]"}], ":=",
RowBox[{"PartialTr", "[",
RowBox[{"mat", ",",
RowBox[{
"DimensionSize", "\[LeftDoubleBracket]", "r", "\[RightDoubleBracket]"}],
",",
RowBox[{
RowBox[{
RowBox[{
"DimensionSize", "\[LeftDoubleBracket]", "r",
"\[RightDoubleBracket]"}], "^",
RowBox[{"(",
RowBox[{
RowBox[{
"DimensionNumber", "\[LeftDoubleBracket]", "r",
"\[RightDoubleBracket]"}], "-", "n"}], ")"}]}],
RowBox[{
"DimensionScale", "\[LeftDoubleBracket]", "r",
"\[RightDoubleBracket]"}]}]}], "]"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"DimensionTr", "[",
RowBox[{
RowBox[{"mat", ":",
RowBox[{"(",
RowBox[{
RowBox[{"_", "?", "SquareMatrixQ"}], "|", "_SparseArray", "|",
"_List"}], ")"}]}], ",",
RowBox[{"{",
RowBox[{"r_Integer", ",",
RowBox[{"list", ":",
RowBox[{"{", "__Integer", "}"}]}]}], "}"}]}], "]"}], ":=",
RowBox[{"Fold", "[",
RowBox[{
RowBox[{
RowBox[{"DimensionTr", "[",
RowBox[{"#1", ",",
RowBox[{"{",
RowBox[{"r", ",", "#2"}], "}"}]}], "]"}], "&"}], ",", "mat", ",",
RowBox[{"Sort", "@", "list"}]}], "]"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"DimensionTr", "[",
RowBox[{
RowBox[{"mat", ":",
RowBox[{"(",
RowBox[{
RowBox[{"_", "?", "SquareMatrixQ"}], "|", "_SparseArray", "|",
"_List"}], ")"}]}], ",",
RowBox[{"{", "r_Integer", "}"}]}], "]"}], ":=",
RowBox[{"PartialTr", "[",
RowBox[{"mat", ",",
RowBox[{
RowBox[{
"DimensionSize", "\[LeftDoubleBracket]", "r", "\[RightDoubleBracket]"}],
"^",
RowBox[{
"DimensionNumber", "\[LeftDoubleBracket]", "r",
"\[RightDoubleBracket]"}]}], ",",
RowBox[{
"DimensionScale", "\[LeftDoubleBracket]", "r",
"\[RightDoubleBracket]"}]}], "]"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"DimensionTr", "[",
RowBox[{
RowBox[{"mat", ":",
RowBox[{"(",
RowBox[{
RowBox[{"_", "?", "SquareMatrixQ"}], "|", "_SparseArray", "|",
"_List"}], ")"}]}], ",",
RowBox[{"{",
RowBox[{"r_Integer", ",", "All"}], "}"}]}], "]"}], ":=",
RowBox[{"DimensionTr", "[",
RowBox[{"mat", ",",
RowBox[{"{", "r", "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"DimensionTr", "[",
RowBox[{
RowBox[{"mat", ":",
RowBox[{"(",
RowBox[{
RowBox[{"_", "?", "SquareMatrixQ"}], "|", "_SparseArray", "|",
"_List"}], ")"}]}], ",",
RowBox[{"{",
RowBox[{"r_Integer", ",",
RowBox[{"{", "}"}]}], "}"}]}], "]"}], ":=", "mat"}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"DimensionTr", "[",
RowBox[{
RowBox[{"mat", ":",
RowBox[{"(",
RowBox[{
RowBox[{"_", "?", "SquareMatrixQ"}], "|", "_SparseArray", "|",
"_List"}], ")"}]}], ",", "i_Integer"}], "]"}], ":=",
RowBox[{"DimensionTr", "[",
RowBox[{"mat", ",",
RowBox[{"DimensionPos", "[", "i", "]"}]}], "]"}]}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"DimensionTr", "[",
RowBox[{
RowBox[{"mat", ":",
RowBox[{"(",
RowBox[{
RowBox[{"_", "?", "SquareMatrixQ"}], "|", "_SparseArray", "|",
"_List"}], ")"}]}], ",", "list__"}], "]"}], ":=",
RowBox[{"Fold", "[",
RowBox[{
RowBox[{
RowBox[{"DimensionTr", "[",
RowBox[{"#1", ",", "#2"}], "]"}], "&"}], ",", "mat", ",",
RowBox[{"Sort", "@",
RowBox[{"{", "list", "}"}]}]}], "]"}]}], ";"}]}], "Input",
InitializationCell->True,
CellChangeTimes->{{3.630601870688705*^9, 3.630601871545754*^9}, {
3.6306019089124775`*^9, 3.630601911630633*^9}, {3.630602035613278*^9,
3.6306020403685503`*^9}, {3.6306020985176563`*^9,
3.6306021007087812`*^9}, {3.630628578567499*^9, 3.630628579215536*^9}, {
3.630651416631234*^9, 3.6306514169092503`*^9}, {3.630651514421828*^9,
3.6306515172849913`*^9}, {3.6306516748440037`*^9, 3.6306516764200935`*^9},
3.630652453759555*^9, {3.6306528454609585`*^9, 3.630652865740119*^9}, {
3.6306530747220716`*^9, 3.6306530752341013`*^9}, 3.630654062947595*^9, {
3.6306543880571904`*^9, 3.630654389368265*^9}, 3.630654787343028*^9, {
3.630654858989126*^9, 3.6306549063778367`*^9}, {3.630655010690803*^9,
3.6306550976987796`*^9}, {3.6306551311616936`*^9, 3.630655154107006*^9}, {
3.6306551858038187`*^9, 3.6306552156255245`*^9}, {3.6306553122090487`*^9,
3.6306553590007253`*^9}, {3.6306554440805917`*^9, 3.63065546363871*^9}, {
3.630655507312208*^9, 3.6306555511597157`*^9}, {3.6306556036957207`*^9,
3.6306556531515493`*^9}, {3.630655688143551*^9, 3.6306556910707183`*^9}, {
3.6306557233665657`*^9, 3.6306557236785836`*^9}, {3.6306558632941685`*^9,
3.630655879812113*^9}, {3.630659997078607*^9, 3.630660002919941*^9}, {
3.6306601350164967`*^9, 3.6306601774079213`*^9}, {3.6306602393834662`*^9,
3.630660246382867*^9}, {3.630660777314234*^9, 3.6306607875858216`*^9}, {
3.6306608176355405`*^9, 3.6306609228345575`*^9}, {3.6306609584855967`*^9,
3.630661014401795*^9}, {3.6306610973555393`*^9, 3.6306611690726414`*^9}, {
3.63066121084103*^9, 3.6306612230007257`*^9}, {3.6306612729575834`*^9,
3.6306614544799657`*^9}, {3.630661494925279*^9, 3.6306616343252525`*^9}, {
3.6306616768296833`*^9, 3.6306617260695*^9}, {3.630661802159852*^9,
3.6306619254529037`*^9}, {3.6306620888672504`*^9,
3.6306621447374463`*^9}, {3.6306621858087955`*^9,
3.6306621921281567`*^9}, {3.630662231264395*^9, 3.630662231407404*^9}, {
3.6306623013444033`*^9, 3.63066233064808*^9}, {3.630662389848466*^9,
3.630662413836838*^9}, {3.6306625456883793`*^9, 3.630662595334219*^9}, {
3.630662651023404*^9, 3.630662753541268*^9}, {3.630662793354545*^9,
3.630662859588333*^9}, {3.6306629690275927`*^9, 3.630662969658629*^9}, {
3.6306630162042913`*^9, 3.630663039346615*^9}, {3.630663203336995*^9,
3.6306632153836837`*^9}, {3.6306632578661137`*^9,
3.6306633232478533`*^9}, {3.630663969429813*^9, 3.630663997567422*^9}, {
3.6408730184593573`*^9, 3.6408730268054333`*^9}, {3.6408731163615427`*^9,
3.640873126620927*^9}, {3.6408731811716337`*^9, 3.640873187105973*^9},
3.6408732400659933`*^9, 3.6408732771740985`*^9, {3.6408734445584264`*^9,
3.6408734540849714`*^9}, {3.6408975666192083`*^9, 3.640897571779503*^9}, {
3.6408976512430487`*^9, 3.6408976519860907`*^9}, {3.640898597988199*^9,
3.640898608740814*^9}, {3.6408986810609503`*^9, 3.640898756004237*^9}, {
3.6408987961475334`*^9, 3.6408988078512025`*^9}, {3.6409010237179427`*^9,
3.640901025035018*^9}, {3.6409013333956556`*^9, 3.64090139134797*^9}, {
3.6409017306263757`*^9, 3.640901731505426*^9}, {3.6409017957310996`*^9,
3.640901797890223*^9}, {3.640929047367804*^9, 3.6409290481078463`*^9}, {
3.6435163408697653`*^9, 3.6435163517470503`*^9}, {3.643516419484448*^9,
3.643516487806085*^9}, {3.643516543782885*^9, 3.643516627482191*^9}, {
3.6435167307682457`*^9, 3.6435167319021397`*^9}, {3.643516763413445*^9,
3.643516781180149*^9}, {3.643524655930521*^9, 3.6435247227343416`*^9}, {
3.643524813109511*^9, 3.6435248135575366`*^9}, {3.6435248653554993`*^9,
3.6435250402265015`*^9}, {3.643525108602412*^9, 3.6435251129316597`*^9}, {
3.643525152027896*^9, 3.643525273761859*^9}, {3.6435253411697145`*^9,
3.6435254587514396`*^9}, {3.643525649934375*^9, 3.643525705236538*^9}, {
3.643525746269885*^9, 3.6435257515101843`*^9}, {3.6435258217412014`*^9,
3.6435258466686273`*^9}, {3.643525922668974*^9, 3.6435259292513504`*^9}, {
3.6435260234917407`*^9, 3.643526024492798*^9}, {3.6435262071782475`*^9,
3.643526223124159*^9}, {3.6435262599022627`*^9, 3.6435262716329336`*^9},
3.6435265739512253`*^9, {3.6435272447375917`*^9, 3.643527248073783*^9}, {
3.6435277004396567`*^9, 3.643527716070551*^9}, {3.6435278235206966`*^9,
3.6435278537984285`*^9}, {3.6435279448706374`*^9, 3.643527945174655*^9}, {
3.6435279783025494`*^9, 3.643528001316866*^9}, {3.643528340444263*^9,
3.6435283915941887`*^9}, {3.6435284390749044`*^9,
3.6435284734408703`*^9}, {3.6435285325782523`*^9,
3.6435285362644634`*^9}, {3.643529384290968*^9, 3.643529446159506*^9}, {
3.64352973662312*^9, 3.6435297458126454`*^9}, {3.6435297821817255`*^9,
3.643529791120237*^9}, {3.643530173975135*^9, 3.643530179799468*^9}, {
3.6435320864535227`*^9, 3.6435322588803844`*^9}, {3.643532304696005*^9,
3.643532364119404*^9}, {3.643532418456512*^9, 3.643532460639925*^9}, {
3.6435325927424803`*^9, 3.6435326044231486`*^9}, {3.643532673206083*^9,
3.64353286915629*^9}, {3.643532913361819*^9, 3.643532931754871*^9}, {
3.6435329860689774`*^9, 3.643533025204216*^9}, {3.6435330553449397`*^9,
3.6435332254726706`*^9}, {3.6435332761135674`*^9, 3.643533323183259*^9}, {
3.6435334272882137`*^9, 3.6435334524736547`*^9}, {3.6435334975502324`*^9,
3.643533520606551*^9}, {3.643533553669442*^9, 3.6435335901285276`*^9}, {
3.6435336275176663`*^9, 3.6435337145096416`*^9}, {3.643533919837386*^9,
3.6435339236446037`*^9}, {3.6435342438819203`*^9,
3.6435343790676527`*^9}, {3.6435344929211645`*^9,
3.6435345339215097`*^9}, {3.643534635073295*^9, 3.643534697910889*^9}, {
3.6435347789675255`*^9, 3.643534787927038*^9}, {3.6435356494903164`*^9,
3.6435356750887804`*^9}, {3.643536577177377*^9, 3.6435366298263884`*^9}, {
3.6435366641223497`*^9, 3.643536668367593*^9}, {3.6435367261438975`*^9,
3.643536745400999*^9}, 3.6435367885054646`*^9, {3.643536899061788*^9,
3.6435369021249633`*^9}, {3.643536948319605*^9, 3.643536948662625*^9}, {
3.6435382622047553`*^9, 3.6435382819488845`*^9}, {3.643538374285166*^9,
3.6435384385728426`*^9}, {3.6435384741958804`*^9, 3.643538669969078*^9}, {
3.643538709276326*^9, 3.643538717276784*^9}, {3.6435387700178003`*^9,
3.6435387867797594`*^9}, {3.6435388206996994`*^9, 3.643538942073642*^9}, {
3.6435390085474434`*^9, 3.6435391534067287`*^9}, {3.643539194815098*^9,
3.643539224814813*^9}, {3.6435392896155195`*^9, 3.643539322301389*^9}, {
3.643539362653697*^9, 3.6435393806937294`*^9}, {3.643539422333111*^9,
3.643539458414174*^9}, {3.6435395242439394`*^9, 3.6435395271401052`*^9}, {
3.643539717756008*^9, 3.6435397284506197`*^9}, {3.643539845700326*^9,
3.6435398490495176`*^9}, {3.643539975738764*^9, 3.6435399768398266`*^9}, {
3.6435400806337633`*^9, 3.6435400893682632`*^9}, {3.643540122552161*^9,
3.6435401489596715`*^9}, {3.6435401870148478`*^9,
3.6435401973354387`*^9}, {3.6435402476553164`*^9,
3.6435403002153225`*^9}, {3.6435403451958957`*^9,
3.6435403658070745`*^9}, {3.6435404386072383`*^9, 3.6435404402853346`*^9},
3.643540569605731*^9, 3.6435406218127174`*^9, 3.643540654188569*^9, {
3.643540740441502*^9, 3.6435408218191566`*^9}, {3.6435409214558554`*^9,
3.6435409232389574`*^9}, {3.643541070298369*^9, 3.643541074323599*^9}, {
3.6435411361531353`*^9, 3.6435411396583357`*^9}, {3.643541697717255*^9,
3.643541722188655*^9}, {3.643542202846147*^9, 3.6435422105185857`*^9}, {
3.64354411663861*^9, 3.643544226069869*^9}, {3.643544284957237*^9,
3.643544396747631*^9}, {3.6435444273233795`*^9, 3.64354444008311*^9},
3.6435444932351494`*^9, {3.6435450462043304`*^9, 3.6435450658714557`*^9}, {
3.6435457921700315`*^9, 3.643545821576083*^9}, {3.643545855802543*^9,
3.6435458561613436`*^9}, {3.643546147304655*^9, 3.6435461759463053`*^9}, {
3.6435463380773907`*^9, 3.64354634923141*^9}, {3.643546411459919*^9,
3.643546423674741*^9}, {3.6435466811531925`*^9, 3.6435466879080048`*^9}, {
3.643546843424678*^9, 3.6435468483074865`*^9}, {3.6435469438888545`*^9,
3.6435469639504895`*^9}, {3.6435470106257715`*^9,
3.6435470151809797`*^9}, {3.6435470523558445`*^9, 3.643547228386554*^9}, {
3.6435472587442074`*^9, 3.643547270444228*^9}, {3.6435473164175086`*^9,
3.64354731729111*^9}, {3.6435474756157885`*^9, 3.643547540527502*^9}, {
3.64354757898157*^9, 3.6435476791649456`*^9}, {3.643547777164318*^9,
3.6435477958687506`*^9}, {3.6435478261172037`*^9,
3.6435479327745914`*^9}, {3.643548156276184*^9, 3.6435482299551134`*^9}, {
3.643548423348653*^9, 3.643548497526783*^9}, {3.6435490713737907`*^9,
3.6435491621035504`*^9}, {3.643549203396823*^9, 3.6435492815841603`*^9}, {
3.6435493396162624`*^9, 3.643549374373123*^9}, {3.6435494376000347`*^9,
3.6435494377872343`*^9}, {3.6435495820250883`*^9,
3.6435497452581744`*^9}, {3.6435497917930565`*^9,
3.6435498655811863`*^9}, {3.643549902756051*^9, 3.6435499058448563`*^9}, {
3.64354997588898*^9, 3.643549978962185*^9}, {3.6435500367914867`*^9,
3.6435500657139373`*^9}, {3.643550322209588*^9, 3.6435503312420034`*^9}, {
3.6435503636900606`*^9, 3.643550386700101*^9}, {3.6435504188673573`*^9,
3.643550672118202*^9}, {3.643550723847893*^9, 3.643550850535716*^9}, {
3.643550882968173*^9, 3.6435509796259427`*^9}, {3.643551028064028*^9,
3.643551073054507*^9}, {3.6435513548222017`*^9, 3.6435513598142104`*^9}, {
3.6435514066298923`*^9, 3.643551457579582*^9}, {3.6435515044576645`*^9,
3.6435516610819397`*^9}, {3.6435516968684025`*^9,
3.6435517071800203`*^9}, {3.643551740486079*^9, 3.6435517965837774`*^9}, {
3.643551844959462*^9, 3.6435519327096167`*^9}, {3.643552108303525*^9,
3.6435521492847967`*^9}, {3.6435522351317477`*^9,
3.6435522356465487`*^9}, {3.643552465860553*^9, 3.643552506888625*^9}, {
3.6435529243765583`*^9, 3.643553010005109*^9}, {3.643554157683524*^9,
3.643554311936595*^9}, {3.6435544912913103`*^9, 3.643554494348916*^9}, {
3.643554605998312*^9, 3.6435546068563137`*^9}, {3.6435546499123893`*^9,
3.6435546609416084`*^9}, {3.643588752738491*^9, 3.6435889044761696`*^9}, {
3.6435965684217625`*^9, 3.6435966517731113`*^9}, 3.643596688519403*^9, {
3.6435971610907035`*^9, 3.643597165418348*^9}, {3.6435973516471634`*^9,
3.6435973588141723`*^9}, {3.643597598896632*^9, 3.643597649863138*^9}, {
3.643597751752737*^9, 3.6435978117753553`*^9}, {3.643597857266548*^9,
3.6435978797910304`*^9}, {3.6435987776910377`*^9,
3.6435987798501616`*^9}, {3.643599078398978*^9, 3.6435990958657703`*^9}, {
3.6435994153957787`*^9, 3.643599418731767*^9}, {3.643599505162698*^9,
3.6435996476674175`*^9}, {3.643599684914742*^9, 3.6435999084672785`*^9}, {
3.6435999637042303`*^9, 3.6436000199836435`*^9}, {3.643600055142051*^9,
3.6436001302825384`*^9}, {3.643600384094784*^9, 3.643600393220306*^9}, {
3.6436043906719675`*^9, 3.64360441219359*^9}, {3.643609639256645*^9,
3.6436098231272697`*^9}, {3.643609921091834*^9, 3.643609926559944*^9}, {
3.6436101538972397`*^9, 3.643610201017314*^9}, {3.643610241310998*^9,
3.6436102528458476`*^9}, {3.6436102860223227`*^9,
3.6436102922404757`*^9}, {3.643610327630681*^9, 3.643610352622097*^9}, {
3.6436106784765882`*^9, 3.643610694781913*^9}, {3.643610805641611*^9,
3.6436108134974527`*^9}, {3.643610847600589*^9, 3.6436109442584705`*^9}, {
3.643611038730214*^9, 3.6436111001272993`*^9}, {3.643611222942858*^9,
3.6436112822656307`*^9}, {3.6436113665270147`*^9,
3.6436113677370834`*^9}, {3.6436117898802543`*^9,
3.6436117991255803`*^9}, {3.6436120224510775`*^9,
3.6436120721471143`*^9}, {3.6436121038675103`*^9, 3.643612131059863*^9}, {
3.643612329170698*^9, 3.643612330631782*^9}, {3.6436128358352504`*^9,
3.6436128364972887`*^9}, {3.643612912388198*^9, 3.6436129162654195`*^9}, {
3.6436129595132723`*^9, 3.6436129629126654`*^9}, {3.643612994897482*^9,
3.643613107425258*^9}, {3.6436131412713795`*^9, 3.6436131499844723`*^9}, {
3.643613213644088*^9, 3.6436132242660875`*^9}, {3.6436132943442464`*^9,
3.6436133527665663`*^9}, {3.6436134736428204`*^9, 3.643613537786058*^9}, {
3.6436136548674917`*^9, 3.6436136746730165`*^9}, {3.6436137531328793`*^9,
3.6436138180833654`*^9}, {3.6436144923138294`*^9,
3.6436145148095083`*^9}, {3.643614926883693*^9, 3.643614927406723*^9}, {
3.6436152594003925`*^9, 3.643615400652403*^9}, {3.6436167610556273`*^9,
3.6436168710938997`*^9}, {3.643616983722695*^9, 3.643617069929983*^9}, {
3.6436171003309116`*^9, 3.6436172086734486`*^9}, {3.643617260819604*^9,
3.6436172935622654`*^9}, {3.6436173338433495`*^9,
3.6436173765687714`*^9}, {3.6436174067706885`*^9,
3.6436174115679626`*^9}, {3.6436175282573957`*^9,
3.6436175847425876`*^9}, {3.6436177879905186`*^9,
3.6436177884845467`*^9}, {3.6436178234201355`*^9,
3.6436180360205965`*^9}, {3.6436180726406784`*^9, 3.6436180735147285`*^9},
3.6436193900141554`*^9, {3.6436197204103675`*^9, 3.6436197206233797`*^9}, {
3.6436230119565287`*^9, 3.643623111623195*^9}, {3.643628318194079*^9,
3.643628325652506*^9}, {3.6436286293288746`*^9, 3.6436286404625115`*^9}, {
3.643891577406291*^9, 3.6438916124482956`*^9}, {3.644284947015566*^9,
3.644284993549227*^9}, 3.6442850249240217`*^9, {3.6442851493561387`*^9,
3.644285216174961*^9}, {3.644285289506155*^9, 3.644285290251198*^9}, {
3.644285411940158*^9, 3.644285449554309*^9}, {3.644285494743894*^9,
3.6442854959989653`*^9}, {3.6442856451854987`*^9, 3.644285649294734*^9}, {
3.6442857264231453`*^9, 3.6442857471993337`*^9}, {3.644286049878646*^9,
3.6442860758331304`*^9}, {3.6442861246619234`*^9, 3.644286141371879*^9}, {
3.6442861999242277`*^9, 3.64428622304255*^9}, 3.6442864173496637`*^9, {
3.64428658495625*^9, 3.64428659386276*^9}, {3.6442868472452526`*^9,
3.644286849204365*^9}, {3.644286883249312*^9, 3.6442869006123047`*^9}, {
3.644286955455442*^9, 3.6442871924579973`*^9}, {3.64428723865164*^9,
3.644287239341679*^9}, {3.644287311366799*^9, 3.644287392826458*^9}, {
3.6442875904397607`*^9, 3.6442876036155148`*^9}, {3.6442877136868105`*^9,
3.6442877190771184`*^9}, {3.644287789161127*^9, 3.644287803917971*^9}, {
3.6442879194595795`*^9, 3.6442879247278814`*^9}, {3.644288002708341*^9,
3.644288039779462*^9}, {3.644288089248291*^9, 3.6442880969117293`*^9}, {
3.644288468930008*^9, 3.6442885824905033`*^9}, {3.644288697733094*^9,
3.6442887226065173`*^9}, {3.6442888381781273`*^9, 3.644288848331708*^9}, {
3.644289002629534*^9, 3.6442890036405916`*^9}, {3.6442890500702467`*^9,
3.644289110035677*^9}, {3.644289210388417*^9, 3.644289210760438*^9}, {
3.644289258944194*^9, 3.6442893006415787`*^9}, {3.644289376456915*^9,
3.6442896847155466`*^9}, {3.644290033433492*^9, 3.644290083641364*^9},
3.6442904961589584`*^9, {3.644290529557869*^9, 3.644290529840885*^9}, {
3.6442905702911987`*^9, 3.6442905728713465`*^9}, {3.644290849366161*^9,
3.6442909025692043`*^9}, {3.6442909518440223`*^9, 3.644290957485345*^9}, {
3.644291181556161*^9, 3.644291263101825*^9}, {3.644292568179471*^9,
3.6442925940609517`*^9}, {3.650040851501808*^9, 3.6500408526874104`*^9}, {
3.656628454095497*^9, 3.6566284937507067`*^9}, {3.65662854312901*^9,
3.656628547136456*^9}, {3.656628584623403*^9, 3.6566286140351763`*^9}, {
3.6566286830154457`*^9, 3.6566286872769203`*^9}, {3.656628743232276*^9,
3.656628770496216*^9}, {3.656628802859623*^9, 3.656628836719639*^9}, {
3.6566288976986303`*^9, 3.656629036278651*^9}, {3.656629068129407*^9,
3.656629149278651*^9}, {3.656629225777288*^9, 3.6566294067222233`*^9}, {
3.656629872243662*^9, 3.656630178223693*^9}, {3.6566302860503063`*^9,
3.656630290175226*^9}, {3.6566303343714848`*^9, 3.656630341576146*^9}, {
3.656630387382153*^9, 3.656630395770082*^9}, 3.656630514995036*^9,
3.656631279792831*^9, {3.656631310246704*^9, 3.65663132128017*^9}, {
3.6566313792187843`*^9, 3.656631392150455*^9}, {3.656631536749567*^9,
3.65663155948779*^9}, {3.65668784149125*^9, 3.656688011805695*^9}, {
3.656688100245016*^9, 3.656688101417665*^9}, {3.656688219168783*^9,
3.656688226709354*^9}, {3.656688316728181*^9, 3.656688323765388*^9}, {
3.656688402457789*^9, 3.6566884083885317`*^9}, {3.656688598312915*^9,
3.656688639471262*^9}, {3.656688701707299*^9, 3.656688819711973*^9}, {
3.656688862045911*^9, 3.65668887243513*^9}, {3.656688921224145*^9,
3.656688934548099*^9}, {3.6566889676425867`*^9, 3.656688986918283*^9}, {
3.656689168808424*^9, 3.656689278714764*^9}, {3.656689365653844*^9,
3.656689403205125*^9}, {3.656689449179215*^9, 3.6566894579883966`*^9}, {
3.656689575361292*^9, 3.6566895802835073`*^9}, {3.656689658586931*^9,
3.6566896594975443`*^9}, {3.656845678815115*^9, 3.6568456925600653`*^9}, {
3.6568457417965574`*^9, 3.6568457426664047`*^9}, {3.656845838284235*^9,
3.656845944980074*^9}, {3.65684610437381*^9, 3.6568461979213276`*^9}, {
3.6568462909756145`*^9, 3.656846484599804*^9}, {3.6568465860793533`*^9,
3.656846621817108*^9}, {3.656846690759077*^9, 3.6568467481992197`*^9}, {
3.6568468061003885`*^9, 3.656847030650467*^9}, {3.656847085539274*^9,
3.6568471185980873`*^9}, {3.6568471955606956`*^9, 3.656847247090716*^9}, {