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

Files changed (42) hide show
  1. ck/circuit/_circuit_cy.c +1 -1
  2. ck/circuit/_circuit_cy.cp313-win_amd64.pyd +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.cp313-win_amd64.pyd +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.cp313-win_amd64.pyd +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.cp313-win_amd64.pyd +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:
@@ -13,7 +13,7 @@
13
13
  "/O2"
14
14
  ],
15
15
  "include_dirs": [
16
- "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\build-env-b7kylfcw\\Lib\\site-packages\\numpy\\_core\\include"
16
+ "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\build-env-qw5_jlkb\\Lib\\site-packages\\numpy\\_core\\include"
17
17
  ],
18
18
  "name": "ck.pgm_compiler.support.circuit_table._circuit_table_cy",
19
19
  "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
@@ -1,31 +1,39 @@
1
1
  ck/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- ck/pgm.py,sha256=PjRTOot-4_FAxEnJsJ0aZVflwq-INQCn8H8kmS5WTDU,120828
2
+ ck/pgm.py,sha256=DXI3RZWBlk6wNj9VlAEDGeEUQ1WIpQwojVAt231K-Co,121095
3
3
  ck/circuit/__init__.py,sha256=klUR7OVESf53-8Ho4f32clHFsR2SOz4XgwZzfDlms88,418
4
- ck/circuit/_circuit_cy.c,sha256=TmbBc9Mxkor12-JjNH5snykGG7I-oIpd8ddd6e7EzSM,1741715
5
- ck/circuit/_circuit_cy.cp313-win_amd64.pyd,sha256=VA0u7K5Lgr-zY-5LgAqA12yCCEPVrEwGi5tIanNvc4Q,241664
4
+ ck/circuit/_circuit_cy.c,sha256=F2S4BB48_dFPkcemz98GgDy6MPuiUBZ55ag--ZHIQjA,1741715
5
+ ck/circuit/_circuit_cy.cp313-win_amd64.pyd,sha256=6IWmZrqTl8pTTx9XyHqYVGN8ATxfnBjyb1QneUoF0sU,241664
6
6
  ck/circuit/_circuit_cy.pxd,sha256=F1WU4KuX_knXQX-hwNKoHsoUK3fJLbLOxEnomWMJFpI,1057
7
7
  ck/circuit/_circuit_cy.pyx,sha256=TIjqsdyN_IzOm9XQw26kEURpL6GSL1kJO3K-UUlkbQc,27763
8
8
  ck/circuit/_circuit_py.py,sha256=gQZoEphxut2UyBL0ZqmNc8KlNBSMST_VOCqOpDMIRSM,28331
9
- ck/circuit/tmp_const.py,sha256=dG9FuGfoAG5qjYG1rNwekqKiea_KmVfxHMTOgCPbBiQ,2372
9
+ ck/circuit/tmp_const.py,sha256=9DVKsAqwNb3BrmaLoxrBoVmFqQ3nacz3wIx7k3qe8SE,2375
10
10
  ck/circuit_compiler/__init__.py,sha256=T0Igyp5jPgnIXv4oRcIYhmsOdcNOb3L4Za6dK6eYk7g,132
11
11
  ck/circuit_compiler/circuit_compiler.py,sha256=xujLh120_G7AGJpv-IZTI4S1TpNf4gzHilaqvlKvfXA,1148
12
- ck/circuit_compiler/interpret_compiler.py,sha256=KMzLzIV-BU5l8GQ2833kjios4sbGSVUm4ero7MEYvVk,8786
12
+ ck/circuit_compiler/interpret_compiler.py,sha256=xNpUdzbKgATLgF0beGKIfLonrtcVPitsvqlkqZPsbY4,8790
13
13
  ck/circuit_compiler/llvm_compiler.py,sha256=6RHUCVWCOgt3ZNyjRTl2Z2npYJMWyAFJVAIc5SAx2mY,14023
