compiled-knowledge 4.0.0a24__cp313-cp313-macosx_11_0_arm64.whl → 4.1.0a1__cp313-cp313-macosx_11_0_arm64.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.

Files changed (42) hide show
  1. ck/circuit/_circuit_cy.c +1 -1
  2. ck/circuit/_circuit_cy.cpython-313-darwin.so +0 -0
  3. ck/circuit/tmp_const.py +5 -4
  4. ck/circuit_compiler/cython_vm_compiler/_compiler.c +152 -152
  5. ck/circuit_compiler/cython_vm_compiler/_compiler.cpython-313-darwin.so +0 -0
  6. ck/circuit_compiler/interpret_compiler.py +2 -2
  7. ck/circuit_compiler/support/circuit_analyser/_circuit_analyser_cy.c +1 -1
  8. ck/circuit_compiler/support/circuit_analyser/_circuit_analyser_cy.cpython-313-darwin.so +0 -0
  9. ck/circuit_compiler/support/llvm_ir_function.py +4 -4
  10. ck/dataset/__init__.py +1 -0
  11. ck/dataset/cross_table.py +270 -0
  12. ck/dataset/cross_table_probabilities.py +53 -0
  13. ck/dataset/dataset.py +577 -0
  14. ck/dataset/dataset_compute.py +140 -0
  15. ck/dataset/dataset_from_crosstable.py +45 -0
  16. ck/dataset/dataset_from_csv.py +147 -0
  17. ck/dataset/sampled_dataset.py +96 -0
  18. ck/example/diamond_square.py +3 -1
  19. ck/example/triangle_square.py +3 -1
  20. ck/example/truss.py +3 -1
  21. ck/in_out/parse_net.py +21 -19
  22. ck/in_out/parser_utils.py +7 -3
  23. ck/learning/__init__.py +0 -0
  24. ck/learning/train_generative.py +149 -0
  25. ck/pgm.py +95 -84
  26. ck/pgm_circuit/mpe_program.py +3 -4
  27. ck/pgm_circuit/pgm_circuit.py +27 -18
  28. ck/pgm_circuit/program_with_slotmap.py +27 -46
  29. ck/pgm_circuit/support/compile_circuit.py +2 -4
  30. ck/pgm_compiler/support/circuit_table/_circuit_table_cy.c +1 -1
  31. ck/pgm_compiler/support/circuit_table/_circuit_table_cy.cpython-313-darwin.so +0 -0
  32. ck/probability/empirical_probability_space.py +1 -0
  33. ck/probability/probability_space.py +10 -11
  34. ck/program/raw_program.py +23 -16
  35. ck/sampling/sampler_support.py +5 -6
  36. ck/utils/iter_extras.py +3 -2
  37. ck/utils/local_config.py +16 -8
  38. {compiled_knowledge-4.0.0a24.dist-info → compiled_knowledge-4.1.0a1.dist-info}/METADATA +1 -1
  39. {compiled_knowledge-4.0.0a24.dist-info → compiled_knowledge-4.1.0a1.dist-info}/RECORD +42 -32
  40. {compiled_knowledge-4.0.0a24.dist-info → compiled_knowledge-4.1.0a1.dist-info}/WHEEL +0 -0
  41. {compiled_knowledge-4.0.0a24.dist-info → compiled_knowledge-4.1.0a1.dist-info}/licenses/LICENSE.txt +0 -0
  42. {compiled_knowledge-4.0.0a24.dist-info → compiled_knowledge-4.1.0a1.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,8 @@
1
- from typing import Tuple, Sequence, Dict, Iterable
1
+ from typing import Tuple, Sequence, Dict
2
2
 
3
- from ck.pgm import RandomVariable, rv_instances, Instance, rv_instances_as_indicators, Indicator, ParamId
3
+ import numpy as np
4
+
5
+ from ck.pgm import RandomVariable, Indicator, ParamId
4
6
  from ck.pgm_circuit.slot_map import SlotMap, SlotKey
5
7
  from ck.probability.probability_space import Condition, check_condition
6
8
  from ck.program.program_buffer import ProgramBuffer
@@ -69,40 +71,6 @@ class ProgramWithSlotmap:
69
71
  def slot_map(self) -> SlotMap:
70
72
  return self._slot_map
71
73
 
72
- def instances(self, flip: bool = False) -> Iterable[Instance]:
73
- """
74
- Enumerate instances of the random variables.
75
-
76
- Each instance is a tuples of state indexes, co-indexed with the given random variables.
77
-
78
- The order is the natural index order (i.e., last random variable changing most quickly).
79
-
80
- Args:
81
- flip: if true, then first random variable changes most quickly.
82
-
83
- Returns:
84
- an iteration over tuples, each tuple holds state indexes
85
- co-indexed with the given random variables.
86
- """
87
- return rv_instances(*self._rvs, flip=flip)
88
-
89
- def instances_as_indicators(self, flip: bool = False) -> Iterable[Sequence[Indicator]]:
90
- """
91
- Enumerate instances of the random variables.
92
-
93
- Each instance is a tuples of indicators, co-indexed with the given random variables.
94
-
95
- The order is the natural index order (i.e., last random variable changing most quickly).
96
-
97
- Args:
98
- flip: if true, then first random variable changes most quickly.
99
-
100
- Returns:
101
- an iteration over tuples, each tuples holds random variable indicators
102
- co-indexed with the given random variables.
103
- """
104
- return rv_instances_as_indicators(*self._rvs, flip=flip)
105
-
106
74
  def compute(self) -> NDArrayNumeric:
107
75
  """
108
76
  Execute the program to compute and return the result. As per `ProgramBuffer.compute`.
@@ -114,7 +82,10 @@ class ProgramWithSlotmap:
114
82
 
115
83
  def compute_conditioned(self, *condition: Condition) -> NDArrayNumeric:
116
84
  """
117
- Equivalent to:
85
+ Compute the program value, after setting the given condition.
86
+
87
+ Equivalent to::
88
+
118
89
  self.set_condition(*condition)
119
90
  return self.compute()
120
91
  """
@@ -143,29 +114,36 @@ class ProgramWithSlotmap:
143
114
  """
144
115
  return self._program_buffer.vars
145
116
 
146
- def __setitem__(self, item: int | slice | SlotKey | Iterable[SlotKey], value: float) -> None:
117
+ def __setitem__(self, item: int | slice | SlotKey | RandomVariable, value: float) -> None:
147
118
  """
148
- Set one or more input slot values, identified by slot keys.
119
+ Set input slot value/s.
149
120
  """
150
121
  if isinstance(item, (int, slice)):
151
122
  self._program_buffer[item] = value
152
123
  elif isinstance(item, (Indicator, ParamId)):
153
124
  self._program_buffer[self._slot_map[item]] = value
125
+ elif isinstance(item, RandomVariable):
126
+ for ind in item:
127
+ self._program_buffer[self._slot_map[ind]] = value
154
128
  else:
155
- # Assume its iterable
156
- for i in item:
157
- self[i] = value
129
+ raise IndexError(f'unknown index type: {type(item)}')
158
130
 
159
- def __getitem__(self, item: int | slice | SlotKey) -> NDArrayNumeric:
131
+ def __getitem__(self, item: int | slice | SlotKey | RandomVariable) -> NDArrayNumeric:
160
132
  """
161
- Get an input slot value, identified by a slot key.
133
+ Get input slot value/s.
162
134
  """
163
135
  if isinstance(item, (int, slice)):
164
136
  return self._program_buffer[item]
165
137
  elif isinstance(item, (Indicator, ParamId)):
166
138
  return self._program_buffer[self._slot_map[item]]
139
+ elif isinstance(item, RandomVariable):
140
+ return np.fromiter(
141
+ (self._program_buffer[self._slot_map[ind]] for ind in item),
142
+ dtype=self._program_buffer.dtype,
143
+ count=len(item)
144
+ )
167
145
  else:
168
- raise IndexError('unknown index type')
146
+ raise IndexError(f'unknown index type: {type(item)}')
169
147
 
170
148
  def set_condition(self, *condition: Condition) -> None:
171
149
  """
@@ -208,7 +186,10 @@ class ProgramWithSlotmap:
208
186
 
209
187
  Args:
210
188
  rv: a random variable whose indicators are in the slot map.
211
- values: list of values, assumes len(values) == len(rv).
189
+ values: list of values
190
+
191
+ Assumes:
192
+ len(values) == len(rv).
212
193
  """
213
194
  for i in range(len(rv)):
214
195
  self[rv[i]] = values[i]
@@ -30,11 +30,9 @@ def compile_results(
30
30
  a compiled RawProgram.
31
31
  """
32
32
  circuit: Circuit = pgm_circuit.circuit_top.circuit
33
- if const_parameters:
34
- parameter_values = pgm_circuit.parameter_values
35
- number_of_indicators = pgm_circuit.number_of_indicators
33
+ if const_parameters and len(pgm_circuit.parameter_values) > 0:
36
34
  with TmpConst(circuit) as tmp:
37
- for slot, value in enumerate(parameter_values, start=number_of_indicators):
35
+ for slot, value in enumerate(pgm_circuit.parameter_values, start=pgm_circuit.number_of_indicators):
38
36
  tmp.set_const(slot, value)
39
37
  raw_program: RawProgram = compiler(*results, circuit=circuit)
40
38
  else:
@@ -15,7 +15,7 @@
15
15
  "-O3"
16
16
  ],
17
17
  "include_dirs": [
18
- "/private/var/folders/y6/nj790rtn62lfktb1sh__79hc0000gn/T/build-env-gdy6g4em/lib/python3.12/site-packages/numpy/_core/include"
18
+ "/private/var/folders/y6/nj790rtn62lfktb1sh__79hc0000gn/T/build-env-igmjtopw/lib/python3.12/site-packages/numpy/_core/include"
19
19
  ],
20
20
  "name": "ck.pgm_compiler.support.circuit_table._circuit_table_cy",
21
21
  "sources": [
@@ -11,6 +11,7 @@ class EmpiricalProbabilitySpace(ProbabilitySpace):
11
11
  Note that this is not necessarily an efficient approach to calculating probabilities and statistics.
12
12
 
13
13
  This probability space treats each of the samples as equally weighted.
14
+ For a probability space over unequally weighted samples, consider using `CrossTableProbabilitySpace`.
14
15
 
15
16
  Assumes:
16
17
  len(sample) == len(rvs), for each sample in samples.
@@ -11,17 +11,16 @@ from ck.utils.map_set import MapSet
11
11
  from ck.utils.np_extras import dtype_for_number_of_states, NDArrayFloat64, DTypeStates, NDArrayNumeric
12
12
 
13
13
  Condition: TypeAlias = None | Indicator | Iterable[Indicator]
14
- Condition.__doc__ = \
15
- """
16
- Type defining a condition. A condition is logically a set of
17
- indicators, each indicator representing a random variable being in some state.
18
-
19
- If multiple indicators of the same random variable appear in
20
- a condition, then they are interpreted as
21
- a disjunction, otherwise indicators are interpreted as
22
- a conjunction. E.g., the condition (X=0, Y=1, Y=3) means
23
- X=0 and (Y=1 or Y=3).
24
- """
14
+ """
15
+ Type defining a condition. A condition is logically a set of
16
+ indicators, each indicator representing a random variable being in some state.
17
+
18
+ If multiple indicators of the same random variable appear in
19
+ a condition, then they are interpreted as
20
+ a disjunction, otherwise indicators are interpreted as
21
+ a conjunction. E.g., the condition (X=0, Y=1, Y=3) means
22
+ X=0 and (Y=1 or Y=3).
23
+ """
25
24
 
26
25
  _NAN: float = np.nan # Not-a-number (i.e., the result of an invalid calculation).
27
26
 
ck/program/raw_program.py CHANGED
@@ -1,5 +1,5 @@
1
1
  from dataclasses import dataclass
2
- from typing import Callable, Sequence
2
+ from typing import Callable, Sequence, TypeAlias
3
3
 
4
4
  import numpy as np
5
5
  import ctypes as ct
@@ -7,12 +7,14 @@ import ctypes as ct
7
7
 
8
8
  from ck.utils.np_extras import NDArrayNumeric, DTypeNumeric
9
9
 
10
- # RawProgramFunction is a function of three ctypes arrays, returning nothing.
11
- # Args:
12
- # [0]: input values,
13
- # [1]: temporary working memory,
14
- # [2]: output values.
15
- RawProgramFunction = Callable[[ct.POINTER, ct.POINTER, ct.POINTER], None]
10
+ RawProgramFunction: TypeAlias = Callable[[ct.POINTER, ct.POINTER, ct.POINTER], None]
11
+ """
12
+ RawProgramFunction is a function of three ctypes arrays, returning nothing.
13
+ Args:
14
+ [0]: input values,
15
+ [1]: temporary working memory,
16
+ [2]: output values.
17
+ """
16
18
 
17
19
 
18
20
  @dataclass
@@ -26,23 +28,28 @@ class RawProgram:
26
28
  an efficient method for executing a program as buffers are reallocated for
27
29
  each call. Alternatively, a `RawProgram` can be wrapped in a `ProgramBuffer`
28
30
  for computationally efficient memory buffer reuse.
29
-
30
- Fields:
31
- function: is a function of three ctypes arrays, returning nothing.
32
- dtype: the numpy data type of the array values.
33
- number_of_vars: the number of input values (first function argument).
34
- number_of_tmps: the number of working memory values (second function argument).
35
- number_of_results: the number of result values (third function argument).
36
- var_indices: maps the index of inputs (from 0 to self.number_of_vars - 1) to the index
37
- of the corresponding circuit var.
38
31
  """
39
32
 
40
33
  function: RawProgramFunction
34
+ """a function of three ctypes arrays, returning nothing."""
35
+
41
36
  dtype: DTypeNumeric
37
+ """the numpy data type of the array values."""
38
+
42
39
  number_of_vars: int
40
+ """the number of input values (first function argument)."""
41
+
43
42
  number_of_tmps: int
43
+ """the number of working memory values (second function argument)."""
44
+
44
45
  number_of_results: int
46
+ """the number of result values (third function argument)."""
47
+
45
48
  var_indices: Sequence[int]
49
+ """
50
+ a map from the index of inputs (from 0 to self.number_of_vars - 1) to the index
51
+ of the corresponding circuit var.
52
+ """
46
53
 
47
54
  def __call__(self, var_values: NDArrayNumeric | Sequence[int | float] | int | float) -> NDArrayNumeric:
48
55
  """
@@ -11,12 +11,11 @@ from ck.utils.np_extras import NDArrayStates, NDArrayNumeric
11
11
  from ck.utils.random_extras import Random
12
12
 
13
13
  YieldF: TypeAlias = Callable[[NDArrayStates], int] | Callable[[NDArrayStates], Instance]
14
- YieldF.__doc__ = \
15
- """
16
- Type of a yield function. Support for a sampler.
17
- A yield function may be used to implement a sampler's iterator, thus
18
- it provides an Instance or single state index.
19
- """
14
+ """
15
+ Type of a yield function. Support for a sampler.
16
+ A yield function may be used to implement a sampler's iterator, thus
17
+ it provides an Instance or single state index.
18
+ """
20
19
 
21
20
 
22
21
  @dataclass
ck/utils/iter_extras.py CHANGED
@@ -33,11 +33,12 @@ def combos(list_of_lists: Sequence[Sequence[_T]], flip=False) -> Iterable[Tuple[
33
33
  Iterate over all combinations of taking one element from each of the lists.
34
34
 
35
35
  The order of results has the first element changing most rapidly.
36
- For example, given [[1,2,3],[4,5],[6,7]], combos yields the following:
36
+ For example, given [[1,2,3],[4,5],[6,7]], combos yields the following::
37
+
37
38
  (1,4,6), (2,4,6), (3,4,6), (1,5,6), (2,5,6), (3,5,6),
38
39
  (1,4,7), (2,4,7), (3,4,7), (1,5,7), (2,5,7), (3,5,7).
39
40
 
40
- If flip, then the last changes most rapidly.
41
+ If `flip` is true, then the last changes most rapidly.
41
42
  """
42
43
  num = len(list_of_lists)
43
44
  if num == 0:
ck/utils/local_config.py CHANGED
@@ -12,10 +12,13 @@ other getter methods wrap `get`.
12
12
 
13
13
  The `get` method will search for a value for a requested variable
14
14
  using the following steps.
15
+
15
16
  1) Check the `programmatic config` which is a dictionary that
16
- can be directly updated.
17
+ can be directly updated.
18
+
17
19
  2) Check the PYTHONPATH for a module called `config` (i.e., a
18
- `config.py` file) for global variables defined in that module.
20
+ `config.py` file) for global variables defined in that module.
21
+
19
22
  3) Check the system environment variables (`os.environ`).
