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.
@@ -1,10 +1,14 @@
1
- from typing import Any, Tuple
2
- import numpy
3
- from numpy import dtype, integer, ndarray
4
- import numba
5
- from mapFolding import indexMy, indexTrack
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
- @numba.jit((numba.uint8[:, :, ::1], numba.uint8[::1], numba.uint8[::1], numba.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)
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, indexTrack
2
- from typing import Any, Tuple
3
- import numpy
4
- from numpy import dtype, integer, ndarray
5
- import numba
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
- @numba.jit((numba.uint8[:, :, ::1], numba.int64[::1], numba.uint8[::1], numba.uint8[::1], numba.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)
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 numba.prange(taskDivisionsPrange):
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 numpy
2
- from numpy import dtype, integer, ndarray
3
- import numba
4
- from mapFolding import indexMy, indexTrack
5
- from typing import Any, Tuple
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
- @numba.jit((numba.uint8[:, :, ::1], numba.int64[::1], numba.uint8[::1], numba.uint8[::1], numba.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)
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, indexTrack
2
- from numpy import dtype, integer, ndarray
3
- from typing import Any, Tuple
4
- import numba
5
- import numpy
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
- @numba.jit((numba.uint8[:, :, ::1], numba.int64[::1], numba.uint8[::1], numba.uint8[::1], numba.uint8[::1], numba.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)
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
- , gapsWhere: ndarray[Tuple[int], dtype[integer[Any]]]
107
- , my: ndarray[Tuple[int], dtype[integer[Any]]]
108
- , track: ndarray[Tuple[int, int], dtype[integer[Any]]]) -> None:
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
- , foldGroups: ndarray[Tuple[int], dtype[integer[Any]]]
134
- , gapsWhere: ndarray[Tuple[int], dtype[integer[Any]]]
135
- , my: ndarray[Tuple[int], dtype[integer[Any]]]
136
- , track: ndarray[Tuple[int, int], dtype[integer[Any]]]) -> None:
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
- for indexSherpa in numba.prange(taskDivisionsPrange):
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]]], 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:
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
- , foldGroups: ndarray[Tuple[int], dtype[integer[Any]]]
203
- , gapsWhere: ndarray[Tuple[int], dtype[integer[Any]]]
204
- , mapShape: ndarray[Tuple[int], dtype[integer[Any]]]
205
- , my: ndarray[Tuple[int], dtype[integer[Any]]]
206
- , track: ndarray[Tuple[int, int], dtype[integer[Any]]]
207
- ) -> None:
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: numpy.ndarray[Tuple[int, int, int], numpy.dtype[integer[Any]]]
79
- foldGroups: numpy.ndarray[Tuple[int], numpy.dtype[integer[Any]]]
80
- gapsWhere: numpy.ndarray[Tuple[int], numpy.dtype[integer[Any]]]
81
- mapShape: numpy.ndarray[Tuple[int], numpy.dtype[integer[Any]]]
82
- my: numpy.ndarray[Tuple[int], numpy.dtype[integer[Any]]]
83
- track: numpy.ndarray[Tuple[int, int], numpy.dtype[integer[Any]]]
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):
@@ -1,3 +1,4 @@
1
+ """I have so much truth, I need two files to contain it all!"""
1
2
  """TODO learn how to use this efficiently and effectively to solve problems, be DRY, and have SSOT."""
2
3
  from typing import Final, TYPE_CHECKING, Dict, Any, Union, Callable, Tuple, Any
3
4
  import numba
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: mapFolding
3
- Version: 0.3.10
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=0ySeHdmNXA1X3aKs7tdJ1cQes_rWf9Vp0tdC1zSXf6U,13669
6
- mapFolding/theSSOT.py,sha256=vtqhR1E6wwqVKtGKBY0UBAGRYu6x3gtPBloBzzuZi6M,9826
7
- mapFolding/theSSOTnumba.py,sha256=ex_NnkGd3GWUQVrtWxKzsNmiSm2e091uhVmiZn0aPew,5568
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=O-r-Oy7HK8RtIhXjBo99BPn7kOY-zDo4r1X_B3CYscI,121
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=j62UMwwGV3CtF0j6ByyCxOuRNDCtv3MqVGUEtBSsAfk,2589
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/synthesizeModulesNumba.py,sha256=hg6FOJbaJcsiWrqv6sTqkxaXYkR_TKPyLS8sJGqRQB0,26460
23
- mapFolding/syntheticModules/numba_countInitialize.py,sha256=d_aptX7pbgLxiXJnr-t0W6znDXqX77r8clfKQOTZfBw,4210
24
- mapFolding/syntheticModules/numba_countParallel.py,sha256=W1157Xd8xwLXpRK82OMgL7AyFu0jh70_dHhrZ0mtYIs,5416
25
- mapFolding/syntheticModules/numba_countSequential.py,sha256=Se4FNea9XOEfTVRJkNNdJHpsKu0CcLJGKmqUHvMqmrU,3593
26
- mapFolding/syntheticModules/numba_doTheNeedful.py,sha256=DyfNpKHWSUD6vqL3gcv80eLvKeibtUm8aa-Zu_weuqE,2521
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.10.dist-info/LICENSE,sha256=NxH5Y8BdC-gNU-WSMwim3uMbID2iNDXJz7fHtuTdXhk,19346
36
- mapFolding-0.3.10.dist-info/METADATA,sha256=GYvtSr3qWSvPYIrPAlZuQZmUIxIVt0vkPYIn-X7WOnc,7690
37
- mapFolding-0.3.10.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
38
- mapFolding-0.3.10.dist-info/entry_points.txt,sha256=F3OUeZR1XDTpoH7k3wXuRb3KF_kXTTeYhu5AGK1SiOQ,146
39
- mapFolding-0.3.10.dist-info/top_level.txt,sha256=1gP2vFaqPwHujGwb3UjtMlLEGN-943VSYFR7V4gDqW8,17
40
- mapFolding-0.3.10.dist-info/RECORD,,
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,,