14
14
  ck/circuit_compiler/llvm_vm_compiler.py,sha256=XJhiAZmGMRRz49XUfng9lgETxVw6NgD6XCI0H3fX-1E,22200
15
15
  ck/circuit_compiler/named_circuit_compilers.py,sha256=snlD3JnhAZC-atKpf5GD0v4CGdvj2_ZhCZ3O-tsxzxc,2284
16
16
  ck/circuit_compiler/cython_vm_compiler/__init__.py,sha256=pEAwTleuZgdYhTAQMea2f9YsFK54eoNbZSbrWkW8aeE,49
17
- ck/circuit_compiler/cython_vm_compiler/_compiler.c,sha256=8GwzPOADw5b_QxJI-fIq9u8aDO8Al6mz3QRlLxhsiTs,871325
18
- ck/circuit_compiler/cython_vm_compiler/_compiler.cp313-win_amd64.pyd,sha256=Sk9QUzhXoc_bWcWRimzWizlF-o4OuD1mS7RwXSRWtpE,103936
17
+ ck/circuit_compiler/cython_vm_compiler/_compiler.c,sha256=62DbhJyCElik-RMCyPxw1juzLb1u1_z_UlflcP5gd4A,871325
18
+ ck/circuit_compiler/cython_vm_compiler/_compiler.cp313-win_amd64.pyd,sha256=vPJvuQtDifxvaP0CB6pSBegQMvxrE8-fdT9bZgrnPbo,103936
19
19
  ck/circuit_compiler/cython_vm_compiler/_compiler.pyx,sha256=550r0AkOh8ZuuTRy3e6Aq-YqBQ82EKcap8e6f3zlEuM,13278
20
20
  ck/circuit_compiler/cython_vm_compiler/cython_vm_compiler.py,sha256=3Q-HCyA7VWFoXS9gn-k4LXedzqHPvdFNvWHfDcKYv6s,4473
21
21
  ck/circuit_compiler/support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
22
  ck/circuit_compiler/support/input_vars.py,sha256=x6krN6sW9A-vZTteY4M4on_0vS4ChaaCcmnXcnQ4y0s,4812
23
- ck/circuit_compiler/support/llvm_ir_function.py,sha256=f4gD591d8cytln4vY9Lxw_cJrSyQJ3iHES49eN44eec,8612
23
+ ck/circuit_compiler/support/llvm_ir_function.py,sha256=07IUmx4bGReDu-BsUhJEWM_onm8NmsHwQzJan1rnAFE,8572
24
24
  ck/circuit_compiler/support/circuit_analyser/__init__.py,sha256=RbyIObAAb-w0Ky4fB198xAfxTh2doquN9ez68SZSZgo,536
25
- ck/circuit_compiler/support/circuit_analyser/_circuit_analyser_cy.c,sha256=pdGWGzEsPqJnlEmI1J58ccSXslpZHsdOXA39lvIZCv4,448751
26
- ck/circuit_compiler/support/circuit_analyser/_circuit_analyser_cy.cp313-win_amd64.pyd,sha256=rHmcGDLPlCoUOUbn8R1qJ0_p5DUDhvCGRjIAxkajc90,53760
25
+ ck/circuit_compiler/support/circuit_analyser/_circuit_analyser_cy.c,sha256=NaGjKozPtkX4MlLkl9iZa2SaEXIXiQLuYcXurNV6EFQ,448751
26
+ ck/circuit_compiler/support/circuit_analyser/_circuit_analyser_cy.cp313-win_amd64.pyd,sha256=VLjuF6AmvlrUl4Z6HXPcJyR5EnhmnlwAsX4DhZfYCAc,53760
27
27
  ck/circuit_compiler/support/circuit_analyser/_circuit_analyser_cy.pyx,sha256=ctDOHOjnUhdsR_XHBrgchFVTImLhsEUjU3cqkP-GdF8,3331
