compiled-knowledge 4.0.0a16__cp312-cp312-win_amd64.whl → 4.0.0a18__cp312-cp312-win_amd64.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.
Potentially problematic release.
This version of compiled-knowledge might be problematic. Click here for more details.
- ck/circuit/__init__.py +9 -2
- ck/circuit/_circuit_cy.cp312-win_amd64.pyd +0 -0
- ck/circuit/_circuit_cy.pxd +33 -0
- ck/circuit/{circuit.pyx → _circuit_cy.pyx} +115 -133
- ck/circuit/{circuit_py.py → _circuit_py.py} +16 -8
- ck/circuit_compiler/cython_vm_compiler/_compiler.cp312-win_amd64.pyd +0 -0
- ck/circuit_compiler/cython_vm_compiler/_compiler.pyx +88 -60
- ck/circuit_compiler/named_circuit_compilers.py +1 -1
- ck/pgm_compiler/factor_elimination.py +23 -13
- ck/pgm_compiler/support/circuit_table/__init__.py +9 -2
- ck/pgm_compiler/support/circuit_table/_circuit_table_cy.cp312-win_amd64.pyd +0 -0
- ck/pgm_compiler/support/circuit_table/_circuit_table_cy.pyx +332 -0
- ck/pgm_compiler/support/circuit_table/_circuit_table_cy_cpp_verion.pyx +601 -0
- ck/pgm_compiler/support/circuit_table/_circuit_table_cy_minimal_version.pyx +311 -0
- ck/pgm_compiler/support/circuit_table/{circuit_table.pyx → _circuit_table_cy_v4.0.0a17.pyx} +9 -9
- ck/pgm_compiler/support/circuit_table/{circuit_table_py.py → _circuit_table_py.py} +80 -45
- ck/pgm_compiler/support/clusters.py +16 -4
- ck/pgm_compiler/support/factor_tables.py +1 -1
- ck/pgm_compiler/support/join_tree.py +67 -10
- ck/pgm_compiler/support/named_compiler_maker.py +12 -2
- ck/pgm_compiler/variable_elimination.py +2 -0
- ck/utils/iter_extras.py +8 -1
- ck_demos/pgm_compiler/demo_compiler_dump.py +10 -0
- ck_demos/pgm_compiler/time_fe_compiler.py +93 -0
- ck_demos/utils/compare.py +5 -1
- {compiled_knowledge-4.0.0a16.dist-info → compiled_knowledge-4.0.0a18.dist-info}/METADATA +1 -1
- {compiled_knowledge-4.0.0a16.dist-info → compiled_knowledge-4.0.0a18.dist-info}/RECORD +30 -29
- {compiled_knowledge-4.0.0a16.dist-info → compiled_knowledge-4.0.0a18.dist-info}/WHEEL +1 -1
- ck/circuit/circuit.c +0 -38861
- ck/circuit/circuit.cp312-win_amd64.pyd +0 -0
- ck/circuit/circuit_node.pyx +0 -138
- ck/circuit_compiler/cython_vm_compiler/_compiler.c +0 -17373
- ck/pgm_compiler/support/circuit_table/circuit_table.c +0 -16042
- ck/pgm_compiler/support/circuit_table/circuit_table.cp312-win_amd64.pyd +0 -0
- {compiled_knowledge-4.0.0a16.dist-info → compiled_knowledge-4.0.0a18.dist-info}/licenses/LICENSE.txt +0 -0
- {compiled_knowledge-4.0.0a16.dist-info → compiled_knowledge-4.0.0a18.dist-info}/top_level.txt +0 -0
|
@@ -15,6 +15,11 @@ from ck.utils.np_extras import NDArrayFloat64
|
|
|
15
15
|
|
|
16
16
|
@dataclass
|
|
17
17
|
class JoinTree:
|
|
18
|
+
"""
|
|
19
|
+
This is a recursive data structure representing a join-tree.
|
|
20
|
+
Each node in the join-tree is represented by a JoinTree object.
|
|
21
|
+
"""
|
|
22
|
+
|
|
18
23
|
# The PGM that this join tree is for.
|
|
19
24
|
pgm: PGM
|
|
20
25
|
|
|
@@ -40,6 +45,12 @@ class JoinTree:
|
|
|
40
45
|
|
|
41
46
|
def max_cluster_weighted_size(self, rv_log_sizes: Sequence[float]) -> float:
|
|
42
47
|
"""
|
|
48
|
+
Calculate the maximum cluster weighted size for this cluster and its children.
|
|
49
|
+
|
|
50
|
+
Args:
|
|
51
|
+
rv_log_sizes: is an array of random variable sizes, such that
|
|
52
|
+
for a random variable `rv`, `rv_log_sizes[rv.idx] = log2(len(rv))`.
|
|
53
|
+
|
|
43
54
|
Returns:
|
|
44
55
|
the maximum `log2` over self and all children, recursively.
|
|
45
56
|
"""
|
|
@@ -82,8 +93,8 @@ JoinTreeAlgorithm = Callable[[PGM], JoinTree]
|
|
|
82
93
|
|
|
83
94
|
def _join_tree_algorithm(pgm_to_clusters: ClusterAlgorithm) -> JoinTreeAlgorithm:
|
|
84
95
|
"""
|
|
85
|
-
Helper function for creating a standard JoinTreeAlgorithm
|
|
86
|
-
a ClusterAlgorithm.
|
|
96
|
+
Helper function for creating a standard JoinTreeAlgorithm
|
|
97
|
+
from a ClusterAlgorithm.
|
|
87
98
|
|
|
88
99
|
Args:
|
|
89
100
|
pgm_to_clusters: The clusters method to use.
|
|
@@ -112,14 +123,17 @@ MIN_TRADITIONAL_WEIGHTED_FILL: JoinTreeAlgorithm = _join_tree_algorithm(min_trad
|
|
|
112
123
|
|
|
113
124
|
def clusters_to_join_tree(clusters: Clusters) -> JoinTree:
|
|
114
125
|
"""
|
|
115
|
-
Construct a join tree
|
|
126
|
+
Construct a join tree from the given random variable clusters.
|
|
116
127
|
|
|
117
128
|
A join tree is formed by finding a minimum spanning tree over the clusters
|
|
118
|
-
where the cost between a pair of
|
|
119
|
-
|
|
129
|
+
where the cost between a pair of clusters is the number of random variables
|
|
130
|
+
in common (using separator state space size to break ties).
|
|
120
131
|
|
|
121
132
|
Args:
|
|
122
|
-
clusters: the clusters that resulted from graph clusters of
|
|
133
|
+
clusters: the clusters that resulted from graph clusters of a PGM.
|
|
134
|
+
|
|
135
|
+
Returns:
|
|
136
|
+
a JoinTree.
|
|
123
137
|
"""
|
|
124
138
|
pgm: PGM = clusters.pgm
|
|
125
139
|
cluster_sets: List[Set[int]] = clusters.clusters
|
|
@@ -170,6 +184,19 @@ def _make_spanning_tree_small_root(cost: NDArrayFloat64, clusters: List[Set[int]
|
|
|
170
184
|
"""
|
|
171
185
|
Construct a minimum spanning tree over the clusters, where the root is the cluster with
|
|
172
186
|
the smallest number of random variable.
|
|
187
|
+
|
|
188
|
+
Args:
|
|
189
|
+
cost: is an N x N matrix of costs between N clusters.
|
|
190
|
+
clusters: is a list of N clusters, each cluster is a set of random variable indices.
|
|
191
|
+
|
|
192
|
+
Returns:
|
|
193
|
+
(spanning_tree, root_index)
|
|
194
|
+
|
|
195
|
+
spanning_tree: is a spanning tree represented as a list of nodes, the list is coindexed with
|
|
196
|
+
the given cost matrix, each node is a list of children, each child being
|
|
197
|
+
represented as an index into the list of nodes.
|
|
198
|
+
|
|
199
|
+
root_index: is the index the chosen root of the spanning tree.
|
|
173
200
|
"""
|
|
174
201
|
root_custer_index: int = 0
|
|
175
202
|
root_size: int = len(clusters[root_custer_index])
|
|
@@ -185,10 +212,22 @@ def _make_spanning_tree_small_root(cost: NDArrayFloat64, clusters: List[Set[int]
|
|
|
185
212
|
def _make_spanning_tree_arbitrary_root(cost: NDArrayFloat64) -> Tuple[List[List[int]], int]:
|
|
186
213
|
"""
|
|
187
214
|
Construct a minimum spanning tree over the clusters, starting at an arbitrary root.
|
|
215
|
+
|
|
216
|
+
Args:
|
|
217
|
+
cost: is an N x N matrix of costs between N clusters.
|
|
218
|
+
|
|
219
|
+
Returns:
|
|
220
|
+
(spanning_tree, root_index)
|
|
221
|
+
|
|
222
|
+
spanning_tree: is a spanning tree represented as a list of nodes, the list is coindexed with
|
|
223
|
+
the given cost matrix, each node is a list of children, each child being
|
|
224
|
+
represented as an index into the list of nodes.
|
|
225
|
+
|
|
226
|
+
root_index: is the index the chosen root of the spanning tree.
|
|
188
227
|
"""
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
return
|
|
228
|
+
root_index: int = 0
|
|
229
|
+
spanning_tree: List[List[int]] = _make_spanning_tree_at_root(cost, root_index)
|
|
230
|
+
return spanning_tree, root_index
|
|
192
231
|
|
|
193
232
|
|
|
194
233
|
def _make_spanning_tree_at_root(
|
|
@@ -202,6 +241,12 @@ def _make_spanning_tree_at_root(
|
|
|
202
241
|
cost: and nxn matrix where n is the number of clusters and cost[i, j]
|
|
203
242
|
gives the cost between clusters i and j.
|
|
204
243
|
root_custer_index: a nominated root cluster to be the root of the tree.
|
|
244
|
+
|
|
245
|
+
Returns:
|
|
246
|
+
a spanning tree represented as a list of nodes, the list is coindexed with
|
|
247
|
+
the given cost matrix, each node is a list of children, each child being
|
|
248
|
+
represented as an index into the list of nodes. The root node is the
|
|
249
|
+
index `root_custer_index` as passed to this function.
|
|
205
250
|
"""
|
|
206
251
|
number_of_clusters: int = cost.shape[0]
|
|
207
252
|
|
|
@@ -257,7 +302,19 @@ def _form_join_tree_r(
|
|
|
257
302
|
cluster_factors: List[List[Factor]],
|
|
258
303
|
) -> JoinTree:
|
|
259
304
|
"""
|
|
260
|
-
Recursively build the
|
|
305
|
+
Recursively build a JoinTree from the spanning tree `children`.
|
|
306
|
+
This function merely pull the corresponding component from the
|
|
307
|
+
arguments to make a JoinTree object, doing this recursively
|
|
308
|
+
for the children.
|
|
309
|
+
|
|
310
|
+
Args:
|
|
311
|
+
pgm: the source PGM for the join tree.
|
|
312
|
+
cluster_index: index for the node we are processing (current root). This
|
|
313
|
+
indexes into `children`, `clusters`, and `cluster_factors`.
|
|
314
|
+
parent_cluster: set of random variable indices in the parent cluster.
|
|
315
|
+
children: list of spanning tree nodes, as per `_make_spanning_tree_at_root` result.
|
|
316
|
+
clusters: list of clusters, each cluster is a set of random variable indices.
|
|
317
|
+
cluster_factors: assignment of factors to clusters.
|
|
261
318
|
"""
|
|
262
319
|
cluster: Set[int] = clusters[cluster_index]
|
|
263
320
|
factors: List[Factor] = cluster_factors[cluster_index]
|
|
@@ -12,6 +12,7 @@ def get_compiler(module: ModuleType, **kwargs) -> Tuple[PGMCompiler]:
|
|
|
12
12
|
|
|
13
13
|
Args:
|
|
14
14
|
module: module containing `compile_pgm` function.
|
|
15
|
+
kwargs: are additional keyword arguments to `compile_pgm`.
|
|
15
16
|
|
|
16
17
|
Returns:
|
|
17
18
|
a singleton tuple containing PGMCompiler function.
|
|
@@ -24,10 +25,19 @@ def get_compiler(module: ModuleType, **kwargs) -> Tuple[PGMCompiler]:
|
|
|
24
25
|
return compiler,
|
|
25
26
|
|
|
26
27
|
|
|
27
|
-
def get_compiler_algorithm(module, algorithm: str, **kwargs) -> Tuple[PGMCompiler]:
|
|
28
|
+
def get_compiler_algorithm(module: ModuleType, algorithm: str, **kwargs) -> Tuple[PGMCompiler]:
|
|
28
29
|
"""
|
|
29
30
|
Helper function to create a named PGM compiler, with a named algorithm argument.
|
|
31
|
+
|
|
32
|
+
Args:
|
|
33
|
+
module: module containing `compile_pgm` function.
|
|
34
|
+
algorithm: name of the algorithm, to pass as keyword argument to `compile_pgm`.
|
|
35
|
+
The algorithm should be declared in the module.
|
|
36
|
+
kwargs: are additional keyword arguments to `compile_pgm`.
|
|
37
|
+
|
|
38
|
+
Returns:
|
|
39
|
+
a singleton tuple containing PGMCompiler function.
|
|
30
40
|
"""
|
|
31
|
-
return get_compiler(module, algorithm=getattr(module, algorithm, **kwargs)
|
|
41
|
+
return get_compiler(module, algorithm=getattr(module, algorithm), **kwargs)
|
|
32
42
|
|
|
33
43
|
|
|
@@ -51,6 +51,8 @@ def compile_pgm(
|
|
|
51
51
|
|
|
52
52
|
elimination_order: Sequence[int] = algorithm(pgm).eliminated
|
|
53
53
|
|
|
54
|
+
# Eliminate rvs from the factor tables according to the
|
|
55
|
+
# elimination order.
|
|
54
56
|
cur_tables: List[CircuitTable] = list(factor_tables.tables)
|
|
55
57
|
for rv_idx in elimination_order:
|
|
56
58
|
next_tables: List[CircuitTable] = []
|
ck/utils/iter_extras.py
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
A module with extra iteration functions.
|
|
3
3
|
"""
|
|
4
4
|
from functools import reduce as _reduce
|
|
5
|
-
from itertools import combinations, chain
|
|
5
|
+
from itertools import combinations, chain, islice
|
|
6
6
|
from operator import mul as _mul
|
|
7
7
|
from typing import Iterable, Tuple, Sequence, TypeVar
|
|
8
8
|
|
|
@@ -154,3 +154,10 @@ def first(items: Iterable[_T]) -> _T:
|
|
|
154
154
|
Return the first element of the iterable.
|
|
155
155
|
"""
|
|
156
156
|
return next(iter(items))
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
def take(iterable: Iterable[_T], n: int) -> Iterable[_T]:
|
|
160
|
+
"""
|
|
161
|
+
Take the first n elements of the iterable.
|
|
162
|
+
"""
|
|
163
|
+
return islice(iterable, n)
|
|
@@ -9,6 +9,16 @@ from ck.pgm_compiler.support.join_tree import JoinTree, clusters_to_join_tree
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
def main() -> None:
|
|
12
|
+
"""
|
|
13
|
+
This demo shows the full compilation chain for factor elimination.
|
|
14
|
+
|
|
15
|
+
Process:
|
|
16
|
+
Rain example -> PGM
|
|
17
|
+
min_degree -> Clusters
|
|
18
|
+
clusters_to_join_tree -> JoinTree
|
|
19
|
+
join_tree_to_circuit -> PGMCircuit
|
|
20
|
+
default circuit compiler -> WMCProgram
|
|
21
|
+
"""
|
|
12
22
|
pgm: PGM = example.Rain()
|
|
13
23
|
|
|
14
24
|
print(f'PGM {pgm.name!r}')
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
from ck import example
|
|
2
|
+
from ck.circuit import CircuitNode, Circuit
|
|
3
|
+
from ck.circuit_compiler import DEFAULT_CIRCUIT_COMPILER
|
|
4
|
+
from ck.pgm import PGM
|
|
5
|
+
from ck.pgm_circuit import PGMCircuit
|
|
6
|
+
from ck.pgm_compiler.factor_elimination import DEFAULT_PRODUCT_SEARCH_LIMIT, _circuit_tables_from_join_tree
|
|
7
|
+
from ck.pgm_compiler.support.circuit_table import CircuitTable
|
|
8
|
+
from ck.pgm_compiler.support.clusters import min_degree, Clusters
|
|
9
|
+
from ck.pgm_compiler.support.factor_tables import FactorTables, make_factor_tables
|
|
10
|
+
from ck.pgm_compiler.support.join_tree import JoinTree, clusters_to_join_tree
|
|
11
|
+
from ck.program import ProgramBuffer, RawProgram
|
|
12
|
+
from ck_demos.utils.stop_watch import timer
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def main() -> None:
|
|
16
|
+
"""
|
|
17
|
+
Time components of the compilation chain for factor elimination.
|
|
18
|
+
|
|
19
|
+
Process:
|
|
20
|
+
example -> PGM
|
|
21
|
+
min_degree -> Clusters
|
|
22
|
+
clusters_to_join_tree -> JoinTree
|
|
23
|
+
join_tree_to_circuit -> PGMCircuit
|
|
24
|
+
default circuit compiler -> RawProgram
|
|
25
|
+
execute program
|
|
26
|
+
"""
|
|
27
|
+
with timer('make PGM') as make_pgm_time:
|
|
28
|
+
pgm: PGM = example.Mildew()
|
|
29
|
+
|
|
30
|
+
with timer('make clusters') as make_clusters_time:
|
|
31
|
+
clusters: Clusters = min_degree(pgm)
|
|
32
|
+
|
|
33
|
+
with timer('make join tree') as make_join_tree_time:
|
|
34
|
+
join_tree: JoinTree = clusters_to_join_tree(clusters)
|
|
35
|
+
|
|
36
|
+
with timer('make factor tables') as make_factor_tables_time:
|
|
37
|
+
factor_tables: FactorTables = make_factor_tables(
|
|
38
|
+
pgm=pgm,
|
|
39
|
+
const_parameters=True,
|
|
40
|
+
multiply_indicators=True,
|
|
41
|
+
pre_prune_factor_tables=False,
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
with timer('make circuit tables') as make_circuit_tables_time:
|
|
45
|
+
top_table: CircuitTable = _circuit_tables_from_join_tree(
|
|
46
|
+
factor_tables,
|
|
47
|
+
join_tree,
|
|
48
|
+
DEFAULT_PRODUCT_SEARCH_LIMIT,
|
|
49
|
+
)
|
|
50
|
+
top: CircuitNode = top_table.top()
|
|
51
|
+
circuit: Circuit = top.circuit
|
|
52
|
+
|
|
53
|
+
orig_size = circuit.number_of_op_nodes
|
|
54
|
+
with timer('remove unreachable nodes') as remove_unreachable_time:
|
|
55
|
+
circuit.remove_unreachable_op_nodes(top)
|
|
56
|
+
print(f' saving {orig_size - circuit.number_of_op_nodes:10,}')
|
|
57
|
+
print(f' leaving {circuit.number_of_op_nodes:10,}')
|
|
58
|
+
|
|
59
|
+
with timer('make PGMCircuit') as make_pgm_time:
|
|
60
|
+
pgm_circuit = PGMCircuit(
|
|
61
|
+
rvs=tuple(pgm.rvs),
|
|
62
|
+
conditions=(),
|
|
63
|
+
circuit_top=top,
|
|
64
|
+
number_of_indicators=factor_tables.number_of_indicators,
|
|
65
|
+
number_of_parameters=factor_tables.number_of_parameters,
|
|
66
|
+
slot_map=factor_tables.slot_map,
|
|
67
|
+
parameter_values=factor_tables.parameter_values,
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
with timer('make program') as make_program_time:
|
|
71
|
+
program: RawProgram = DEFAULT_CIRCUIT_COMPILER(pgm_circuit.circuit_top)
|
|
72
|
+
|
|
73
|
+
program_buffer = ProgramBuffer(program)
|
|
74
|
+
with timer('execute program') as execute_program_time:
|
|
75
|
+
program_buffer.compute()
|
|
76
|
+
|
|
77
|
+
print()
|
|
78
|
+
print(f'make PGM {make_pgm_time.seconds():5.2f}')
|
|
79
|
+
print(f'make clusters {make_clusters_time.seconds():5.2f}')
|
|
80
|
+
print(f'make join_tree {make_join_tree_time.seconds():5.2f}')
|
|
81
|
+
print(f'make factor tables {make_factor_tables_time.seconds():5.2f}')
|
|
82
|
+
print(f'make circuit tables {make_circuit_tables_time.seconds():5.2f}')
|
|
83
|
+
print(f'remove unreachables {remove_unreachable_time.seconds():5.2f}')
|
|
84
|
+
print(f'make PGM circuit {make_pgm_time.seconds():5.2f}')
|
|
85
|
+
print(f'make program {make_program_time.seconds():5.2f}')
|
|
86
|
+
print(f'execute program {execute_program_time.seconds():5.2f}')
|
|
87
|
+
|
|
88
|
+
print()
|
|
89
|
+
print('Done.')
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
if __name__ == '__main__':
|
|
93
|
+
main()
|
ck_demos/utils/compare.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import gc
|
|
1
2
|
from typing import Sequence
|
|
2
3
|
|
|
3
4
|
from ck.circuit_compiler import NamedCircuitCompiler
|
|
@@ -88,6 +89,7 @@ def compare(
|
|
|
88
89
|
print(f'{"":{col_cct_ops}}', end=sep)
|
|
89
90
|
print(f'{"":{col_pgm_compile_time}}', end=sep)
|
|
90
91
|
else:
|
|
92
|
+
gc.collect()
|
|
91
93
|
time.start()
|
|
92
94
|
pgm_cct: PGMCircuit = pgm_compiler(pgm)
|
|
93
95
|
time.stop()
|
|
@@ -97,6 +99,7 @@ def compare(
|
|
|
97
99
|
prev_pgm = pgm
|
|
98
100
|
prev_pgm_compiler = pgm_compiler
|
|
99
101
|
|
|
102
|
+
gc.collect()
|
|
100
103
|
time.start()
|
|
101
104
|
# `pgm_cct` will always be set but the IDE can't work that out.
|
|
102
105
|
# noinspection PyUnboundLocalVariable
|
|
@@ -104,11 +107,12 @@ def compare(
|
|
|
104
107
|
time.stop()
|
|
105
108
|
print(f'{time.seconds():{col_cct_compile_time}{comma}.3f}', end=sep)
|
|
106
109
|
|
|
110
|
+
gc.collect()
|
|
107
111
|
time.start()
|
|
108
112
|
for _ in range(1000):
|
|
109
113
|
wmc.compute()
|
|
110
114
|
time.stop()
|
|
111
|
-
print(f'{time.seconds() * 1000:{col_execute_time}{comma}.3f}', end=
|
|
115
|
+
print(f'{time.seconds() * 1000:{col_execute_time}{comma}.3f}', end='')
|
|
112
116
|
except Exception as err:
|
|
113
117
|
print(repr(err), end='')
|
|
114
118
|
print()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: compiled-knowledge
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.0a18
|
|
4
4
|
Summary: A Python package for compiling and querying discrete probabilistic graphical models.
|
|
5
5
|
Author-email: Barry Drake <barry@compiledknowledge.org>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
ck/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
2
|
ck/pgm.py,sha256=rbqgP-clfSvgpzUXxVjk_6SdM9neHmpChku6qpyeidk,120700
|
|
3
|
-
ck/circuit/__init__.py,sha256=
|
|
4
|
-
ck/circuit/
|
|
5
|
-
ck/circuit/
|
|
6
|
-
ck/circuit/
|
|
7
|
-
ck/circuit/
|
|
8
|
-
ck/circuit/circuit_py.py,sha256=_k8H1yZsfp2vERkX_CIo8VxxOf1ICw2zL8i2ckoaSlE,28127
|
|
3
|
+
ck/circuit/__init__.py,sha256=7ZSBPV6HGKTJ9a_jSAgUbPNOZVHGaeR-e0H1-6cA0HY,621
|
|
4
|
+
ck/circuit/_circuit_cy.cp312-win_amd64.pyd,sha256=9AhhezX-NSuOC0fItKegFsoE3trossTXenTyMzW4d_U,252928
|
|
5
|
+
ck/circuit/_circuit_cy.pxd,sha256=hWdx4rcPS2iwHr6NBTjB38LAJZiLktTXhcoVqmGpwkk,1098
|
|
6
|
+
ck/circuit/_circuit_cy.pyx,sha256=F9ut2mI92pIvBVAaetJqFpxbsBx--mNvHqVCTQ6Ad7k,27622
|
|
7
|
+
ck/circuit/_circuit_py.py,sha256=vN8lg01RyjA_YUphjx1dr0Uj4ql4seczRcoCaH7ylAw,28341
|
|
9
8
|
ck/circuit/tmp_const.py,sha256=dG9FuGfoAG5qjYG1rNwekqKiea_KmVfxHMTOgCPbBiQ,2372
|
|
10
9
|
ck/circuit_compiler/__init__.py,sha256=T0Igyp5jPgnIXv4oRcIYhmsOdcNOb3L4Za6dK6eYk7g,132
|
|
11
10
|
ck/circuit_compiler/circuit_compiler.py,sha256=8BLB8DUnPbpl5PXZsIopydPbItytdn2rzRfM2U1EC84,1018
|
|
12
11
|
ck/circuit_compiler/interpret_compiler.py,sha256=Vlu4VnZ_VWGoBb4yx6wuJOlhJ2nGVhkzQpIyJ8xyjbI,7350
|
|
13
12
|
ck/circuit_compiler/llvm_compiler.py,sha256=ejeNPkO5Og2FyjjyA5JAexxUl1f8IJ6mwU5Ng5EafAA,14009
|
|
14
13
|
ck/circuit_compiler/llvm_vm_compiler.py,sha256=I46_XV5FrClDKO06zIjn8T3ME5XQ9RYJ_1aAE8e_YzM,21873
|
|
15
|
-
ck/circuit_compiler/named_circuit_compilers.py,sha256=
|
|
14
|
+
ck/circuit_compiler/named_circuit_compilers.py,sha256=snlD3JnhAZC-atKpf5GD0v4CGdvj2_ZhCZ3O-tsxzxc,2284
|
|
16
15
|
ck/circuit_compiler/cython_vm_compiler/__init__.py,sha256=pEAwTleuZgdYhTAQMea2f9YsFK54eoNbZSbrWkW8aeE,49
|
|
17
|
-
ck/circuit_compiler/cython_vm_compiler/_compiler.
|
|
18
|
-
ck/circuit_compiler/cython_vm_compiler/_compiler.
|
|
19
|
-
ck/circuit_compiler/cython_vm_compiler/_compiler.pyx,sha256=hHuNo99TbodNpWgQwQ8qzW1cTwGXZj5SW0tKAo9u6cw,7718
|
|
16
|
+
ck/circuit_compiler/cython_vm_compiler/_compiler.cp312-win_amd64.pyd,sha256=KXGhDoWnKSTxyi66ojn2FDlYL5ZqkR8bwQhsA4aLYog,82432
|
|
17
|
+
ck/circuit_compiler/cython_vm_compiler/_compiler.pyx,sha256=L90JvxOXJq1eXy11ykWaFNcWU_p0pyfDVm9A4LKBjr8,8583
|
|
20
18
|
ck/circuit_compiler/cython_vm_compiler/cython_vm_compiler.py,sha256=yUkBNr5HnoVXyWjJdXHp8lyAXFiIDYapvMvHtzKuhI8,3140
|
|
21
19
|
ck/circuit_compiler/support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
20
|
ck/circuit_compiler/support/circuit_analyser.py,sha256=jM0QW2flucvpc6fqcT8mL00ZA0rPTUhaE-yFfFQMXgE,2722
|
|
@@ -74,23 +72,25 @@ ck/pgm_circuit/wmc_program.py,sha256=WtABU74FOCCJuKRCoDL4CyZ4CJXFmt9RSxiNNHsOhRY
|
|
|
74
72
|
ck/pgm_circuit/support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
75
73
|
ck/pgm_circuit/support/compile_circuit.py,sha256=RuYzDCRpfXZcY96sSW8v7x6ev9ScQ4IZkVqMdJUoMp8,3484
|
|
76
74
|
ck/pgm_compiler/__init__.py,sha256=XCK1AWBBB9UYi6kbFnxMFzBL9a25EWfHnz_yn3ZKYuM,112
|
|
77
|
-
ck/pgm_compiler/factor_elimination.py,sha256=
|
|
75
|
+
ck/pgm_compiler/factor_elimination.py,sha256=6iMh_NdOQh4D5cuo8q1y7yUuj3glnM9I0OJ9vlJAGqU,13807
|
|
78
76
|
ck/pgm_compiler/named_pgm_compilers.py,sha256=kYMomYlsW7xbL0hzTWQb41EckkugaCfuYHUJqbEWBBs,3421
|
|
79
77
|
ck/pgm_compiler/pgm_compiler.py,sha256=F44PtlwqMG0FS6KzOYKZuyZT6olWAVtBH-QXZPzz4O8,616
|
|
80
78
|
ck/pgm_compiler/recursive_conditioning.py,sha256=U0NdIns8yLQtYR_MOf1w__CChpOMDlgRCL2nFRhtnzU,7936
|
|
81
|
-
ck/pgm_compiler/variable_elimination.py,sha256=
|
|
79
|
+
ck/pgm_compiler/variable_elimination.py,sha256=irAZ5b0vRGL_WGq7UrfQpMXhYBZO5YI2U_jf1-YV92Q,3547
|
|
82
80
|
ck/pgm_compiler/ace/__init__.py,sha256=BkZXAF32Pk8QU7jhkuKvHqtsFasPjf8gxiZbyrGDDbQ,82
|
|
83
81
|
ck/pgm_compiler/ace/ace.py,sha256=iyDacqArXW1cVP6tBabxRmmLWIHabuPkCoq2tWBm2ww,10397
|
|
84
82
|
ck/pgm_compiler/support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
85
|
-
ck/pgm_compiler/support/clusters.py,sha256=
|
|
86
|
-
ck/pgm_compiler/support/factor_tables.py,sha256=
|
|
87
|
-
ck/pgm_compiler/support/join_tree.py,sha256=
|
|
88
|
-
ck/pgm_compiler/support/named_compiler_maker.py,sha256=
|
|
89
|
-
ck/pgm_compiler/support/circuit_table/__init__.py,sha256=
|
|
90
|
-
ck/pgm_compiler/support/circuit_table/
|
|
91
|
-
ck/pgm_compiler/support/circuit_table/
|
|
92
|
-
ck/pgm_compiler/support/circuit_table/
|
|
93
|
-
ck/pgm_compiler/support/circuit_table/
|
|
83
|
+
ck/pgm_compiler/support/clusters.py,sha256=7jsZfPqv29vZNxmtiHBCBo3mEfvLQ_ejYh69M_d-nmo,21381
|
|
84
|
+
ck/pgm_compiler/support/factor_tables.py,sha256=tV9qE2zC8iwEQxTuXE6qiE6lmMpz4-Vc80_w5woo1tk,15556
|
|
85
|
+
ck/pgm_compiler/support/join_tree.py,sha256=OGAuZVHzT0i4e6TJ03dOM7e3gbpuW9AyjZKvSBvKvJA,12894
|
|
86
|
+
ck/pgm_compiler/support/named_compiler_maker.py,sha256=g2MLnlkWXkISHL6dh23EY53SptTo7-itfuZogSpMdB8,1420
|
|
87
|
+
ck/pgm_compiler/support/circuit_table/__init__.py,sha256=Ct1i7jP4sZI_G4IU75pubf4tLyMrB8u47ZbTC8_zBqU,576
|
|
88
|
+
ck/pgm_compiler/support/circuit_table/_circuit_table_cy.cp312-win_amd64.pyd,sha256=-vH_LNfBmGcD2fJEaNaARI7zO2bIfiWJNfrbHYrYVTE,93696
|
|
89
|
+
ck/pgm_compiler/support/circuit_table/_circuit_table_cy.pyx,sha256=rVO1yxjZmZ6yv5s0zKq4Ji9WYrDuYTZsRG_zeF1_1xE,12015
|
|
90
|
+
ck/pgm_compiler/support/circuit_table/_circuit_table_cy_cpp_verion.pyx,sha256=C6jQPXmZgLCFf799o1MoRnEr7ihlMYdSf_c4r1TPDEM,20614
|
|
91
|
+
ck/pgm_compiler/support/circuit_table/_circuit_table_cy_minimal_version.pyx,sha256=n7qdSQwnpyQ_0g9esXGtFB3STI7N3uWLzEVhCjNXb_U,11417
|
|
92
|
+
ck/pgm_compiler/support/circuit_table/_circuit_table_cy_v4.0.0a17.pyx,sha256=JLC4_nsRPb8xC3alHE0G9Ojie9K4oUULVPrulkQnhds,11886
|
|
93
|
+
ck/pgm_compiler/support/circuit_table/_circuit_table_py.py,sha256=h6xPYGBSy6XHQBFLPD2D1-V7Kiw9utY68nWrcGRMEg4,11287
|
|
94
94
|
ck/probability/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
95
95
|
ck/probability/empirical_probability_space.py,sha256=HoLxmigzlWFWQlcZQwDOYk-mjgf6RW1IPE-l0t8vMPw,1950
|
|
96
96
|
ck/probability/pgm_probability_space.py,sha256=vK-drx145PWW2aYB8HttQcvhvqPfxVl72bPcFO8jw8M,1034
|
|
@@ -110,7 +110,7 @@ ck/sampling/wmc_gibbs_sampler.py,sha256=GMKVW2AVtsWtP6vxE3Y2dy-dKr7GoO_vLEA9eC30
|
|
|
110
110
|
ck/sampling/wmc_metropolis_sampler.py,sha256=PRv7wtPZz7BcwN8iArsykVwqgY77v5km7rXcawFAUPQ,6470
|
|
111
111
|
ck/sampling/wmc_rejection_sampler.py,sha256=cd0VONZf-oa491RRKfwT2LakQs0o_slgPCes8AOvSNc,4897
|
|
112
112
|
ck/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
113
|
-
ck/utils/iter_extras.py,sha256=
|
|
113
|
+
ck/utils/iter_extras.py,sha256=QNd3mJxPsKN0Wg12K_Iuefto5A2Vv9leuMvymAdt4uo,4479
|
|
114
114
|
ck/utils/local_config.py,sha256=-oTKvKCpm29JeHEhV1_qLC5fMS523unDzXr0VYE3M0U,9535
|
|
115
115
|
ck/utils/map_list.py,sha256=T2OpjI7eDgC4geCtW_FsEr6ryiePOnKZwfDahB63zfA,3847
|
|
116
116
|
ck/utils/map_set.py,sha256=BLu9BO3FCtzZlZ9MfP9STtIdQ4Me8-QKdwB7o15y7f8,3809
|
|
@@ -135,7 +135,7 @@ ck_demos/pgm/demo_pgm_string_rendering.py,sha256=JTf_M6pPwl9RtOLlpJFQIgNgGuHnsdd
|
|
|
135
135
|
ck_demos/pgm/show_examples.py,sha256=KxK37hKqWD9w9k9RoMCdJgkBIMePf8udQbqaFs-s91c,461
|
|
136
136
|
ck_demos/pgm_compiler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
137
137
|
ck_demos/pgm_compiler/compare_pgm_compilers.py,sha256=pG0OQBl2wjdCIUU0RM70j8TfCjYUxRU0i13OWpfXUHc,1611
|
|
138
|
-
ck_demos/pgm_compiler/demo_compiler_dump.py,sha256=
|
|
138
|
+
ck_demos/pgm_compiler/demo_compiler_dump.py,sha256=Jz51szVxaa21cGzibWZ1rzON3U_fdUana87CdCfSoVE,1672
|
|
139
139
|
ck_demos/pgm_compiler/demo_factor_elimination.py,sha256=KDzYwNZJ9HTcPoNxg6lxFoaXJ26QW-nnBI-0Ux_yWoM,1320
|
|
140
140
|
ck_demos/pgm_compiler/demo_join_tree.py,sha256=E7ZqFrRuAmnSRmBTDqNGxD-KFlHOtd_jIju8UJssUfM,574
|
|
141
141
|
ck_demos/pgm_compiler/demo_marginals_program.py,sha256=44-ZkA8KyWPXWBnbnRGQin6cP_hWY50OfQpy7LckWNo,1863
|
|
@@ -144,6 +144,7 @@ ck_demos/pgm_compiler/demo_pgm_compiler.py,sha256=LaBVSD5bXAVvEelQiT_PxA4U9AC76g
|
|
|
144
144
|
ck_demos/pgm_compiler/demo_recursive_conditioning.py,sha256=kVZ4nQ_vlDM94a3ebjyX9sG4gAvsHdKzlVqUJ4dlxNc,862
|
|
145
145
|
ck_demos/pgm_compiler/demo_variable_elimination.py,sha256=9zDPxTYr6pnxNDBGa989Ffr3tvQdKXioG2A6JPzKw4Y,858
|
|
146
146
|
ck_demos/pgm_compiler/demo_wmc_program.py,sha256=SPyok8RqXY2q6NsQc6e2OW_WtyOw10etPfocRdGF1ng,818
|
|
147
|
+
ck_demos/pgm_compiler/time_fe_compiler.py,sha256=F6huBVmJ3jDdDDXOGt1BVTt5zmGGK127HnnV-RK2zbE,3700
|
|
147
148
|
ck_demos/pgm_inference/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
148
149
|
ck_demos/pgm_inference/demo_inferencing_basic.py,sha256=qrai48Kn7fbpGb_RF5olUsavqzjyZ0JOpk3DvovS18I,5774
|
|
149
150
|
ck_demos/pgm_inference/demo_inferencing_mpe_cancer.py,sha256=HJ3QHUqe090HEbhXHLCtkwDBdcIxec9zbZYDuaWZMW8,1599
|
|
@@ -162,12 +163,12 @@ ck_demos/sampling/demo_marginal_direct_sampler.py,sha256=RhNunuIUnYI_GXp9m8wzadM
|
|
|
162
163
|
ck_demos/sampling/demo_uniform_sampler.py,sha256=Z6tX_OYKGLc_w3-kEPK4KEZlJo7F5HOq_tUVppB_VQE,962
|
|
163
164
|
ck_demos/sampling/demo_wmc_direct_sampler.py,sha256=c7maxTmZyIijaVdFs2h_KQbK30LvI-oCm2BXSUXVoD8,1113
|
|
164
165
|
ck_demos/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
165
|
-
ck_demos/utils/compare.py,sha256=
|
|
166
|
+
ck_demos/utils/compare.py,sha256=Bwjpflevl4nusfA0zp96rInaVKFGuhC5Xv7HzA1Fobk,5088
|
|
166
167
|
ck_demos/utils/convert_network.py,sha256=TSKj8q7L7J5rhrvwjaDkdYZ0Sg8vV5FRL_vCanX1CQw,1363
|
|
167
168
|
ck_demos/utils/sample_model.py,sha256=in-Nlv-iuNIu6y9fDuMyo7nzgimBuTAnCWcpnVqvqDQ,8839
|
|
168
169
|
ck_demos/utils/stop_watch.py,sha256=VzXHRWx0V8vPSD-bLgLlEYkCkR2FA0-KmM_pfKx-Pxo,13205
|
|
169
|
-
compiled_knowledge-4.0.
|
|
170
|
-
compiled_knowledge-4.0.
|
|
171
|
-
compiled_knowledge-4.0.
|
|
172
|
-
compiled_knowledge-4.0.
|
|
173
|
-
compiled_knowledge-4.0.
|
|
170
|
+
compiled_knowledge-4.0.0a18.dist-info/licenses/LICENSE.txt,sha256=uMYx7tmroEKNASizbCOwPveMQsD5UErLDC1_SANmNn8,1089
|
|
171
|
+
compiled_knowledge-4.0.0a18.dist-info/METADATA,sha256=ZjA0RqiyN9UdM20v0vQ_qb7Ru6dr8ZO7Bis-dX7rIM0,1838
|
|
172
|
+
compiled_knowledge-4.0.0a18.dist-info/WHEEL,sha256=8UP9x9puWI0P1V_d7K2oMTBqfeLNm21CTzZ_Ptr0NXU,101
|
|
173
|
+
compiled_knowledge-4.0.0a18.dist-info/top_level.txt,sha256=Cf8DAfd2vcnLiA7HlxoduOzV0Q-8surE3kzX8P9qdks,12
|
|
174
|
+
compiled_knowledge-4.0.0a18.dist-info/RECORD,,
|