mapFolding 0.3.10__py3-none-any.whl → 0.3.11__py3-none-any.whl
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.
- mapFolding/someAssemblyRequired/__init__.py +0 -1
- mapFolding/someAssemblyRequired/makeJob.py +5 -5
- mapFolding/someAssemblyRequired/synthesizeNumba.py +805 -0
- mapFolding/syntheticModules/numba_countInitialize.py +10 -6
- mapFolding/syntheticModules/numba_countParallel.py +14 -8
- mapFolding/syntheticModules/numba_countSequential.py +11 -6
- mapFolding/syntheticModules/numba_doTheNeedful.py +10 -20
- mapFolding/theDao.py +36 -19
- mapFolding/theSSOT.py +8 -8
- mapFolding/theSSOTnumba.py +1 -0
- {mapFolding-0.3.10.dist-info → mapFolding-0.3.11.dist-info}/METADATA +3 -1
- {mapFolding-0.3.10.dist-info → mapFolding-0.3.11.dist-info}/RECORD +16 -17
- mapFolding/someAssemblyRequired/synthesizeJobNumba.py +0 -383
- mapFolding/someAssemblyRequired/synthesizeModulesNumba.py +0 -533
- {mapFolding-0.3.10.dist-info → mapFolding-0.3.11.dist-info}/LICENSE +0 -0
- {mapFolding-0.3.10.dist-info → mapFolding-0.3.11.dist-info}/WHEEL +0 -0
- {mapFolding-0.3.10.dist-info → mapFolding-0.3.11.dist-info}/entry_points.txt +0 -0
- {mapFolding-0.3.10.dist-info → mapFolding-0.3.11.dist-info}/top_level.txt +0 -0
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
from
|
|
2
|
-
import
|
|
3
|
-
from
|
|
4
|
-
import
|
|
5
|
-
from
|
|
1
|
+
from mapFolding import indexMy
|
|
2
|
+
from mapFolding import indexTrack
|
|
3
|
+
from numba import uint8
|
|
4
|
+
from numba import jit
|
|
5
|
+
from numpy import ndarray
|
|
6
|
+
from numpy import dtype
|
|
7
|
+
from numpy import integer
|
|
8
|
+
from typing import Any
|
|
9
|
+
from typing import Tuple
|
|
6
10
|
|
|
7
|
-
@
|
|
11
|
+
@jit((uint8[:, :, ::1], uint8[::1], uint8[::1], uint8[:, ::1]), _nrt=True, boundscheck=False, cache=True, error_model='numpy', fastmath=True, forceinline=True, inline='always', looplift=False, no_cfunc_wrapper=False, no_cpython_wrapper=False, nopython=True, parallel=False)
|
|
8
12
|
def countInitialize(connectionGraph: ndarray[Tuple[int, int, int], dtype[integer[Any]]], gapsWhere: ndarray[Tuple[int], dtype[integer[Any]]], my: ndarray[Tuple[int], dtype[integer[Any]]], track: ndarray[Tuple[int, int], dtype[integer[Any]]]) -> None:
|
|
9
13
|
while my[indexMy.leaf1ndex.value]:
|
|
10
14
|
if my[indexMy.leaf1ndex.value] <= 1 or track[indexTrack.leafBelow.value, 0] == 1:
|
|
@@ -1,21 +1,27 @@
|
|
|
1
|
-
from mapFolding import indexMy
|
|
2
|
-
from
|
|
3
|
-
import
|
|
4
|
-
from
|
|
5
|
-
import
|
|
1
|
+
from mapFolding import indexMy
|
|
2
|
+
from mapFolding import indexTrack
|
|
3
|
+
from numba import uint8
|
|
4
|
+
from numba import prange
|
|
5
|
+
from numba import jit
|
|
6
|
+
from numba import int64
|
|
7
|
+
from numpy import ndarray
|
|
8
|
+
from numpy import dtype
|
|
9
|
+
from numpy import integer
|
|
10
|
+
from typing import Any
|
|
11
|
+
from typing import Tuple
|
|
6
12
|
|
|
7
|
-
@
|
|
13
|
+
@jit((uint8[:, :, ::1], int64[::1], uint8[::1], uint8[::1], uint8[:, ::1]), _nrt=True, boundscheck=False, cache=True, error_model='numpy', fastmath=True, forceinline=True, inline='always', looplift=False, no_cfunc_wrapper=True, no_cpython_wrapper=True, nopython=True, parallel=True)
|
|
8
14
|
def countParallel(connectionGraph: ndarray[Tuple[int, int, int], dtype[integer[Any]]], foldGroups: ndarray[Tuple[int], dtype[integer[Any]]], gapsWhere: ndarray[Tuple[int], dtype[integer[Any]]], my: ndarray[Tuple[int], dtype[integer[Any]]], track: ndarray[Tuple[int, int], dtype[integer[Any]]]) -> None:
|
|
9
15
|
gapsWherePARALLEL = gapsWhere.copy()
|
|
10
16
|
myPARALLEL = my.copy()
|
|
11
17
|
trackPARALLEL = track.copy()
|
|
12
18
|
taskDivisionsPrange = myPARALLEL[indexMy.taskDivisions.value]
|
|
13
|
-
for indexSherpa in
|
|
19
|
+
for indexSherpa in prange(taskDivisionsPrange):
|
|
14
20
|
groupsOfFolds: int = 0
|
|
15
21
|
gapsWhere = gapsWherePARALLEL.copy()
|
|
16
22
|
my = myPARALLEL.copy()
|
|
17
|
-
my[indexMy.taskIndex.value] = indexSherpa
|
|
18
23
|
track = trackPARALLEL.copy()
|
|
24
|
+
my[indexMy.taskIndex.value] = indexSherpa
|
|
19
25
|
while my[indexMy.leaf1ndex.value]:
|
|
20
26
|
if my[indexMy.leaf1ndex.value] <= 1 or track[indexTrack.leafBelow.value, 0] == 1:
|
|
21
27
|
if my[indexMy.leaf1ndex.value] > foldGroups[-1]:
|
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
from
|
|
3
|
-
import
|
|
4
|
-
from
|
|
5
|
-
from
|
|
1
|
+
from mapFolding import indexMy
|
|
2
|
+
from mapFolding import indexTrack
|
|
3
|
+
from numba import uint8
|
|
4
|
+
from numba import jit
|
|
5
|
+
from numba import int64
|
|
6
|
+
from numpy import ndarray
|
|
7
|
+
from numpy import dtype
|
|
8
|
+
from numpy import integer
|
|
9
|
+
from typing import Any
|
|
10
|
+
from typing import Tuple
|
|
6
11
|
|
|
7
|
-
@
|
|
12
|
+
@jit((uint8[:, :, ::1], int64[::1], uint8[::1], uint8[::1], uint8[:, ::1]), _nrt=True, boundscheck=False, cache=True, error_model='numpy', fastmath=True, forceinline=True, inline='always', looplift=False, no_cfunc_wrapper=True, no_cpython_wrapper=True, nopython=True, parallel=False)
|
|
8
13
|
def countSequential(connectionGraph: ndarray[Tuple[int, int, int], dtype[integer[Any]]], foldGroups: ndarray[Tuple[int], dtype[integer[Any]]], gapsWhere: ndarray[Tuple[int], dtype[integer[Any]]], my: ndarray[Tuple[int], dtype[integer[Any]]], track: ndarray[Tuple[int, int], dtype[integer[Any]]]) -> None:
|
|
9
14
|
leafBelow = track[indexTrack.leafBelow.value]
|
|
10
15
|
gapRangeStart = track[indexTrack.gapRangeStart.value]
|
|
@@ -1,28 +1,18 @@
|
|
|
1
|
-
from mapFolding import indexMy
|
|
2
|
-
from
|
|
3
|
-
from
|
|
4
|
-
import
|
|
5
|
-
import
|
|
1
|
+
from mapFolding import indexMy
|
|
2
|
+
from numba import uint8
|
|
3
|
+
from numba import jit
|
|
4
|
+
from numba import int64
|
|
5
|
+
from numpy import ndarray
|
|
6
|
+
from numpy import dtype
|
|
7
|
+
from numpy import integer
|
|
8
|
+
from typing import Any
|
|
9
|
+
from typing import Tuple
|
|
6
10
|
from mapFolding.syntheticModules.numba_countInitialize import countInitialize
|
|
7
11
|
from mapFolding.syntheticModules.numba_countParallel import countParallel
|
|
8
12
|
from mapFolding.syntheticModules.numba_countSequential import countSequential
|
|
9
13
|
|
|
10
|
-
@
|
|
14
|
+
@jit((uint8[:, :, ::1], int64[::1], uint8[::1], uint8[::1], uint8[::1], uint8[:, ::1]), _nrt=True, boundscheck=True, cache=True, error_model='python', fastmath=False, forceinline=True, inline='always', looplift=False, no_cfunc_wrapper=False, no_cpython_wrapper=False, nopython=True, parallel=False)
|
|
11
15
|
def doTheNeedful(connectionGraph: ndarray[Tuple[int, int, int], dtype[integer[Any]]], foldGroups: ndarray[Tuple[int], dtype[integer[Any]]], gapsWhere: ndarray[Tuple[int], dtype[integer[Any]]], mapShape: ndarray[Tuple[int], dtype[integer[Any]]], my: ndarray[Tuple[int], dtype[integer[Any]]], track: ndarray[Tuple[int, int], dtype[integer[Any]]]) -> None:
|
|
12
|
-
"""What in tarnation is this stupid module and function?
|
|
13
|
-
|
|
14
|
-
- This function is not in the same module as `countFolds` so that we can delay Numba just-in-time (jit) compilation of this function and the finalization of its settings until we are ready.
|
|
15
|
-
- This function is not in the same module as the next function, which does the hard work, so that we can delay `numba.jit` compilation of the next function.
|
|
16
|
-
- This function is "jitted" but the next function is super jitted, which makes it too arrogant to talk to plebian Python functions. It will, however, reluctantly talk to basic jitted functions.
|
|
17
|
-
- So this module can talk to the next function, and because this module isn't as arrogant, it will talk to the low-class `countFolds` that called this function. Well, with a few restrictions, of course:
|
|
18
|
-
- No `TypedDict`
|
|
19
|
-
- The plebs must clean up their own memory problems
|
|
20
|
-
- No oversized integers
|
|
21
|
-
- No global variables, only global constants
|
|
22
|
-
- It won't accept pleb nonlocal variables either
|
|
23
|
-
- Python "class": they are all inferior to the jit class
|
|
24
|
-
- No `**kwargs`
|
|
25
|
-
- and just a few dozen-jillion other things."""
|
|
26
16
|
countInitialize(connectionGraph, gapsWhere, my, track)
|
|
27
17
|
if my[indexMy.taskDivisions.value] > 0:
|
|
28
18
|
countParallel(connectionGraph, foldGroups, gapsWhere, my, track)
|
mapFolding/theDao.py
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
from mapFolding import indexMy, indexTrack
|
|
2
|
+
from numba import prange
|
|
2
3
|
from numpy import dtype, integer, ndarray
|
|
3
4
|
from typing import Any, Tuple
|
|
4
|
-
import numba
|
|
5
|
-
import numpy
|
|
6
5
|
|
|
7
6
|
def activeGapIncrement(my: ndarray[Tuple[int], dtype[integer[Any]]]) -> None:
|
|
7
|
+
# `.value` is not necessary for this module or most modules. But, this module is transformed into Numba "jitted" functions, and Numba won't use `Enum` for an index without `.value`.
|
|
8
8
|
my[indexMy.gap1ndex.value] += 1
|
|
9
9
|
|
|
10
10
|
def activeLeafGreaterThan0Condition(my: ndarray[Tuple[int], dtype[integer[Any]]]) -> Any:
|
|
@@ -103,9 +103,11 @@ def thereAreComputationDivisionsYouMightSkip(my: ndarray[Tuple[int], dtype[integ
|
|
|
103
103
|
return my[indexMy.leaf1ndex.value] != my[indexMy.taskDivisions.value] or my[indexMy.leafConnectee.value] % my[indexMy.taskDivisions.value] == my[indexMy.taskIndex.value]
|
|
104
104
|
|
|
105
105
|
def countInitialize(connectionGraph: ndarray[Tuple[int, int, int], dtype[integer[Any]]]
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
106
|
+
, gapsWhere: ndarray[Tuple[int] , dtype[integer[Any]]]
|
|
107
|
+
, my: ndarray[Tuple[int] , dtype[integer[Any]]]
|
|
108
|
+
, track: ndarray[Tuple[int, int] , dtype[integer[Any]]]
|
|
109
|
+
) -> None:
|
|
110
|
+
|
|
109
111
|
while activeLeafGreaterThan0Condition(my=my):
|
|
110
112
|
if activeLeafIsTheFirstLeafCondition(my=my) or leafBelowSentinelIs1Condition(track=track):
|
|
111
113
|
findGapsInitializeVariables(my=my, track=track)
|
|
@@ -130,20 +132,27 @@ def countInitialize(connectionGraph: ndarray[Tuple[int, int, int], dtype[integer
|
|
|
130
132
|
return
|
|
131
133
|
|
|
132
134
|
def countParallel(connectionGraph: ndarray[Tuple[int, int, int], dtype[integer[Any]]]
|
|
133
|
-
,
|
|
134
|
-
,
|
|
135
|
-
,
|
|
136
|
-
,
|
|
135
|
+
, foldGroups: ndarray[Tuple[int] , dtype[integer[Any]]]
|
|
136
|
+
, gapsWhere: ndarray[Tuple[int] , dtype[integer[Any]]]
|
|
137
|
+
, my: ndarray[Tuple[int] , dtype[integer[Any]]]
|
|
138
|
+
, track: ndarray[Tuple[int, int] , dtype[integer[Any]]]
|
|
139
|
+
) -> None:
|
|
140
|
+
|
|
137
141
|
gapsWherePARALLEL = gapsWhere.copy()
|
|
138
142
|
myPARALLEL = my.copy()
|
|
139
143
|
trackPARALLEL = track.copy()
|
|
144
|
+
|
|
140
145
|
taskDivisionsPrange = myPARALLEL[indexMy.taskDivisions.value]
|
|
141
|
-
|
|
146
|
+
|
|
147
|
+
for indexSherpa in prange(taskDivisionsPrange):
|
|
142
148
|
groupsOfFolds: int = 0
|
|
149
|
+
|
|
143
150
|
gapsWhere = gapsWherePARALLEL.copy()
|
|
144
151
|
my = myPARALLEL.copy()
|
|
145
|
-
my[indexMy.taskIndex.value] = indexSherpa
|
|
146
152
|
track = trackPARALLEL.copy()
|
|
153
|
+
|
|
154
|
+
my[indexMy.taskIndex.value] = indexSherpa
|
|
155
|
+
|
|
147
156
|
while activeLeafGreaterThan0Condition(my=my):
|
|
148
157
|
if activeLeafIsTheFirstLeafCondition(my=my) or leafBelowSentinelIs1Condition(track=track):
|
|
149
158
|
if activeLeafGreaterThanLeavesTotalCondition(foldGroups=foldGroups, my=my):
|
|
@@ -170,9 +179,16 @@ def countParallel(connectionGraph: ndarray[Tuple[int, int, int], dtype[integer[A
|
|
|
170
179
|
placeLeaf(gapsWhere=gapsWhere, my=my, track=track)
|
|
171
180
|
foldGroups[my[indexMy.taskIndex.value]] = groupsOfFolds
|
|
172
181
|
|
|
173
|
-
def countSequential(connectionGraph: ndarray[Tuple[int, int, int], dtype[integer[Any]]]
|
|
182
|
+
def countSequential( connectionGraph: ndarray[Tuple[int, int, int], dtype[integer[Any]]]
|
|
183
|
+
, foldGroups: ndarray[Tuple[int] , dtype[integer[Any]]]
|
|
184
|
+
, gapsWhere: ndarray[Tuple[int] , dtype[integer[Any]]]
|
|
185
|
+
, my: ndarray[Tuple[int] , dtype[integer[Any]]]
|
|
186
|
+
, track: ndarray[Tuple[int, int] , dtype[integer[Any]]]
|
|
187
|
+
) -> None:
|
|
188
|
+
|
|
174
189
|
groupsOfFolds: int = 0
|
|
175
|
-
doFindGaps = True
|
|
190
|
+
doFindGaps = True # Frankly, I can't figure out if `doFindGaps` is or is not faster. Furthermore, I have a strong feeling there is an even better way.
|
|
191
|
+
|
|
176
192
|
while activeLeafGreaterThan0Condition(my=my):
|
|
177
193
|
if ((doFindGaps := activeLeafIsTheFirstLeafCondition(my=my) or leafBelowSentinelIs1Condition(track=track))
|
|
178
194
|
and activeLeafGreaterThanLeavesTotalCondition(foldGroups=foldGroups, my=my)):
|
|
@@ -199,12 +215,13 @@ def countSequential(connectionGraph: ndarray[Tuple[int, int, int], dtype[integer
|
|
|
199
215
|
foldGroups[my[indexMy.taskIndex.value]] = groupsOfFolds
|
|
200
216
|
|
|
201
217
|
def doTheNeedful(connectionGraph: ndarray[Tuple[int, int, int], dtype[integer[Any]]]
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
218
|
+
, foldGroups: ndarray[Tuple[int] , dtype[integer[Any]]]
|
|
219
|
+
, gapsWhere: ndarray[Tuple[int] , dtype[integer[Any]]]
|
|
220
|
+
, mapShape: ndarray[Tuple[int] , dtype[integer[Any]]]
|
|
221
|
+
, my: ndarray[Tuple[int] , dtype[integer[Any]]]
|
|
222
|
+
, track: ndarray[Tuple[int, int] , dtype[integer[Any]]]
|
|
223
|
+
) -> None:
|
|
224
|
+
|
|
208
225
|
countInitialize(connectionGraph, gapsWhere, my, track)
|
|
209
226
|
|
|
210
227
|
if my[indexMy.taskDivisions.value] > 0:
|
mapFolding/theSSOT.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from collections import defaultdict
|
|
2
2
|
from mapFolding.theSSOTnumba import *
|
|
3
|
-
from numpy import integer
|
|
3
|
+
from numpy import dtype, integer, ndarray
|
|
4
4
|
from types import ModuleType
|
|
5
5
|
from typing import Any, Callable, Dict, Final, Optional, Tuple, Type, TYPE_CHECKING, cast
|
|
6
6
|
import enum
|
|
@@ -73,14 +73,14 @@ def getDispatcherCallable() -> Callable[..., None]:
|
|
|
73
73
|
from mapFolding.syntheticModules import numba_doTheNeedful
|
|
74
74
|
return cast(Callable[..., None], numba_doTheNeedful.doTheNeedful)
|
|
75
75
|
|
|
76
|
-
# NOTE I want this _concept_ to be well implemented and usable everywhere: Python, Numba, Jax, CUDA, idc
|
|
76
|
+
# NOTE I want this _concept_, not necessarily this method, to be well implemented and usable everywhere: Python, Numba, Jax, CUDA, idc
|
|
77
77
|
class computationState(TypedDict):
|
|
78
|
-
connectionGraph:
|
|
79
|
-
foldGroups:
|
|
80
|
-
gapsWhere:
|
|
81
|
-
mapShape:
|
|
82
|
-
my:
|
|
83
|
-
track:
|
|
78
|
+
connectionGraph: ndarray[Tuple[int, int, int], dtype[integer[Any]]]
|
|
79
|
+
foldGroups: ndarray[Tuple[int] , dtype[integer[Any]]]
|
|
80
|
+
gapsWhere: ndarray[Tuple[int] , dtype[integer[Any]]]
|
|
81
|
+
mapShape: ndarray[Tuple[int] , dtype[integer[Any]]]
|
|
82
|
+
my: ndarray[Tuple[int] , dtype[integer[Any]]]
|
|
83
|
+
track: ndarray[Tuple[int, int] , dtype[integer[Any]]]
|
|
84
84
|
|
|
85
85
|
@enum.verify(enum.CONTINUOUS, enum.UNIQUE) if sys.version_info >= (3, 11) else lambda x: x
|
|
86
86
|
class EnumIndices(enum.IntEnum):
|
mapFolding/theSSOTnumba.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: mapFolding
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.11
|
|
4
4
|
Summary: Count distinct ways to fold a map (or a strip of stamps)
|
|
5
5
|
Author-email: Hunter Hogan <HunterHogan@pm.me>
|
|
6
6
|
License: CC-BY-NC-4.0
|
|
@@ -26,6 +26,7 @@ Requires-Dist: numba
|
|
|
26
26
|
Requires-Dist: numpy
|
|
27
27
|
Requires-Dist: Z0Z_tools
|
|
28
28
|
Provides-Extra: testing
|
|
29
|
+
Requires-Dist: autoflake; extra == "testing"
|
|
29
30
|
Requires-Dist: more_itertools; extra == "testing"
|
|
30
31
|
Requires-Dist: mypy; extra == "testing"
|
|
31
32
|
Requires-Dist: pytest-cov; extra == "testing"
|
|
@@ -35,6 +36,7 @@ Requires-Dist: pytest-xdist; extra == "testing"
|
|
|
35
36
|
Requires-Dist: pytest; extra == "testing"
|
|
36
37
|
Requires-Dist: python_minifier; extra == "testing"
|
|
37
38
|
Requires-Dist: types-setuptools; extra == "testing"
|
|
39
|
+
Requires-Dist: updateCitation; extra == "testing"
|
|
38
40
|
|
|
39
41
|
# Algorithm(s) for counting distinct ways to fold a map (or a strip of stamps)
|
|
40
42
|
|
|
@@ -2,9 +2,9 @@ mapFolding/__init__.py,sha256=-6hIljicU0Ql3yWpw8prpLGSQGUCHsNrSuf7zDNs_Ko,1169
|
|
|
2
2
|
mapFolding/basecamp.py,sha256=DISWQIzAF7o7WPUn2QZxMu3Ruwc0zkVPgceeUTUcfqo,3988
|
|
3
3
|
mapFolding/beDRY.py,sha256=Gsj7NEBztbPoKszPibhW6pO9xwjAIPgaW411A_Quwz8,18654
|
|
4
4
|
mapFolding/oeis.py,sha256=2kFIAnBu0Bs4rHceXqs1RyyEBM6A_5fR5562B4ShxVg,12311
|
|
5
|
-
mapFolding/theDao.py,sha256=
|
|
6
|
-
mapFolding/theSSOT.py,sha256=
|
|
7
|
-
mapFolding/theSSOTnumba.py,sha256=
|
|
5
|
+
mapFolding/theDao.py,sha256=7_2oRHzKL4PI6nzOHBGoNfkEiVL38Yg1ccEhPgQpu-w,14386
|
|
6
|
+
mapFolding/theSSOT.py,sha256=oFBmNHq-gJVgGszjY1qk2IWSYGsZgTik7jZvHOfvQcw,9886
|
|
7
|
+
mapFolding/theSSOTnumba.py,sha256=zewnChuGSF3fxfv9RiVdcjjiP7-CmbCAAgD3T7du1hQ,5632
|
|
8
8
|
mapFolding/reference/flattened.py,sha256=6blZ2Y9G8mu1F3gV8SKndPE398t2VVFlsgKlyeJ765A,16538
|
|
9
9
|
mapFolding/reference/hunterNumba.py,sha256=HWndRgsajOf76rbb2LDNEZ6itsdYbyV-k3wgOFjeR6c,7104
|
|
10
10
|
mapFolding/reference/irvineJavaPort.py,sha256=Sj-63Z-OsGuDoEBXuxyjRrNmmyl0d7Yz_XuY7I47Oyg,4250
|
|
@@ -14,16 +14,15 @@ mapFolding/reference/lunnanNumpy.py,sha256=HqDgSwTOZA-G0oophOEfc4zs25Mv4yw2aoF1v
|
|
|
14
14
|
mapFolding/reference/lunnanWhile.py,sha256=7NY2IKO5XBgol0aWWF_Fi-7oTL9pvu_z6lB0TF1uVHk,4063
|
|
15
15
|
mapFolding/reference/rotatedEntryPoint.py,sha256=z0QyDQtnMvXNj5ntWzzJUQUMFm1-xHGLVhtYzwmczUI,11530
|
|
16
16
|
mapFolding/reference/total_countPlus1vsPlusN.py,sha256=usenM8Yn_G1dqlPl7NKKkcnbohBZVZBXTQRm2S3_EDA,8106
|
|
17
|
-
mapFolding/someAssemblyRequired/__init__.py,sha256=
|
|
17
|
+
mapFolding/someAssemblyRequired/__init__.py,sha256=3JnAKXfaYPtmxV_4AnZ6KpCosT_0GFV5Nw7K8sz4-Uo,34
|
|
18
18
|
mapFolding/someAssemblyRequired/getLLVMforNoReason.py,sha256=FtJzw2pZS3A4NimWdZsegXaU-vKeCw8m67kcfb5wvGM,894
|
|
19
|
-
mapFolding/someAssemblyRequired/makeJob.py,sha256=
|
|
20
|
-
mapFolding/someAssemblyRequired/synthesizeJobNumba.py,sha256=fwWjayhHyef9UxpjGDpLKoCvkvwtVMITKczlEedUXpE,19358
|
|
19
|
+
mapFolding/someAssemblyRequired/makeJob.py,sha256=2RtRAHBMDAiOsJpnj1-J1Yso3beQu5hk8bUfgE367Zs,2592
|
|
21
20
|
mapFolding/someAssemblyRequired/synthesizeModuleJAX.py,sha256=TU8lgoMr77pctvvmlfbT-XstQk4j6Jo8JcIuvAiCuMU,1316
|
|
22
|
-
mapFolding/someAssemblyRequired/
|
|
23
|
-
mapFolding/syntheticModules/numba_countInitialize.py,sha256=
|
|
24
|
-
mapFolding/syntheticModules/numba_countParallel.py,sha256=
|
|
25
|
-
mapFolding/syntheticModules/numba_countSequential.py,sha256=
|
|
26
|
-
mapFolding/syntheticModules/numba_doTheNeedful.py,sha256=
|
|
21
|
+
mapFolding/someAssemblyRequired/synthesizeNumba.py,sha256=KjAh32G3TE2_SD9hA2tJvB8l6NvdkZXbVqqobxshoj4,39568
|
|
22
|
+
mapFolding/syntheticModules/numba_countInitialize.py,sha256=5AfZQkyYR5FB4YCe_S09dCGZpmVv0FDP95HXFjZjVgE,4274
|
|
23
|
+
mapFolding/syntheticModules/numba_countParallel.py,sha256=Lyas0W7M74jJctVpuIi1p4o_HQOlduVT-dXmtsGPWb8,5517
|
|
24
|
+
mapFolding/syntheticModules/numba_countSequential.py,sha256=kmVwhBafv26GIFt7mAA1fIcFn3LqNkvNfdXU0P8Yq0s,3675
|
|
25
|
+
mapFolding/syntheticModules/numba_doTheNeedful.py,sha256=xbKeYWACpbVMNitWPQeTr8l-YY6Y228Lu_JRDjsAPfE,1369
|
|
27
26
|
tests/__init__.py,sha256=eg9smg-6VblOr0kisM40CpGnuDtU2JgEEWGDTFVOlW8,57
|
|
28
27
|
tests/conftest.py,sha256=tGRYkHfwVKGoMklBSQiTD8cTu-QL1wUSZd-52Xlnm50,7676
|
|
29
28
|
tests/conftest_tmpRegistry.py,sha256=0XpGe7s2aJcjdEAqKs10vceW0_JAaK-Rp1UoPaL-BIo,2450
|
|
@@ -32,9 +31,9 @@ tests/test_oeis.py,sha256=F89HJ27y54NXcR2wMeBS4ea6R7EaEqpF_GkcU-BrsK4,5694
|
|
|
32
31
|
tests/test_other.py,sha256=UpS0_WUfWA3wONuZwip5AMmzNmmBwYD7reQDZ9ziL_o,12224
|
|
33
32
|
tests/test_tasks.py,sha256=ap_tKjHUN95vjzKo3xzBAQ3kMbdMJ_XXbOv9YIBJ5pY,2826
|
|
34
33
|
tests/test_types.py,sha256=HklNCGThFiqQ89AOMkE7YkcfAPiZE32DpD3GMDUPQVc,177
|
|
35
|
-
mapFolding-0.3.
|
|
36
|
-
mapFolding-0.3.
|
|
37
|
-
mapFolding-0.3.
|
|
38
|
-
mapFolding-0.3.
|
|
39
|
-
mapFolding-0.3.
|
|
40
|
-
mapFolding-0.3.
|
|
34
|
+
mapFolding-0.3.11.dist-info/LICENSE,sha256=NxH5Y8BdC-gNU-WSMwim3uMbID2iNDXJz7fHtuTdXhk,19346
|
|
35
|
+
mapFolding-0.3.11.dist-info/METADATA,sha256=PyhvxPMeeQH30FYdX_MN-hYO4X2siMUarCi-11a4Kx4,7785
|
|
36
|
+
mapFolding-0.3.11.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
37
|
+
mapFolding-0.3.11.dist-info/entry_points.txt,sha256=F3OUeZR1XDTpoH7k3wXuRb3KF_kXTTeYhu5AGK1SiOQ,146
|
|
38
|
+
mapFolding-0.3.11.dist-info/top_level.txt,sha256=1gP2vFaqPwHujGwb3UjtMlLEGN-943VSYFR7V4gDqW8,17
|
|
39
|
+
mapFolding-0.3.11.dist-info/RECORD,,
|