20
23
 
21
24
  Variable names must be a valid Python identifier. Only valid
@@ -171,8 +174,9 @@ def get_params(
171
174
  are returned as a single string with `delim` as the delimiter. If
172
175
  `delim` is not None then the default value for `sep` is '='.
173
176
 
174
- For example, assume config.py contains: ABC = 123 and DEF = 456,
175
- then:
177
+ For example, assume `config.py` contains: `ABC = 123` and `DEF = 456`,
178
+ then::
179
+
176
180
  get_params('ABC') -> ('ABC', 123)
177
181
  get_params('ABC', 'DEF') -> ('ABC', 123), ('DEF', 456)
178
182
  get_params('ABC', sep='=') = 'ABC=123'
@@ -180,10 +184,14 @@ def get_params(
180
184
  get_params('ABC;DEF', delim=';') = 'ABC=123;DEF=456'
181
185
  get_params('ABC;DEF', sep='==', delim=';') = 'ABC==123;DEF==456'
182
186
 
183
- :param keys: the names of variables to access.
184
- :param sep: the separator character between {variable} and {value}.
185
- :param delim: the delimiter character between key-value pairs.
186
- :param config: a Config instance to update. Default is the global config.
187
+ Args:
188
+ keys: the names of variables to access.
189
+ sep: the separator character between {variable} and {value}.
190
+ delim: the delimiter character between key-value pairs.
191
+ config: a Config instance to update. Default is the global config.
192
+
193
+ Returns:
194
+ the requested parameter values.
187
195
  """
188
196
  if delim is not None:
189
197
  keys = flatten(key.split(delim) for key in keys)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: compiled-knowledge
3
- Version: 4.0.0a24
3
+ Version: 4.1.0a1
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
@@ -52,27 +52,22 @@ ck_demos/pgm_inference/demo_inferencing_mpe_cancer.py,sha256=hS9U2kyqjFgJ8jnVBtT
52
52
  ck_demos/pgm_inference/demo_inferencing_wmc_and_mpe_sprinkler.py,sha256=-q4Z1Fzf7-BuwVFTFXdGRY-zUNrY-SAU7ooaov2o_lM,5128
53
53
  ck_demos/getting_started/simple_demo.py,sha256=hiYscNnfkEwHCQ3ymXAswAYO5jAKR7cseb36pjzuus8,650
54
54
  ck_demos/getting_started/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
- compiled_knowledge-4.0.0a24.dist-info/RECORD,,
56
- compiled_knowledge-4.0.0a24.dist-info/WHEEL,sha256=oqGJCpG61FZJmvyZ3C_0aCv-2mdfcY9e3fXvyUNmWfM,136
57
- compiled_knowledge-4.0.0a24.dist-info/top_level.txt,sha256=Cf8DAfd2vcnLiA7HlxoduOzV0Q-8surE3kzX8P9qdks,12
58
- compiled_knowledge-4.0.0a24.dist-info/METADATA,sha256=L0xinlE8t7EAHnNAO-y3Tqjs3jq_H5l0R1RxUgmPpyU,1788
59
- compiled_knowledge-4.0.0a24.dist-info/licenses/LICENSE.txt,sha256=-LmkmqXKYojmS3zDxXAeTbsA82fnHA0KaRvpfIoEdjA,1068
60
- ck/pgm.py,sha256=px-eAq-2m3SJ6-eDcuVk9QY8rJE03ZGGWfGnbN-wn0s,117355
55
+ ck/pgm.py,sha256=PsB2DboRtuiOrnbYGbYNOB-R2k94iET2o02UalKFy3I,117611
61
56
  ck/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
57
  ck/pgm_circuit/target_marginals_program.py,sha256=qWz9FkAFzt8YHLZJzPkpRnvDH76BXm-dcEWhoqCkrOw,3665
63
58
  ck/pgm_circuit/slot_map.py,sha256=pqN0t5ElmUjR7SzvzldQwnO-jjRIz1rNZHH1PzE-V88,822
64
- ck/pgm_circuit/mpe_program.py,sha256=haYfD7pw9nP7biqNfmWRS3LkbvZcJfDNe5rZpkWMQoA,10008
65
- ck/pgm_circuit/program_with_slotmap.py,sha256=HQNxLTYdxb1noAjyzvX3LknI9vT2RPk5UmYF__fn9Jg,8723
59
+ ck/pgm_circuit/mpe_program.py,sha256=uDOykbBIbvvDQtxXOgBj6gzoehq1AfaQzZIWW3rMZnY,9990
60
+ ck/pgm_circuit/program_with_slotmap.py,sha256=31Rgk4WoY7KW09L3TGySf1teYnf-ItvICTYEC17zB1w,7808
66
61
  ck/pgm_circuit/__init__.py,sha256=FctIFEYdL1pwxFMMEEu5Rwgq3kjPar-vJTqAmgIqb-I,36
67
62
  ck/pgm_circuit/marginals_program.py,sha256=E-L-4Rc2YLs3ndXIfXpTxUYGEFJG1_BkaZVDBs9gcgQ,14434
68
63
  ck/pgm_circuit/wmc_program.py,sha256=Btq7jUot-PodWXrgDFaE6zhUtr6GPUNF217CVLTaB70,12376
69
- ck/pgm_circuit/pgm_circuit.py,sha256=VBgHk7uDNYiElesEQxdmlU2iRn0bfHYWik2Cb6t838g,3208
64
+ ck/pgm_circuit/pgm_circuit.py,sha256=XBXANPREwp5Cl8P0x5XuG9besOJV5DjVxtNkqyt2DK8,3287
70
65
  ck/pgm_circuit/support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- ck/pgm_circuit/support/compile_circuit.py,sha256=56KsI01Ww3gSHnqoTt81kzdHgbFTmHwVeB3jEajipHs,3179
72
- ck/probability/probability_space.py,sha256=f82dRyUoyusj0t4-H11mN8j0r2dN-5M6z5RV2SF0E-g,25544
66
+ ck/pgm_circuit/support/compile_circuit.py,sha256=XJFzi-BdFNTsdozRv0EHBM8cJ0SUZpbQwuTWONUzGck,3125
67
+ ck/probability/probability_space.py,sha256=TTNSe6z40hs94kLBR_YHNjjRvBGVI86tza-CU2FKd9M,25482
73
68
  ck/probability/pgm_probability_space.py,sha256=9al9sZk2LGvnTITvxS8x_ntabHKhaliUW-6JUeAEEl4,1231
74
69
  ck/probability/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
- ck/probability/empirical_probability_space.py,sha256=ojEMLKVy9Qf-Vi803B9KWARCySIWwf4rt23--mpAxD0,1978
70
+ ck/probability/empirical_probability_space.py,sha256=Lp7_N_uNYq-W_S5caUC5ub9sTqaL-Vn4hudF0WYXPdU,2088
76
71
  ck/example/survey.py,sha256=ubjM8EP7aQMQbx7XFMaXvSYBOPuUDHeyG6wZIlRDqD8,1565
77
72
  ck/example/pathfinder.py,sha256=rQckvasnbzBYYESxngE_xbhyXxoJlELeiYc6Ghh7iFk,2257125
78
73
  ck/example/run.py,sha256=nYfC_prwCRBN0uawLvrRVsl5IFag9VrQ5x_hhWmr-18,964
@@ -81,7 +76,7 @@ ck/example/asia.py,sha256=vS81n-qyhHscW8yG__9TQvDHLI-s6y6gaDetfOKMvFw,1267
81
76
  ck/example/clique.py,sha256=c3bATknqkD3QJztHQffgyL6_WzupWUpLSnI-EIEndqg,1055
82
77
  ck/example/mildew.py,sha256=Hfn_nQUhZVK6wFzNgxjD8HgzxgGxU1TWTZcWUrN3tDU,1792796
83
78
  ck/example/chain.py,sha256=aPlqMtqWO2BOz1WLXFtVwT3uPKN2E2Z7a7TSPvtloQU,1313
84
- ck/example/truss.py,sha256=7SM16u6rJVrWIPKRWVTJve13XNnb_CKta4_iIv_sXzY,1925
79
+ ck/example/truss.py,sha256=KgYka1OwoZ_9wRvtCPzI2SkiB22crch_wpZzAYQiRNc,1928
85
80
  ck/example/insurance.py,sha256=XRycrk8YBLxv5cQXWd4uIWW5fHhD1_Le9XKdNz_yJA4,31204
86
81
  ck/example/sachs.py,sha256=X-2stEbTlnV9hGuo2u6z19jqxJ2mFcIvDQfQnWGuKvc,5678
87
82
  ck/example/empty.py,sha256=RU3kjIrWSCBoqK_XZqk82GhI-0blu1dzM32UtGe5Y0Q,172
@@ -99,21 +94,31 @@ ck/example/munin.py,sha256=IZvZrVXDi2Zeu0M-nWIpIbzQu-U0cv0Be6dz960L5lo,1657227
99
94
  ck/example/child.py,sha256=qb3cOJms_Bzdfgk0aDrHwfFjjBojCfAYQnorv3p3rQM,7612
100
95
  ck/example/hailfinder.py,sha256=7M-J0XqFeNxK-TsdbOYu-GX581oM7wY1INEvTTSwqfs,38866
101
96
  ck/example/student.py,sha256=WayCWuMCrE0YSXez-a8TuptS53R6PBG2argyCsas7mc,1290
102
- ck/example/triangle_square.py,sha256=4JpB-p9hBfCz3Jn1sOKb5qlp5W04Kqm0rdHk2KuZ4lQ,2094
97
+ ck/example/triangle_square.py,sha256=mzl04AqaTkLNo0NU0dZYAh-sBMZbNqpOcdi_Dd1ZgMM,2097
103
98
  ck/example/sprinkler.py,sha256=t8RIiPorf3QXYyTXbxFkSrK1SsG5ALWmTfTsFUq2C_c,938
104
- ck/example/diamond_square.py,sha256=HqGqmInYTpAsCBuz3s8FuhT2Jnc11L3wGCTgJDmFLjw,2722
99
+ ck/example/diamond_square.py,sha256=ic8adEomQHMFlGQ3gMYGEja0LxEla8KEQKhET0XpULs,2725
105
100
  ck/example/rain.py,sha256=kLTU_9f_-_yy0ymPnS9-cbFVT6fYyCanDgszk3vQOgc,1187
106
101
  ck/example/cancer.py,sha256=-FnLbfb9yxriLl97N5BDZ0VrDZ5UnOWlT-Ep_tzO6QI,1698
107
- ck/circuit/_circuit_cy.c,sha256=Qc4AXKFu7Q89eQN-MT5_K2O7hmmRSayF4p5BII1QAvU,1704292
102
+ ck/dataset/dataset_compute.py,sha256=Bdxjl4c_0OttHgVWx-C3WdOI-imgupUQnnQVzNesPCw,5705
103
+ ck/dataset/cross_table.py,sha256=KXhkAsMZBKc50V-kHDdj3sxGbEIiqdj72XqvGLCi6cs,9474
104
+ ck/dataset/__init__.py,sha256=QXCZWPHusMfXtl9bLPrIJP89ZnqWMz9KfdxScVrB3UQ,55
105
+ ck/dataset/dataset.py,sha256=929eC2I8x4Nc3OF3sSsbeZ4xFQ-6CaMKPwv7emAVzjo,21121
106
+ ck/dataset/dataset_from_crosstable.py,sha256=f-H9Q9G5HF6RRT1ltReuqg69HhnDcrKn8vJrAviyMkA,1278
107
+ ck/dataset/sampled_dataset.py,sha256=Vcz2WN6IKdmK8DsFeXLten7Id3Kc2epC6qs2ZW7mvWU,3261
108
+ ck/dataset/dataset_from_csv.py,sha256=wzDjGtMEgvrfrMRdddYhJJQ53QhMM6t9_nhrA7EpB3I,5551
109
+ ck/dataset/cross_table_probabilities.py,sha256=exaAVxzpQkqTmGIQx6ui64p6QTcy66IRYi5eWz6DFiE,1944
110
+ ck/learning/train_generative.py,sha256=_mXWcslgW1Tqfv1o0HhHDnU4CI7_KOUMdpxypQD3tQs,5551
111
+ ck/learning/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
+ ck/circuit/_circuit_cy.c,sha256=EGE0-TkFq-i7AbXZEqs04yxFwdez8u-RmSy-j7Siskk,1704292
108
113
  ck/circuit/_circuit_cy.pyx,sha256=mER1HK5yyf4UAj9ibn7fUQNyXwoxwxp7PClULPhY9B4,26995
109
114
  ck/circuit/__init__.py,sha256=B1jwDE_Xb6hOQE8DecjaTVotOnDxJaT7jsvPfGDXqCU,401
110
- ck/circuit/_circuit_cy.cpython-313-darwin.so,sha256=PMk_7zZcOvO799o1OX7YVvVO_s_stRgaepU_eQtttNo,334944
115
+ ck/circuit/_circuit_cy.cpython-313-darwin.so,sha256=yURu1v_7jlSN10cOMznJEio67PCKpsTzzDS9OyCG9Lw,334944
111
116
  ck/circuit/_circuit_cy.pxd,sha256=ZcW8xjw4oGQqD5gwz73GXc1H8NxpdAswFWzc2CUWWcA,1025
112
117
  ck/circuit/_circuit_py.py,sha256=hADjCFDC1LJKUdyiKZzNLFt7ZkUNJ0IYwEYRj594K4g,27495
113
- ck/circuit/tmp_const.py,sha256=wgi4P3xrTRLPXNMmWYpYaJWlm-lekQOdxg4rkXZC3Wk,2298
118
+ ck/circuit/tmp_const.py,sha256=q01bkIvTEg1l-qFcfl2B8NrSzKlqcWU7McNm4HKv7bU,2300
114
119
  ck/sampling/wmc_metropolis_sampler.py,sha256=jfXb-MG0jAoMyepgq9zel2amqK-gmYrCtKuxJStl8VY,6305
115
120
  ck/sampling/wmc_direct_sampler.py,sha256=Pkv-u4GjN3npBrcQ92raoTrEIel1vpiDoE8LrlcfYJE,7094
116
- ck/sampling/sampler_support.py,sha256=ACOn4G2djon5Yna4nZw4J7xeTuPvBYW2Ucal3uf7pjA,9573
121
+ ck/sampling/sampler_support.py,sha256=AD47QPXlXSTiy7Jm-adD6US3cYeSwBimOY2jB5b2qn4,9534
117
122
  ck/sampling/wmc_rejection_sampler.py,sha256=Kk7hDvfnI37CQhFlAW2-UoxtoSbQBoMesghMlwrX6_Y,4782
118
123
  ck/sampling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
119
124
  ck/sampling/marginals_direct_sampler.py,sha256=S4kfmvgPfh_dyn-D2WumrH6SMvLc6sFF7fRswGOS1gA,4353
@@ -125,9 +130,9 @@ ck/utils/random_extras.py,sha256=l9CfQM6k-b6KGESJXw9zF--Hqp4yadw2IU9uSoklai0,179
125
130
  ck/utils/map_set.py,sha256=T5E3j4Lz08vg8eviRBc-4F10xz1-CKIg6KiHVoGhdts,3681
126
131
  ck/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
127
132
  ck/utils/tmp_dir.py,sha256=Emln4TIyO-cFrhgcpoH10awakJoRgoDCVgwFKmt1-So,2574
128
- ck/utils/iter_extras.py,sha256=9BQpCKltbM_hcMIPFfJhqvWSvY2Mz3vzXdoSbfezR5k,4316
133
+ ck/utils/iter_extras.py,sha256=61I4xnFfZD9biC8VAqYRCdh4B2q5BRI6xDQ9jjpQv4E,4328
129
134
  ck/utils/np_extras.py,sha256=3wqIJ8Lc4CCpcKmzDiIOtzslW_IFw9HYUC2QaYYN-mM,1701
130
- ck/utils/local_config.py,sha256=RsP1QwIINw3F7KFVeJEML0Zul3Pm4YEkadVENfqHE6I,9265
135
+ ck/utils/local_config.py,sha256=9b7KAA1-HIjOORa6Z-L90dCKWg0-ZGBmsjYtr1cBwQU,9322
131
136
  ck/utils/map_list.py,sha256=0UkTDg-ZlWkuxiM-1OhaUYh5MRgMz0rAppDtE2RryEY,3719
132
137
  ck/pgm_compiler/__init__.py,sha256=Ga0dTOetOovHwNN4WS-o4fyyh7255xL0bUTdK29p2LY,110
133
138
  ck/pgm_compiler/recursive_conditioning.py,sha256=vdDSrMO1yPQHNlLQha5ybg3a7l1SiygsmniI_pQhU-Q,7705
@@ -141,13 +146,13 @@ ck/pgm_compiler/support/clusters.py,sha256=r1Z8b4IvXMfY5xeyg5AHoU3TxUI0yNDvh3Xkv
141
146
  ck/pgm_compiler/support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
147
  ck/pgm_compiler/support/named_compiler_maker.py,sha256=Qz8a9gwY46Q3dtRCZEZ2czq5z52QroGVKN5UDcoXI3c,1377
143
148
  ck/pgm_compiler/support/circuit_table/__init__.py,sha256=1kWjAZR5Rj6PYNdbCEbuyE2VtIDQU4Qf-3HPFzBlezs,562
144
- ck/pgm_compiler/support/circuit_table/_circuit_table_cy.cpython-313-darwin.so,sha256=JcpLDrwGk3r78Nr8wUT5rKBGQWEvv4zwepAh90MHiqo,164776
149
+ ck/pgm_compiler/support/circuit_table/_circuit_table_cy.cpython-313-darwin.so,sha256=ATy23a0EmNYtDWWv8-f9lRKoANUUM-OK6NfJndXx93I,164776
145
150
  ck/pgm_compiler/support/circuit_table/_circuit_table_cy.pyx,sha256=Fsjw8P9clKQioqlLyr1JirUK5oYkeotpDMy5sMo7Khk,11683
146
151
  ck/pgm_compiler/support/circuit_table/_circuit_table_py.py,sha256=OZJC-JGX3ovCSv7nJtNYq7735KZ2eb4TQOlZdZbhPmk,10983
147
- ck/pgm_compiler/support/circuit_table/_circuit_table_cy.c,sha256=gIlvTH2anpV8zXVpzsq7QRwYIR3uwyNip2MufCOxPmA,714044
152
+ ck/pgm_compiler/support/circuit_table/_circuit_table_cy.c,sha256=wLdeh90m24Mp9Vo_-rHra8HRlIRg_-AIzlr1vof5abE,714044
148
153
  ck/pgm_compiler/ace/ace.py,sha256=An83dHxE_gQFcEs6H5qgm0PlNFnJSGGuvLJNC2H3hGU,10098
149
154
  ck/pgm_compiler/ace/__init__.py,sha256=5HWep-yL1Mr6z5VWEaIYpLumCdeso85J-l_-hQaVusM,96
150
- ck/program/raw_program.py,sha256=aUYLEcK8mstDspz6M9wOE1W7TrnDNBmJjPtfIVA3CLw,4158
155
+ ck/program/raw_program.py,sha256=U7kLBCSLtP1CfG09RrzmGo7E3sZdNr7wr2V1qkTfVGc,4106
151
156
  ck/program/program_buffer.py,sha256=IHwAHTKIaUlhcbNFTuSxPWKyExIsOxxX6ffUn4KfheU,5485
152
157
  ck/program/__init__.py,sha256=Rifdxk-l6cCjXLpwc6Q0pVXNDsllAwaFlRqRx3cURho,107
153
158
  ck/program/program.py,sha256=ohsnE0CEy8O4q8uGB_YEjoJKAPhY1Mz_a08Z7fy7TLw,4047
@@ -155,28 +160,33 @@ ck/circuit_compiler/llvm_compiler.py,sha256=SFhfrthrDuAYUjH_DYRD7FBU8eg2db5T4QGB
155
160
  ck/circuit_compiler/circuit_compiler.py,sha256=Sl7FS42GXrDL6eG_WNKILcSQl7Wlccgs5Dd1l0EZMsU,1121
156
161
  ck/circuit_compiler/__init__.py,sha256=eRN6chBEt64PK5e6EFGyBNZBn6BXhXb6R3m12zPA1Qg,130
157
162
  ck/circuit_compiler/named_circuit_compilers.py,sha256=paKyG876tdG_bdSHJU6KW5HxQrutmV_T80GPpz8A65s,2227
158
- ck/circuit_compiler/interpret_compiler.py,sha256=tZirNkAOe7evvray4-wOqO-KdaI39qRFEI0xD6IRBY0,8531
163
+ ck/circuit_compiler/interpret_compiler.py,sha256=kbbUbDAGhgOxhD_kVjW-dwnClOU3kTgn9ju5iEBNztE,8535
159
164
  ck/circuit_compiler/llvm_vm_compiler.py,sha256=rM_6F5st3k9X5K1_MwzKJwDhQo1794vooPJ5yKrgSX8,21648
160
165
  ck/circuit_compiler/cython_vm_compiler/cython_vm_compiler.py,sha256=GdtBkipud8vylXYArOJvZ-10U9L_PL0oJrkyrnFGH2Q,4345
161
166
  ck/circuit_compiler/cython_vm_compiler/__init__.py,sha256=ks0sISOJ-XHIHgHnESyFsheNWvcSJQkbsrj1wVlnzTE,48
162
167
  ck/circuit_compiler/cython_vm_compiler/_compiler.pyx,sha256=RssdkoAcB3Ahes8xisqFy0PQyOPmC3GLEC2xR-miQaE,12898
163
- ck/circuit_compiler/cython_vm_compiler/_compiler.c,sha256=UOdOqsX59_fHea4HLszjHgQ2gB8t0BSG9uFq4aV4eK8,857789
164
- ck/circuit_compiler/cython_vm_compiler/_compiler.cpython-313-darwin.so,sha256=ly5wMEmiJEe8bxLjci4jdatobf3Zl7V3oWTQKDFCIhk,163296
165
- ck/circuit_compiler/support/llvm_ir_function.py,sha256=1uC4gAu2g1nl9lycMN2sM7FMI_h4iJG_ufZ3Gc3rMA8,8361
168
+ ck/circuit_compiler/cython_vm_compiler/_compiler.c,sha256=o3Kc9iFw6c3g4fMfWTLvvQIoOPjrETGbXKZApg1Msr0,857789
169
+ ck/circuit_compiler/cython_vm_compiler/_compiler.cpython-313-darwin.so,sha256=SNCIaY2gpvNcOHxJI0phOpzrqw8lqjHWiYU4jE3673w,163296
170
+ ck/circuit_compiler/support/llvm_ir_function.py,sha256=sMLKfwz90YcsrVyxsuY0Ymo1ibFOcul4Qiwdake-VkI,8321
166
171
  ck/circuit_compiler/support/input_vars.py,sha256=EZrvyhD9XVtf5GuDBluFNWhAOVixP7-_ETxAHLTpBcs,4664
167
172
  ck/circuit_compiler/support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
173
  ck/circuit_compiler/support/circuit_analyser/_circuit_analyser_cy.pyx,sha256=a0fKmkwRNscJmy6qoO2AOqJYmHYptrQmkRSrDg3G-wg,3233
169
- ck/circuit_compiler/support/circuit_analyser/_circuit_analyser_cy.cpython-313-darwin.so,sha256=80HxCNFHhNt8GyrQwh_D6iEXrilFhYM9NgS7pRtEhDU,104760
174
+ ck/circuit_compiler/support/circuit_analyser/_circuit_analyser_cy.cpython-313-darwin.so,sha256=FXVII2IghZ5xT1hAQhKt6jBAWuAYxHeM5FKA_N6cyeI,104760
170
175
  ck/circuit_compiler/support/circuit_analyser/__init__.py,sha256=WhNwfg7GHVeI4k_m7owPGWxX0MyZg_wtcp2MA07qbWg,523
171
- ck/circuit_compiler/support/circuit_analyser/_circuit_analyser_cy.c,sha256=i5ULOzxs7fT4JUyeAX8sQG2jNd_wil_34imoByTuiQw,438223
176
+ ck/circuit_compiler/support/circuit_analyser/_circuit_analyser_cy.c,sha256=MQoSbJVg537-Uexx2X-9WGPs3xt4xO07ehW5NZQ_2R8,438223
172
177
  ck/circuit_compiler/support/circuit_analyser/_circuit_analyser_py.py,sha256=CMdXV6Rot5CCoK1UsurQdGK0UOx_09B6V7mCc_6-gfI,2993
173
178
  ck/in_out/render_net.py,sha256=VePvN6aYWuzEkW-Hv-qGT9QneOvsnrBMmS_KYueuj2I,4970
174
179
  ck/in_out/render_bugs.py,sha256=c39KbaD4gEiauFsZq2KUhDEEa-3cuY5kuvz97pEWVpw,3272
175
- ck/in_out/parse_net.py,sha256=AtgSkLFI6HDcVnmxZ5CP0C5Q4GZL9lcySDIK9uSvY_c,13822
176
- ck/in_out/parser_utils.py,sha256=HV9cYw_-zxHN7fUBs4wG2A4Zl5P4YEAuSLGQRFNWV9c,5255
180
+ ck/in_out/parse_net.py,sha256=ITTI_nG8W8ZR2Y578BkcWYEx4tAQPHd_TaFe6AP8SAQ,13825
181
+ ck/in_out/parser_utils.py,sha256=tWMiytVeKO8_48hzvt9Lq0TnN0yOB2rtRTjXZQAEmi8,5378
177
182
  ck/in_out/__init__.py,sha256=3sLg8hHG_AWEJ7Kn06ZziFbVBUybKVTUPZCyqhr2qAw,109
178
183
  ck/in_out/parse_ace_lmap.py,sha256=UqZpkW1yNXNpdLEcMeXlve6tataaFuKP7caoKysQ8pE,7675
179
184
  ck/in_out/render_pomegranate.py,sha256=tU7iDHkLWTJyFrxPa2LbZnD06qia8mG2FGi0aZAKuk0,5580
180
185
  ck/in_out/parse_ace_nnf.py,sha256=faTCrCeuc-m_EUHNJFAg9IItZJ77-bvPzSbLYBeDFaw,13028
181
186
  ck/in_out/pgm_pickle.py,sha256=UhGCDHGVNEDtTwZjcCWyUWw00YXVgBGxek4fbBvLExs,962
182
187
  ck/in_out/pgm_python.py,sha256=6dnF9gzVdMrY0kkdsPg-ryVBwfmAo4bKoTwx17ociGg,9824
188
+ compiled_knowledge-4.1.0a1.dist-info/RECORD,,
189
+ compiled_knowledge-4.1.0a1.dist-info/WHEEL,sha256=oqGJCpG61FZJmvyZ3C_0aCv-2mdfcY9e3fXvyUNmWfM,136
190
+ compiled_knowledge-4.1.0a1.dist-info/top_level.txt,sha256=Cf8DAfd2vcnLiA7HlxoduOzV0Q-8surE3kzX8P9qdks,12
191
+ compiled_knowledge-4.1.0a1.dist-info/METADATA,sha256=2MW6jH05yr21k1jcKhFjlBQs4bVg4GtByq6zrhtzzDU,1787
192
+ compiled_knowledge-4.1.0a1.dist-info/licenses/LICENSE.txt,sha256=-LmkmqXKYojmS3zDxXAeTbsA82fnHA0KaRvpfIoEdjA,1068