@turing-machine-js/library-binary-numbers 7.0.0-alpha.1 → 7.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/states.md +94 -80
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@turing-machine-js/library-binary-numbers",
|
|
3
|
-
"version": "7.0.0-alpha.
|
|
3
|
+
"version": "7.0.0-alpha.2",
|
|
4
4
|
"description": "A standard library for working with binary numbers",
|
|
5
5
|
"engines": {
|
|
6
6
|
"npm": ">=7.0.0"
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"numbers"
|
|
28
28
|
],
|
|
29
29
|
"peerDependencies": {
|
|
30
|
-
"@turing-machine-js/machine": "^7.0.0-alpha.
|
|
30
|
+
"@turing-machine-js/machine": "^7.0.0-alpha.2"
|
|
31
31
|
},
|
|
32
32
|
"scripts": {
|
|
33
33
|
"build": "tsc --build --verbose tsconfig.build.json && node ../../scripts/build-node-entries.mjs --package=@turing-machine-js/library-binary-numbers",
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"default": "./dist/index.mjs"
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "163c0f818365241bac2c2de5e489124056703d8b"
|
|
48
48
|
}
|
package/states.md
CHANGED
|
@@ -51,7 +51,7 @@ flowchart TD
|
|
|
51
51
|
|
|
52
52
|
## deleteNumber
|
|
53
53
|
|
|
54
|
-
*
|
|
54
|
+
*5 states; 6 transitions; 1 wrapper (max nesting depth 1); has cycles*
|
|
55
55
|
|
|
56
56
|
```mermaid
|
|
57
57
|
flowchart TD
|
|
@@ -59,18 +59,21 @@ flowchart TD
|
|
|
59
59
|
s0(((halt)))
|
|
60
60
|
s6["deleteNumberInternal"]
|
|
61
61
|
s8["deleteNumber"]
|
|
62
|
+
s7[["goToNumberStart(deleteNumberInternal)"]]
|
|
62
63
|
idle([idle])
|
|
63
|
-
subgraph
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
subgraph w_5["callable subtree of goToNumberStart"]
|
|
65
|
+
s5["goToNumberStart"]
|
|
66
|
+
c5(((halt)))
|
|
66
67
|
end
|
|
67
68
|
idle -. enter .-> s8
|
|
69
|
+
s7 == "call" ==> s5
|
|
70
|
+
w_5 -. "return" .-> s7
|
|
71
|
+
s7 --> s6
|
|
72
|
+
s5 -- "['^'] → [K]/[S]" --> c5
|
|
73
|
+
s5 -- "[*] → [K]/[L]" --> s5
|
|
68
74
|
s6 -- "['$'] → [E]/[S]" --> s0
|
|
69
75
|
s6 -- "[*] → [E]/[R]" --> s6
|
|
70
|
-
|
|
71
|
-
s7 -- "[*] → [K]/[L]" --> s7
|
|
72
|
-
s7 -. onHalt .-> s6
|
|
73
|
-
s8 == "['^']|['1']|['0']|['$'] → [K]/[S]" ==> s7
|
|
76
|
+
s8 -- "['^']|['1']|['0']|['$'] → [K]/[S]" --> s7
|
|
74
77
|
s8 -- "[*] → [K]/[S]" --> s0
|
|
75
78
|
```
|
|
76
79
|
|
|
@@ -91,7 +94,7 @@ flowchart TD
|
|
|
91
94
|
|
|
92
95
|
## invertNumber
|
|
93
96
|
|
|
94
|
-
*
|
|
97
|
+
*5 states; 8 transitions; 1 wrapper (max nesting depth 1); has cycles*
|
|
95
98
|
|
|
96
99
|
```mermaid
|
|
97
100
|
flowchart TD
|
|
@@ -99,26 +102,29 @@ flowchart TD
|
|
|
99
102
|
s0(((halt)))
|
|
100
103
|
s9["invertNumberGoToNumberWithInversion"]
|
|
101
104
|
s11["invertNumber"]
|
|
105
|
+
s10[["goToNumberStart(invertNumberGoToNumberWithInversion)"]]
|
|
102
106
|
idle([idle])
|
|
103
|
-
subgraph
|
|
104
|
-
|
|
105
|
-
|
|
107
|
+
subgraph w_5["callable subtree of goToNumberStart"]
|
|
108
|
+
s5["goToNumberStart"]
|
|
109
|
+
c5(((halt)))
|
|
106
110
|
end
|
|
107
111
|
idle -. enter .-> s11
|
|
112
|
+
s10 == "call" ==> s5
|
|
113
|
+
w_5 -. "return" .-> s10
|
|
114
|
+
s10 --> s9
|
|
115
|
+
s5 -- "['^'] → [K]/[S]" --> c5
|
|
116
|
+
s5 -- "[*] → [K]/[L]" --> s5
|
|
108
117
|
s9 -- "['^'] → [K]/[R]" --> s9
|
|
109
118
|
s9 -- "['1'] → ['0']/[R]" --> s9
|
|
110
119
|
s9 -- "['0'] → ['1']/[R]" --> s9
|
|
111
120
|
s9 -- "['$'] → [K]/[S]" --> s0
|
|
112
|
-
|
|
113
|
-
s10 -- "[*] → [K]/[L]" --> s10
|
|
114
|
-
s10 -. onHalt .-> s9
|
|
115
|
-
s11 == "['^']|['1']|['0']|['$'] → [K]/[S]" ==> s10
|
|
121
|
+
s11 -- "['^']|['1']|['0']|['$'] → [K]/[S]" --> s10
|
|
116
122
|
s11 -- "[*] → [K]/[S]" --> s0
|
|
117
123
|
```
|
|
118
124
|
|
|
119
125
|
## normalizeNumber
|
|
120
126
|
|
|
121
|
-
*
|
|
127
|
+
*7 states; 9 transitions; 1 wrapper (max nesting depth 1); has cycles*
|
|
122
128
|
|
|
123
129
|
```mermaid
|
|
124
130
|
flowchart TD
|
|
@@ -128,21 +134,24 @@ flowchart TD
|
|
|
128
134
|
s12["normalizeNumberPutNewStartSymbol"]
|
|
129
135
|
s13["normalizeNumberMoveNumberStart"]
|
|
130
136
|
s15["normalizeNumber"]
|
|
137
|
+
s14[["goToNumberStart(normalizeNumberMoveNumberStart)"]]
|
|
131
138
|
idle([idle])
|
|
132
|
-
subgraph
|
|
133
|
-
|
|
134
|
-
|
|
139
|
+
subgraph w_5["callable subtree of goToNumberStart"]
|
|
140
|
+
s5["goToNumberStart"]
|
|
141
|
+
c5(((halt)))
|
|
135
142
|
end
|
|
136
143
|
idle -. enter .-> s15
|
|
144
|
+
s14 == "call" ==> s5
|
|
145
|
+
w_5 -. "return" .-> s14
|
|
146
|
+
s14 --> s13
|
|
137
147
|
s1 -- "['$'] → [K]/[S]" --> s0
|
|
138
148
|
s1 -- "[*] → [K]/[R]" --> s1
|
|
149
|
+
s5 -- "['^'] → [K]/[S]" --> c5
|
|
150
|
+
s5 -- "[*] → [K]/[L]" --> s5
|
|
139
151
|
s12 -- "[B] → ['^']/[S]" --> s1
|
|
140
152
|
s13 -- "['^']|['0'] → [E]/[R]" --> s13
|
|
141
153
|
s13 -- "['1']|['$'] → [K]/[L]" --> s12
|
|
142
|
-
|
|
143
|
-
s14 -- "[*] → [K]/[L]" --> s14
|
|
144
|
-
s14 -. onHalt .-> s13
|
|
145
|
-
s15 == "['^']|['1']|['0']|['$'] → [K]/[S]" ==> s14
|
|
154
|
+
s15 -- "['^']|['1']|['0']|['$'] → [K]/[S]" --> s14
|
|
146
155
|
s15 -- "[*] → [K]/[S]" --> s0
|
|
147
156
|
```
|
|
148
157
|
|
|
@@ -174,7 +183,7 @@ flowchart TD
|
|
|
174
183
|
|
|
175
184
|
## minusOne
|
|
176
185
|
|
|
177
|
-
*
|
|
186
|
+
*18 states; 28 transitions; 5 wrappers (max nesting depth 3); has cycles*
|
|
178
187
|
|
|
179
188
|
```mermaid
|
|
180
189
|
flowchart TD
|
|
@@ -185,74 +194,73 @@ flowchart TD
|
|
|
185
194
|
s12["normalizeNumberPutNewStartSymbol"]
|
|
186
195
|
s13["normalizeNumberMoveNumberStart"]
|
|
187
196
|
s15["normalizeNumber"]
|
|
188
|
-
s16["plusOneFillZeros"]
|
|
189
|
-
s17["plusOneAddNumberStart"]
|
|
190
|
-
s18["plusOneCaryOne"]
|
|
191
197
|
s23["minusOne"]
|
|
198
|
+
s10[["goToNumberStart(invertNumberGoToNumberWithInversion)"]]
|
|
199
|
+
s14[["goToNumberStart(normalizeNumberMoveNumberStart)"]]
|
|
200
|
+
s20[["invertNumber(normalizeNumber)"]]
|
|
201
|
+
s21[["plusOne(invertNumber(normalizeNumber))"]]
|
|
202
|
+
s22[["invertNumber(plusOne(invertNumber(normalizeNumber)))"]]
|
|
192
203
|
idle([idle])
|
|
193
|
-
subgraph
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
end
|
|
197
|
-
subgraph w_14["halt frame"]
|
|
198
|
-
s14[["goToNumberStart"]]
|
|
199
|
-
c14(((halt)))
|
|
204
|
+
subgraph w_5["callable subtree of goToNumberStart"]
|
|
205
|
+
s5["goToNumberStart"]
|
|
206
|
+
c5(((halt)))
|
|
200
207
|
end
|
|
201
|
-
subgraph
|
|
202
|
-
|
|
203
|
-
|
|
208
|
+
subgraph w_11["callable subtree of invertNumber"]
|
|
209
|
+
s11["invertNumber"]
|
|
210
|
+
c11(((halt)))
|
|
204
211
|
end
|
|
205
|
-
subgraph
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
c22(((halt)))
|
|
212
|
+
subgraph w_19["callable subtree of plusOne"]
|
|
213
|
+
s16["plusOneFillZeros"]
|
|
214
|
+
s17["plusOneAddNumberStart"]
|
|
215
|
+
s18["plusOneCaryOne"]
|
|
216
|
+
s19["plusOne"]
|
|
217
|
+
c19(((halt)))
|
|
212
218
|
end
|
|
213
219
|
idle -. enter .-> s23
|
|
220
|
+
s10 & s14 == "call" ==> s5
|
|
221
|
+
s20 & s22 == "call" ==> s11
|
|
222
|
+
s21 == "call" ==> s19
|
|
223
|
+
w_5 -. "return" .-> s10 & s14
|
|
224
|
+
w_11 -. "return" .-> s20 & s22
|
|
225
|
+
w_19 -. "return" .-> s21
|
|
226
|
+
s10 --> s9
|
|
227
|
+
s14 --> s13
|
|
228
|
+
s20 --> s15
|
|
229
|
+
s21 --> s20
|
|
230
|
+
s22 --> s21
|
|
214
231
|
s1 -- "['$'] → [K]/[S]" --> s0
|
|
215
232
|
s1 -- "[*] → [K]/[R]" --> s1
|
|
233
|
+
s5 -- "['^'] → [K]/[S]" --> c5
|
|
234
|
+
s5 -- "[*] → [K]/[L]" --> s5
|
|
216
235
|
s9 -- "['^'] → [K]/[R]" --> s9
|
|
217
236
|
s9 -- "['1'] → ['0']/[R]" --> s9
|
|
218
237
|
s9 -- "['0'] → ['1']/[R]" --> s9
|
|
219
238
|
s9 -- "['$'] → [K]/[S]" --> s0
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
s10 -. onHalt .-> s9
|
|
239
|
+
s11 -- "['^']|['1']|['0']|['$'] → [K]/[S]" --> s10
|
|
240
|
+
s11 -- "[*] → [K]/[S]" --> c11
|
|
223
241
|
s12 -- "[B] → ['^']/[S]" --> s1
|
|
224
242
|
s13 -- "['^']|['0'] → [E]/[R]" --> s13
|
|
225
243
|
s13 -- "['1']|['$'] → [K]/[L]" --> s12
|
|
226
|
-
|
|
227
|
-
s14 -- "[*] → [K]/[L]" --> s14
|
|
228
|
-
s14 -. onHalt .-> s13
|
|
229
|
-
s15 == "['^']|['1']|['0']|['$'] → [K]/[S]" ==> s14
|
|
244
|
+
s15 -- "['^']|['1']|['0']|['$'] → [K]/[S]" --> s14
|
|
230
245
|
s15 -- "[*] → [K]/[S]" --> s0
|
|
231
246
|
s16 -- "['1'] → ['0']/[R]" --> s16
|
|
232
|
-
s16 -- "['$'] → [K]/[S]" -->
|
|
247
|
+
s16 -- "['$'] → [K]/[S]" --> c19
|
|
233
248
|
s17 -- "[B] → ['^']/[R]" --> s17
|
|
234
249
|
s17 -- "['1'] → [K]/[R]" --> s16
|
|
235
250
|
s18 -- "['0'] → ['1']/[R]" --> s16
|
|
236
251
|
s18 -- "['1'] → [K]/[L]" --> s18
|
|
237
252
|
s18 -- "['^'] → ['1']/[L]" --> s17
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
s21 -- "['^']|['1']|['0'] → [K]/[R]" --> s21
|
|
242
|
-
s21 -- "['$'] → [K]/[L]" --> s18
|
|
243
|
-
s21 -- "[*] → [K]/[S]" --> c21
|
|
244
|
-
s21 -. onHalt .-> s20
|
|
245
|
-
s22 == "['^']|['1']|['0']|['$'] → [K]/[S]" ==> s10
|
|
246
|
-
s22 -- "[*] → [K]/[S]" --> c22
|
|
247
|
-
s22 -. onHalt .-> s21
|
|
253
|
+
s19 -- "['^']|['1']|['0'] → [K]/[R]" --> s19
|
|
254
|
+
s19 -- "['$'] → [K]/[L]" --> s18
|
|
255
|
+
s19 -- "[*] → [K]/[S]" --> c19
|
|
248
256
|
s23 -- "['^']|['1']|['0'] → [K]/[R]" --> s23
|
|
249
|
-
s23
|
|
257
|
+
s23 -- "['$'] → [K]/[S]" --> s22
|
|
250
258
|
s23 -- "[*] → [K]/[S]" --> s0
|
|
251
259
|
```
|
|
252
260
|
|
|
253
261
|
## minusOneFast
|
|
254
262
|
|
|
255
|
-
*
|
|
263
|
+
*10 states; 15 transitions; 2 wrappers (max nesting depth 1); has cycles*
|
|
256
264
|
|
|
257
265
|
```mermaid
|
|
258
266
|
flowchart TD
|
|
@@ -263,31 +271,37 @@ flowchart TD
|
|
|
263
271
|
s13["normalizeNumberMoveNumberStart"]
|
|
264
272
|
s15["normalizeNumber"]
|
|
265
273
|
s26["minusOneFast"]
|
|
274
|
+
s14[["goToNumberStart(normalizeNumberMoveNumberStart)"]]
|
|
275
|
+
s25[["minusOneFastBorrow(normalizeNumber)"]]
|
|
266
276
|
idle([idle])
|
|
267
|
-
subgraph
|
|
268
|
-
|
|
269
|
-
|
|
277
|
+
subgraph w_5["callable subtree of goToNumberStart"]
|
|
278
|
+
s5["goToNumberStart"]
|
|
279
|
+
c5(((halt)))
|
|
270
280
|
end
|
|
271
|
-
subgraph
|
|
272
|
-
|
|
273
|
-
|
|
281
|
+
subgraph w_24["callable subtree of minusOneFastBorrow"]
|
|
282
|
+
s24["minusOneFastBorrow"]
|
|
283
|
+
c24(((halt)))
|
|
274
284
|
end
|
|
275
285
|
idle -. enter .-> s26
|
|
286
|
+
s14 == "call" ==> s5
|
|
287
|
+
s25 == "call" ==> s24
|
|
288
|
+
w_5 -. "return" .-> s14
|
|
289
|
+
w_24 -. "return" .-> s25
|
|
290
|
+
s14 --> s13
|
|
291
|
+
s25 --> s15
|
|
276
292
|
s1 -- "['$'] → [K]/[S]" --> s0
|
|
277
293
|
s1 -- "[*] → [K]/[R]" --> s1
|
|
294
|
+
s5 -- "['^'] → [K]/[S]" --> c5
|
|
295
|
+
s5 -- "[*] → [K]/[L]" --> s5
|
|
278
296
|
s12 -- "[B] → ['^']/[S]" --> s1
|
|
279
297
|
s13 -- "['^']|['0'] → [E]/[R]" --> s13
|
|
280
298
|
s13 -- "['1']|['$'] → [K]/[L]" --> s12
|
|
281
|
-
|
|
282
|
-
s14 -- "[*] → [K]/[L]" --> s14
|
|
283
|
-
s14 -. onHalt .-> s13
|
|
284
|
-
s15 == "['^']|['1']|['0']|['$'] → [K]/[S]" ==> s14
|
|
299
|
+
s15 -- "['^']|['1']|['0']|['$'] → [K]/[S]" --> s14
|
|
285
300
|
s15 -- "[*] → [K]/[S]" --> s0
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
s25 -. onHalt .-> s15
|
|
301
|
+
s24 -- "['1'] → ['0']/[S]" --> c24
|
|
302
|
+
s24 -- "['0'] → ['1']/[L]" --> s24
|
|
303
|
+
s24 -- "['^'] → [K]/[S]" --> c24
|
|
290
304
|
s26 -- "['^']|['1']|['0'] → [K]/[R]" --> s26
|
|
291
|
-
s26
|
|
305
|
+
s26 -- "['$'] → [K]/[L]" --> s25
|
|
292
306
|
s26 -- "[*] → [K]/[S]" --> s0
|
|
293
307
|
```
|