28
28
  ck/circuit_compiler/support/circuit_analyser/_circuit_analyser_py.py,sha256=eWjc2B946LeSzcGa9PyI4XQvlx_B1KPEiQuM6OOFjjQ,3086
29
+ ck/dataset/__init__.py,sha256=3vxB-b8LdgtoZ73q28sdPYPUbCbXARH-fNGUZcxIzIo,56
30
+ ck/dataset/cross_table.py,sha256=tLXbfONstheQdhMK0VfFa9fBxFOC-5jwW0v7mgNFUF0,9744
31
+ ck/dataset/cross_table_probabilities.py,sha256=U7LlmWUc_Ow6CVEk_6CLK0p2g8GlRpHEGPZFXrV8tmI,1997
32
+ ck/dataset/dataset.py,sha256=EC9ynRP4pCFWmeB8B6zEmPh_3c2jP3K37AnincBZc34,21698
33
+ ck/dataset/dataset_compute.py,sha256=B1BxTJ-JAsNk8l79iDRmJAQ5QwEvWgsI1wepRg4aQCQ,5845
34
+ ck/dataset/dataset_from_crosstable.py,sha256=0I4jr4PtfBtniTFBHlAOlcl_ZH0NSD37azkcA2CaWSQ,1323
35
+ ck/dataset/dataset_from_csv.py,sha256=a3r8OydeiGLN41pVm-9x5z1hvLtyUTCJdzsz2DK9MBM,5698
36
+ ck/dataset/sampled_dataset.py,sha256=8PfiTXqraSQ5rXpFUFFMN13jQL1x--_z9g6FYs2VW1U,3357
29
37
  ck/example/__init__.py,sha256=BXVxvTcl3tqgai-xJiGQIaG_ChlpPRdfWg985MQ7dwM,1744
30
38
  ck/example/alarm.py,sha256=QkHoUb6MxZzCOCX4nLE8UJazNEqAPqrFWQ01lslvdsk,25274
31
39
  ck/example/asia.py,sha256=IX8L-9YCk_DxE-PjYTv1VL33V2oxkHrL7rHmDkMj3kY,1295
@@ -36,7 +44,7 @@ ck/example/chain.py,sha256=AAqLeEUzZYir3fqBl9bzY1SZKW3HLT_FJPzXTFSOvuU,1351
36
44
  ck/example/child.py,sha256=IkYgd3LBSQI8S3-hwEWcusHuH5MjqGSKNCl0NJnw7O4,7811
37
45
  ck/example/clique.py,sha256=auWWzCV3s-r6ctdPKGcb_bulMymU2pEUuKJsqE1Onm4,1088
38
46
  ck/example/cnf_pgm.py,sha256=vzr36kokWutGgbfmsI0ZDIgdmWIsUegnO49EUYjgpVQ,1283
39
- ck/example/diamond_square.py,sha256=VYvrdFJv_E297RGneu98CV-mH2AXiPpCalCXoYjTVuE,2790
47
+ ck/example/diamond_square.py,sha256=IkHuzn_04SKXk2a9YRrxmyr5hxyL7CY3-R-GLbWq-P8,2795
40
48
  ck/example/earthquake.py,sha256=KuvHciKlidAJAxgti07BS8XoVIXHJth3khvQkP8tGls,1289
41
49
  ck/example/empty.py,sha256=tyg8Z8JIwTMR2C8oXD81pzAzvKpHRBX21ocWLdAUfE8,182
42
50
  ck/example/hailfinder.py,sha256=KMT9VobwFGWnw0JRymQTkd35HAIRFQhXnoN87mlhCYQ,39405
@@ -55,28 +63,30 @@ ck/example/star.py,sha256=3vf6xRl4MxRlhj3MGPfwKk3ipSVym-qLYJUDkiUqfe0,1578
55
63
  ck/example/stress.py,sha256=ENeOKFVFMa8WkbhhCLt2CIeYdPmHaiU_FOGIy80RYpI,1998
