-
Notifications
You must be signed in to change notification settings - Fork 0
/
01-foundations.txt
145 lines (127 loc) · 7.85 KB
/
01-foundations.txt
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
Welcome to the go2x3 tutorial series!
=================================================================
| go2x3 (v1.2024.1) |
| https://2x3.systems |
| |
| "OH LET ME BEHOLD YOUR PRESENCE” EXODUS 33:2x3x3 |
=================================================================
Our friend the proton: p=1,v=3," oBB 2ooA 3 ","","1-2-3",5,13,35,
If we want to get the traces of a 2x3 graph, we can!
proton.Traces(): (5, 13, 35)
proton.Traces(12): (5, 13, 35, 97, 275, 793, 2315, 6817, 20195, 60073, 179195, 535537)
Or we can access each Traces element easily thanks to python:
T[0]: 5
T[1]: 13
T[2]: 35
T[3]: 97
T[4]: 275
T[5]: 793
T[6]: 2315
T[7]: 6817
T[8]: 20195
T[9]: 60073
T[10]: 179195
T[11]: 535537
Now let's meet GraphStream, allowing us to do more useful things with particle Graph objects.
GraphStream is a chain (pipeline) of Graph operators where Graphs are "pushed" into a stream's inlet and "pulled" from its outlet.
Adding .Print(label) prints each graph that passes though the stream, printing the given label along with a counter.
Adding .Go() terminates a stream and pulls all the graphs through it:
Hello proton!,000001,p=1,v=3," oBB 2ooA 3 ","","1-2-3",5,13,35,
For each particle that AllVtxSigns() takes in, it sends out all possible permutations of loop signs:
electron.AllVtxSigns,000001,p=1,v=1," ooo ","","1",3,
electron.AllVtxSigns,000002,p=1,v=1," ooo _ ","","1^",1,
electron.AllVtxSigns,000003,p=1,v=1," ooo __ ","","1^^",-1,
electron.AllVtxSigns,000004,p=1,v=1," ooo ___ ","","1^^^",-3,
The more loops that are present, the more permutations that are possible:
proton.AllVtxSigns,000001,p=1,v=3," oBB 2ooA 3 ","","1-2-3",5,13,35,
proton.AllVtxSigns,000002,p=1,v=3," ooB oAC ooB _ 2 ","","1^-2-3",3,9,21,
proton.AllVtxSigns,000003,p=1,v=3," ooB oAC ooB __ 2 ","","1^^-2-3",1,13,7,
proton.AllVtxSigns,000004,p=1,v=3," oBB 2ooA _ 2 ","","1-2^-3",3,13,21,
proton.AllVtxSigns,000005,p=1,v=3," oBC 2ooA _ _ ","","1^-2^-3",1,9,7,
proton.AllVtxSigns,000006,p=1,v=3," ooB oAC ooB __ _ ","","1^^-2^-3",-1,13,-7,
proton.AllVtxSigns,000007,p=1,v=3," ooB oAC ooB _ 2 ","","1-2-3^",3,9,21,
proton.AllVtxSigns,000008,p=1,v=3,"2ooB oAA 2 _ ","","1^-2-3^",1,5,7,
proton.AllVtxSigns,000009,p=1,v=3,"2ooC oAB __ _ ","","1^^-2-3^",-1,9,-7,
proton.AllVtxSigns,000010,p=1,v=3," oBC 2ooA _ _ ","","1-2^-3^",1,9,7,
proton.AllVtxSigns,000011,p=1,v=3," oBB 2ooA _ 2 _ ","","1^-2^-3^",-1,5,-7,
proton.AllVtxSigns,000012,p=1,v=3," ooB oAC ooB __ _ _ ","","1^^-2^-3^",-3,9,-21,
proton.AllVtxSigns,000013,p=1,v=3," ooB oAC ooB __ 2 ","","1-2-3^^",1,13,7,
proton.AllVtxSigns,000014,p=1,v=3,"2ooC oAB __ _ ","","1^-2-3^^",-1,9,-7,
proton.AllVtxSigns,000015,p=1,v=3,"2ooB oAA 2__ ","","1^^-2-3^^",-3,13,-21,
proton.AllVtxSigns,000016,p=1,v=3," ooB oAC ooB __ _ ","","1-2^-3^^",-1,13,-7,
proton.AllVtxSigns,000017,p=1,v=3," ooB oAC ooB __ _ _ ","","1^-2^-3^^",-3,9,-21,
proton.AllVtxSigns,000018,p=1,v=3,"2ooB oAA 2__ _ ","","1^^-2^-3^^",-5,13,-35,
For particles containing only 'gamma' vertices, only one permutation is possible:
gamma.AllVtxSigns,000001,p=1,v=2,"2OOO 2 ","","1---2",0,18,
All edge permutations for a two-vertex photon:
gamma.AllEdgeSigns,000001,p=1,v=2,"2OOO 2 ","","1---2",0,18,
gamma.AllEdgeSigns,000002,p=1,v=2,"2OOO 2 _ ","","1--~2",0,2,
gamma.AllEdgeSigns,000003,p=1,v=2,"2OOO 2 __ ","","1-~~2",0,2,
gamma.AllEdgeSigns,000004,p=1,v=2,"2OOO 2___ ","","1~~~2",0,18,
For each particle that AllEdgeSigns() takes in, it sends out all possible permutations of positive and negative edges:
proton.AllEdgeSigns,000001,p=1,v=3," oBB 2ooA 3 ","","1-2-3",5,13,35,
proton.AllEdgeSigns,000002,p=1,v=3," oBB 2ooA _ _ ","","1~2-3",5,13,35,
proton.AllEdgeSigns,000003,p=1,v=3," oBB 2ooA _ _ ","","1-2~3",5,13,35,
proton.AllEdgeSigns,000004,p=1,v=3," oBB 2ooA __ 2 _ ","","1~2~3",5,13,35,
Most graphs can be expressed identically in multiple ways.
Consider various equivalent ways to label a neutron:
neutron[a]: p=1,v=4," BBC 2oOA ooA 4 ","","1-2-3-1-4",4,14,34,98,
neutron[b]: p=1,v=4," BBC 2oOA ooA 4 ","","1-2-3-1 2-4",4,14,34,98,
neutron[c]: p=1,v=4," BBC 2oOA ooA 4 ","","3-4 2-3-1-2",4,14,34,98,
EnumPureParticles() runs an algorithm that generates all possible valid particles having only loops and positive edges.
This algorithm is mechanical and will therefore repeat equivalent particles having different labels.
Let's generate from v=1 to v=3:
out[13],000001,p=1,v=1," ooo ","","1",3,
out[13],000002,p=1,v=2,"2ooO 2 ","","1-2",4,10,
out[13],000003,p=1,v=2,"2oOO 2 ","","1=2",2,10,
out[13],000004,p=1,v=2,"2OOO 2 ","","1---2",0,18,
out[13],000005,p=1,v=3," oBB 2ooA 3 ","","1-2-3",5,13,35,
out[13],000006,p=1,v=3," oBB 2ooA 3 ","","1-2-3",5,13,35,
out[13],000007,p=1,v=3," BBC oAA ooA 3 ","","1-2=3",3,15,27,
out[13],000008,p=1,v=3," BBC oAA ooA 3 ","","1-2=3",3,15,27,
out[13],000009,p=1,v=3," oBB 2ooA 3 ","","1-2 1-3",5,13,35,
out[13],000010,p=1,v=3,"3oOO 3 ","","1-2-3-1",3,9,27,
out[13],000011,p=1,v=3," BBC oAA ooA 3 ","","1=2-3",3,15,27,
out[13],000012,p=1,v=3," BBC oAA ooA 3 ","","1=2-3",3,15,27,
out[13],000013,p=1,v=3,"2OOB oAA 3 ","","1-2=3-1",1,13,19,
out[13],000014,p=1,v=3," BBC oAA ooA 3 ","","1-2 1=3",3,15,27,
out[13],000015,p=1,v=3," BBC oAA ooA 3 ","","1=2 1-3",3,15,27,
out[13],000016,p=1,v=3,"2OOB oAA 3 ","","1-2-3=1",1,13,19,
out[13],000017,p=1,v=3,"2OOB oAA 3 ","","1=2-3-1",1,13,19,
The DropDupes() operator only emits unique graphs while dropping duplicates.
out[14],000001,p=1,v=1," ooo ","","1",3,
out[14],000002,p=1,v=2,"2ooO 2 ","","1-2",4,10,
out[14],000003,p=1,v=2,"2oOO 2 ","","1=2",2,10,
out[14],000004,p=1,v=2,"2OOO 2 ","","1---2",0,18,
out[14],000005,p=1,v=3," oBB 2ooA 3 ","","1-2-3",5,13,35,
out[14],000006,p=1,v=3," BBC oAA ooA 3 ","","1-2=3",3,15,27,
out[14],000007,p=1,v=3,"3oOO 3 ","","1-2-3-1",3,9,27,
out[14],000008,p=1,v=3,"2OOB oAA 3 ","","1-2=3-1",1,13,19,
We can select by matching Traces:
out[15],000001,p=1,v=2,"2OOO 2 ","","1---2",0,18,
We can also select by min and max vertex count:
out[16],000001,p=1,v=1," ooo ","","1",3,
out[16],000002,p=1,v=2,"2ooO 2 ","","1-2",4,10,
out[16],000003,p=1,v=2,"2oOO 2 ","","1=2",2,10,
out[16],000004,p=1,v=2,"2OOO 2 ","","1---2",0,18,
We can select by + or - loops:
out[17],000001,p=1,v=1," ooo ","","1",3,
out[17],000002,p=1,v=2,"2oOO 2 ","","1=2",2,10,
out[17],000003,p=1,v=3," BBC oAA ooA 3 ","","1-2=3",3,15,27,
out[17],000004,p=1,v=3," BBC oAA ooA 3 ","","1-2=3",3,15,27,
out[17],000005,p=1,v=3,"3oOO 3 ","","1-2-3-1",3,9,27,
out[17],000006,p=1,v=3," BBC oAA ooA 3 ","","1=2-3",3,15,27,
out[17],000007,p=1,v=3," BBC oAA ooA 3 ","","1=2-3",3,15,27,
out[17],000008,p=1,v=3," BBC oAA ooA 3 ","","1-2 1=3",3,15,27,
out[17],000009,p=1,v=3," BBC oAA ooA 3 ","","1=2 1-3",3,15,27,
We can select by + or - loops:
out[18],000001,p=1,v=3," ooB oAC ooB __ 2 ","","1^^-2-3",1,13,7,
out[18],000002,p=1,v=3," oBC 2ooA _ _ ","","1^-2^-3",1,9,7,
out[18],000003,p=1,v=3," ooB oAC ooB __ _ ","","1^^-2^-3",-1,13,-7,
out[18],000004,p=1,v=3,"2ooB oAA 2 _ ","","1^-2-3^",1,5,7,
out[18],000005,p=1,v=3,"2ooC oAB __ _ ","","1^^-2-3^",-1,9,-7,
out[18],000006,p=1,v=3," oBC 2ooA _ _ ","","1-2^-3^",1,9,7,
out[18],000007,p=1,v=3," oBB 2ooA _ 2 _ ","","1^-2^-3^",-1,5,-7,
out[18],000008,p=1,v=3," ooB oAC ooB __ 2 ","","1-2-3^^",1,13,7,
out[18],000009,p=1,v=3,"2ooC oAB __ _ ","","1^-2-3^^",-1,9,-7,
out[18],000010,p=1,v=3," ooB oAC ooB __ _ ","","1-2^-3^^",-1,13,-7,