56
64
  ck/example/student.py,sha256=XqUIX0DxR0a3G1sqK4MM3V_pvUm3IQ5aY2hpbo_BMlo,1333
57
65
  ck/example/survey.py,sha256=KrqDgzU1V-yJHy4BEAAJQatqH9YAy8acrp6rVYAqQag,1611
58
- ck/example/triangle_square.py,sha256=D-ADGOSxCffsgukLTySsb6HVQpUnOJ-ZyMGBz_qGna4,2148
59
- ck/example/truss.py,sha256=5ud1qvPZMSKqSx0Sq1ZKcEeD_ZVUdKbEBfk5eyqhpm4,1974
66
+ ck/example/triangle_square.py,sha256=WQpFrIm8h51ZYNZ9kAtoq3XamUNiVGKCGAsMdSv5urI,2153
67
+ ck/example/truss.py,sha256=w1DNacSg2HyEz_m38t__hdl3zqzKX5pf-tc8M9PLRGo,1979
60
68
  ck/in_out/__init__.py,sha256=PKhy5qeUrmmUaECSQIkoLQ2McAfQFSwB06vQZk3vpmo,112
61
69
  ck/in_out/parse_ace_lmap.py,sha256=EZnSLhsZwdPnk2Fbe2El0YXYqvjd_cBh7PZro7ZeR04,7891
62
70
  ck/in_out/parse_ace_nnf.py,sha256=zO3smkKKiUy_g0S7WeNyhEaZu5x65wuSNIDWlA3YU_g,13350
63
- ck/in_out/parse_net.py,sha256=cBY7X4k5U8v9x_dtFZWdOpSPh-q-U47gdImNo2Tf9dY,14302
64
- ck/in_out/parser_utils.py,sha256=IKwgXBrIhHdL85n92RzB5yau_ja7DB3iAV-FHMgWsnI,5440
71
+ ck/in_out/parse_net.py,sha256=ZeHgMXBYUkboMFkbs0y7Px4Ngbooi000obl_wFfym7k,14307
72
+ ck/in_out/parser_utils.py,sha256=5OnvBKGGQbbc9ez8GwwudX2BFYTCF4gbkj6t2f73Esk,5567
65
73
  ck/in_out/pgm_pickle.py,sha256=i5LYxez356we7MzHwsQBmFdOvBJOLVKBp4u4lSwBOjU,1004
66
74
  ck/in_out/pgm_python.py,sha256=c2-yxXxJ4fF00gUD5Lvt_CSE07EgwYeHW3nSNXunEvc,10092
67
75
  ck/in_out/render_bugs.py,sha256=6YBhMIq3VRKFS0XqHbaWj6iz1io7O9icW23kukF_Cic,3383
68
76
  ck/in_out/render_net.py,sha256=LpQYAo_tF45vMIcHW1Ir5Zd_Ot69SPAK-e1Tl_6Ygo0,5147
69
77
  ck/in_out/render_pomegranate.py,sha256=gGvXyX9vOoilGIIL3rsMB07gERMU-12XPsttfSb4xLI,5764
78
+ ck/learning/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
+ ck/learning/train_generative.py,sha256=ho1RJPQQ_iq652rRnGoqVnZv4bZHVZshMAxcEsoW3h0,5700
70
80
  ck/pgm_circuit/__init__.py,sha256=B0CCjNMnPzrd0YiOEFdK4JzmRCvFIGJi3RJQ5Vg6fqA,37
71
81
  ck/pgm_circuit/marginals_program.py,sha256=DUvSND3ozQuBCZcmIsgwZ4w_IWCVV7O31Pm4PJ7ZDok,14786
72
- ck/pgm_circuit/mpe_program.py,sha256=sKj1hoxN3dTYOegj6tf5fV7KLHuqJ9FaP3tRK3HM4Xg,10245
73
- ck/pgm_circuit/pgm_circuit.py,sha256=3vKOh2gFGyB_PhfQgviCQGXv1t4dbawBL89sjm4-SPA,3287
74
- ck/pgm_circuit/program_with_slotmap.py,sha256=boS8Y1X60F-_pTM3wFyC4oP9jc-5zDc8Iv4vn7JUJWM,8959
82
+ ck/pgm_circuit/mpe_program.py,sha256=-8fcb-txUiKo2bPKhApl_GD7U_gREC5SvU_D5sQe9sg,10226
83
+ ck/pgm_circuit/pgm_circuit.py,sha256=DLjQmaVuAQ0YF6kCi15vDRiydLCJmufeo0hQJndqv2Y,3375
84
+ ck/pgm_circuit/program_with_slotmap.py,sha256=5iIPVvhGncluMR-dfCIqXGjmzSnxLL-btfy80PI23DE,8025
75
85
  ck/pgm_circuit/slot_map.py,sha256=T4nBweoiivEdBDhYZ6GWpOXqSusRbp3vrSbCTyP1qpI,857
76
86
  ck/pgm_circuit/target_marginals_program.py,sha256=x4YQM-hUQRo2OLxodKJVOAKxqNlxmiDl9nGbbknypkY,3768
77
87
  ck/pgm_circuit/wmc_program.py,sha256=WtABU74FOCCJuKRCoDL4CyZ4CJXFmt9RSxiNNHsOhRY,12699
78
88
  ck/pgm_circuit/support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
- ck/pgm_circuit/support/compile_circuit.py,sha256=krsTlZxLk_RHZL0qoRVAjyW78Zk2HZi_MrurzZIfa6Y,3259
89
+ ck/pgm_circuit/support/compile_circuit.py,sha256=5UtwaGQHWp8I5aVECXGQjkzKqXBRdO8dRunQNGSNdXo,3203
80
90
  ck/pgm_compiler/__init__.py,sha256=XCK1AWBBB9UYi6kbFnxMFzBL9a25EWfHnz_yn3ZKYuM,112
81
91
  ck/pgm_compiler/factor_elimination.py,sha256=6iMh_NdOQh4D5cuo8q1y7yUuj3glnM9I0OJ9vlJAGqU,13807
82
92
  ck/pgm_compiler/named_pgm_compilers.py,sha256=sI-dwF7mht6aEuVfsN3sIO_4oH7RrjIt5x9ZlBwVQys,3376
@@ -91,31 +101,31 @@ ck/pgm_compiler/support/factor_tables.py,sha256=tV9qE2zC8iwEQxTuXE6qiE6lmMpz4-Vc
91
101
  ck/pgm_compiler/support/join_tree.py,sha256=Chkyyo--ChgWEsDqTh8RCxPN7Z1NyvL--GjTC4ONvkY,12897
92
102
  ck/pgm_compiler/support/named_compiler_maker.py,sha256=g2MLnlkWXkISHL6dh23EY53SptTo7-itfuZogSpMdB8,1420
93
103
  ck/pgm_compiler/support/circuit_table/__init__.py,sha256=yJ05NvuNE9j0E_QnjDzHYfLqcHn5TdOleEpG3wSRgXQ,579
94
- ck/pgm_compiler/support/circuit_table/_circuit_table_cy.c,sha256=MklGnlFKB1kN5kZFFJAy4owEjxAk0TI2BLYJwKYP90I,730350
95
- ck/pgm_compiler/support/circuit_table/_circuit_table_cy.cp313-win_amd64.pyd,sha256=s-qERrwUALBRQVUv1G0II-DY9O9TIVMbOCk6zkTwboE,96256
104
+ ck/pgm_compiler/support/circuit_table/_circuit_table_cy.c,sha256=9nI3PYdEGS09uaPBjwxt0ftjimajyEqEWbyluGozm4s,730350
105
+ ck/pgm_compiler/support/circuit_table/_circuit_table_cy.cp313-win_amd64.pyd,sha256=T2p5tG6nRSq-RJ2mN80mjsRVHU--LwRb31h1IEmCCGc,96256
96
106
  ck/pgm_compiler/support/circuit_table/_circuit_table_cy.pyx,sha256=rVO1yxjZmZ6yv5s0zKq4Ji9WYrDuYTZsRG_zeF1_1xE,12015
97
107
  ck/pgm_compiler/support/circuit_table/_circuit_table_py.py,sha256=h6xPYGBSy6XHQBFLPD2D1-V7Kiw9utY68nWrcGRMEg4,11287
98
108
  ck/probability/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
- ck/probability/empirical_probability_space.py,sha256=aLUdmN98KpmgZjuO4QXqcMkK9GmF-Btvoj1SwK_gSQI,2029
109
+ ck/probability/empirical_probability_space.py,sha256=sO31UIhePRFtkUDN84HT9qhtWsYa0vYaRdXMsttNgTk,2140
100
110
  ck/probability/pgm_probability_space.py,sha256=Slmp0mwDMoVh_86Y8L1QjAQsneazcK2VGQcRW8O2C3M,1267
101
- ck/probability/probability_space.py,sha256=36_lCk3gVBU0i5SyCt2BBYoDhWnFxroaScObzmN9EYw,26172
111
+ ck/probability/probability_space.py,sha256=RXNm2gIVcabjbr6WsNebZMKqL8LY32RRaRMGHE2cU6o,26109
102
112
  ck/program/__init__.py,sha256=Ss9-0eqsGxCGloD6liH-0iqBG5Q3vPRF4XCw2hkDJ0M,110
103
113
  ck/program/program.py,sha256=gDJ5Q2kXZuaoHboa9yNTg0tQH9S-Gmw0BRx6PPV28pU,4184
104
114
  ck/program/program_buffer.py,sha256=1fiUcT7sqyr4vu8jXzK3ZsrgURFhWMdm6hr2BeS9ONA,5665
105
- ck/program/raw_program.py,sha256=J8jbyhc1X9PxX5DFMFeIIRHbh65JTkAxFRbjVjzxz7s,4257
115
+ ck/program/raw_program.py,sha256=3_XXudmdg_z9bwoul7pdrvaWgxRONjveXgPR1CK4hos,4212
106
116
  ck/sampling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
107
117
  ck/sampling/forward_sampler.py,sha256=pTtpaH_ONH67G4P-aJ1p8YZSaXr4TTD6pj3ZEI2y7KM,8348
108
118
  ck/sampling/marginals_direct_sampler.py,sha256=p1jDr1stG2Hjay3D8hILezW-5YZTX1p3odUcJDAI-OQ,4466
109
119
  ck/sampling/sampler.py,sha256=qhfguy8rnVQBVVXhJylvh-8Kq7rfHW62a3DEtv9v7Xc,2306
110
- ck/sampling/sampler_support.py,sha256=z--w6ZaJwy0lBWTzYC0SR80-i8vjZ5XFlZqo2F4QPqQ,9808
120
+ ck/sampling/sampler_support.py,sha256=q2osk-o6iWfsMXUhzfv1spPtyB9WQlQAlnuclLyOSQQ,9768
111
121
  ck/sampling/uniform_sampler.py,sha256=NCN1T77v4g4hsdNgIsZDxHBndfj4AghLSk8WKQt_2a0,2586
112
122
  ck/sampling/wmc_direct_sampler.py,sha256=7qiz-bRlQ59ZBJmg0bEG0y63pXTVXNVx4d410BGhnJg,7265
113
123
  ck/sampling/wmc_gibbs_sampler.py,sha256=GMKVW2AVtsWtP6vxE3Y2dy-dKr7GoO_vLEA9eC304fo,6567
114
124
  ck/sampling/wmc_metropolis_sampler.py,sha256=PRv7wtPZz7BcwN8iArsykVwqgY77v5km7rXcawFAUPQ,6470
115
125
  ck/sampling/wmc_rejection_sampler.py,sha256=cd0VONZf-oa491RRKfwT2LakQs0o_slgPCes8AOvSNc,4897
116
126
  ck/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
- ck/utils/iter_extras.py,sha256=QNd3mJxPsKN0Wg12K_Iuefto5A2Vv9leuMvymAdt4uo,4479
118
- ck/utils/local_config.py,sha256=-oTKvKCpm29JeHEhV1_qLC5fMS523unDzXr0VYE3M0U,9535
127
+ ck/utils/iter_extras.py,sha256=4OwHqOsChnJzTwejqU6Dl4NQX0OOd37ThOltx1NlBUc,4492
128
+ ck/utils/local_config.py,sha256=U-Yt4XW5kjXQmF0X6IPJqq0RgSPWeitA7ggomjpG6HM,9600
119
129
  ck/utils/map_list.py,sha256=T2OpjI7eDgC4geCtW_FsEr6ryiePOnKZwfDahB63zfA,3847
120
130
  ck/utils/map_set.py,sha256=BLu9BO3FCtzZlZ9MfP9STtIdQ4Me8-QKdwB7o15y7f8,3809
121
131
  ck/utils/np_extras.py,sha256=Dt9Y-afUYIf_z5PBQOzh22pg8jRt-DKm2n5jJ6APIdA,1752
@@ -175,8 +185,8 @@ ck_demos/utils/compare.py,sha256=Bwjpflevl4nusfA0zp96rInaVKFGuhC5Xv7HzA1Fobk,508
175
185
  ck_demos/utils/convert_network.py,sha256=TSKj8q7L7J5rhrvwjaDkdYZ0Sg8vV5FRL_vCanX1CQw,1363
176
186
  ck_demos/utils/sample_model.py,sha256=in-Nlv-iuNIu6y9fDuMyo7nzgimBuTAnCWcpnVqvqDQ,8839
177
187
  ck_demos/utils/stop_watch.py,sha256=VzXHRWx0V8vPSD-bLgLlEYkCkR2FA0-KmM_pfKx-Pxo,13205
178
- compiled_knowledge-4.0.0a24.dist-info/licenses/LICENSE.txt,sha256=uMYx7tmroEKNASizbCOwPveMQsD5UErLDC1_SANmNn8,1089
179
- compiled_knowledge-4.0.0a24.dist-info/METADATA,sha256=AVKPNHhibL3GdHqdsIO0Stn2FfxPTSiYsQ03YjNAoTk,1838
180
- compiled_knowledge-4.0.0a24.dist-info/WHEEL,sha256=qV0EIPljj1XC_vuSatRWjn02nZIz3N1t8jsZz7HBr2U,101
181
- compiled_knowledge-4.0.0a24.dist-info/top_level.txt,sha256=Cf8DAfd2vcnLiA7HlxoduOzV0Q-8surE3kzX8P9qdks,12
182
- compiled_knowledge-4.0.0a24.dist-info/RECORD,,
188
+ compiled_knowledge-4.1.0a1.dist-info/licenses/LICENSE.txt,sha256=uMYx7tmroEKNASizbCOwPveMQsD5UErLDC1_SANmNn8,1089
189
+ compiled_knowledge-4.1.0a1.dist-info/METADATA,sha256=e9hWaS-X8HETgzi758WKtE4m-iXA75YTeOIL4SGKQQo,1837
190
+ compiled_knowledge-4.1.0a1.dist-info/WHEEL,sha256=qV0EIPljj1XC_vuSatRWjn02nZIz3N1t8jsZz7HBr2U,101
191
+ compiled_knowledge-4.1.0a1.dist-info/top_level.txt,sha256=Cf8DAfd2vcnLiA7HlxoduOzV0Q-8surE3kzX8P9qdks,12
192
+ compiled_knowledge-4.1.0a1.dist-info/RECORD,,