diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 1438aa87..f3a6b245 100644 Binary files a/.doctrees/environment.pickle and b/.doctrees/environment.pickle differ diff --git a/.doctrees/python-api/generated/pyjuice.nodes.InputNodes.doctree b/.doctrees/python-api/generated/pyjuice.nodes.InputNodes.doctree index 1410c43a..fb83063a 100644 Binary files a/.doctrees/python-api/generated/pyjuice.nodes.InputNodes.doctree and b/.doctrees/python-api/generated/pyjuice.nodes.InputNodes.doctree differ diff --git a/.doctrees/python-api/generated/pyjuice.nodes.ProdNodes.doctree b/.doctrees/python-api/generated/pyjuice.nodes.ProdNodes.doctree index d2879e7a..ffba16ec 100644 Binary files a/.doctrees/python-api/generated/pyjuice.nodes.ProdNodes.doctree and b/.doctrees/python-api/generated/pyjuice.nodes.ProdNodes.doctree differ diff --git a/.doctrees/python-api/generated/pyjuice.nodes.SumNodes.doctree b/.doctrees/python-api/generated/pyjuice.nodes.SumNodes.doctree index 44472c25..0a45f1b4 100644 Binary files a/.doctrees/python-api/generated/pyjuice.nodes.SumNodes.doctree and b/.doctrees/python-api/generated/pyjuice.nodes.SumNodes.doctree differ diff --git a/.doctrees/python-api/generated/pyjuice.nodes.distributions.Bernoulli.doctree b/.doctrees/python-api/generated/pyjuice.nodes.distributions.Bernoulli.doctree index 9b661583..46515f01 100644 Binary files a/.doctrees/python-api/generated/pyjuice.nodes.distributions.Bernoulli.doctree and b/.doctrees/python-api/generated/pyjuice.nodes.distributions.Bernoulli.doctree differ diff --git a/.doctrees/python-api/generated/pyjuice.nodes.distributions.Categorical.doctree b/.doctrees/python-api/generated/pyjuice.nodes.distributions.Categorical.doctree index 22d9626c..63348c5d 100644 Binary files a/.doctrees/python-api/generated/pyjuice.nodes.distributions.Categorical.doctree and b/.doctrees/python-api/generated/pyjuice.nodes.distributions.Categorical.doctree differ diff --git a/.doctrees/python-api/nodes.doctree b/.doctrees/python-api/nodes.doctree index 302e1c3a..496230b7 100644 Binary files a/.doctrees/python-api/nodes.doctree and b/.doctrees/python-api/nodes.doctree differ diff --git a/_sources/python-api/generated/pyjuice.nodes.InputNodes.rst.txt b/_sources/python-api/generated/pyjuice.nodes.InputNodes.rst.txt index d5363f39..e6a6a514 100644 --- a/_sources/python-api/generated/pyjuice.nodes.InputNodes.rst.txt +++ b/_sources/python-api/generated/pyjuice.nodes.InputNodes.rst.txt @@ -13,35 +13,14 @@ .. autosummary:: - ~InputNodes._clear_tensor_circuit_hooks - ~InputNodes._run_init_callbacks ~InputNodes.duplicate ~InputNodes.get_params - ~InputNodes.get_source_ns - ~InputNodes.has_params ~InputNodes.init_parameters - ~InputNodes.is_input - ~InputNodes.is_prod - ~InputNodes.is_sum - ~InputNodes.is_tied - ~InputNodes.provided ~InputNodes.set_meta_params ~InputNodes.set_params - ~InputNodes.set_source_ns - .. rubric:: Attributes - - .. autosummary:: - - ~InputNodes.DEFAULT_BLOCK_SIZE - ~InputNodes.INIT_CALLBACKS - ~InputNodes.num_chs - ~InputNodes.num_edges - ~InputNodes.num_nodes - ~InputNodes.scope - \ No newline at end of file diff --git a/_sources/python-api/generated/pyjuice.nodes.ProdNodes.rst.txt b/_sources/python-api/generated/pyjuice.nodes.ProdNodes.rst.txt index 98348d0c..f7b02a17 100644 --- a/_sources/python-api/generated/pyjuice.nodes.ProdNodes.rst.txt +++ b/_sources/python-api/generated/pyjuice.nodes.ProdNodes.rst.txt @@ -13,38 +13,13 @@ .. autosummary:: - ~ProdNodes._clear_tensor_circuit_hooks - ~ProdNodes._construct_edges - ~ProdNodes._run_init_callbacks ~ProdNodes.duplicate - ~ProdNodes.get_source_ns - ~ProdNodes.has_params ~ProdNodes.init_parameters ~ProdNodes.is_block_sparse - ~ProdNodes.is_input - ~ProdNodes.is_prod ~ProdNodes.is_sparse - ~ProdNodes.is_sum - ~ProdNodes.is_tied - ~ProdNodes.provided - ~ProdNodes.set_source_ns - .. rubric:: Attributes - - .. autosummary:: - - ~ProdNodes.BLOCK_SPARSE - ~ProdNodes.DEFAULT_BLOCK_SIZE - ~ProdNodes.INIT_CALLBACKS - ~ProdNodes.SPARSE - ~ProdNodes.edge_type - ~ProdNodes.num_chs - ~ProdNodes.num_edges - ~ProdNodes.num_nodes - ~ProdNodes.scope - \ No newline at end of file diff --git a/_sources/python-api/generated/pyjuice.nodes.SumNodes.rst.txt b/_sources/python-api/generated/pyjuice.nodes.SumNodes.rst.txt index eb41c050..d2d7bb17 100644 --- a/_sources/python-api/generated/pyjuice.nodes.SumNodes.rst.txt +++ b/_sources/python-api/generated/pyjuice.nodes.SumNodes.rst.txt @@ -13,28 +13,11 @@ .. autosummary:: - ~SumNodes._clear_tensor_circuit_hooks - ~SumNodes._construct_edges - ~SumNodes._get_edges_as_mask - ~SumNodes._reorder_edges - ~SumNodes._run_init_callbacks - ~SumNodes._standardize_chs ~SumNodes.duplicate ~SumNodes.gather_parameters ~SumNodes.get_params - ~SumNodes.get_source_ns - ~SumNodes.get_zero_param_mask - ~SumNodes.has_params ~SumNodes.init_parameters - ~SumNodes.is_input - ~SumNodes.is_prod - ~SumNodes.is_sum - ~SumNodes.is_tied - ~SumNodes.provided - ~SumNodes.set_edges ~SumNodes.set_params - ~SumNodes.set_source_ns - ~SumNodes.set_zero_param_mask ~SumNodes.update_param_flows ~SumNodes.update_parameters @@ -42,15 +25,4 @@ - .. rubric:: Attributes - - .. autosummary:: - - ~SumNodes.DEFAULT_BLOCK_SIZE - ~SumNodes.INIT_CALLBACKS - ~SumNodes.num_chs - ~SumNodes.num_edges - ~SumNodes.num_nodes - ~SumNodes.scope - \ No newline at end of file diff --git a/_sources/python-api/generated/pyjuice.nodes.distributions.Bernoulli.rst.txt b/_sources/python-api/generated/pyjuice.nodes.distributions.Bernoulli.rst.txt index 781ad6ac..c2daa464 100644 --- a/_sources/python-api/generated/pyjuice.nodes.distributions.Bernoulli.rst.txt +++ b/_sources/python-api/generated/pyjuice.nodes.distributions.Bernoulli.rst.txt @@ -9,24 +9,6 @@ .. automethod:: __init__ - .. rubric:: Methods - - .. autosummary:: - - ~Bernoulli._get_constructor - ~Bernoulli.bk_flow_fn - ~Bernoulli.em_fn - ~Bernoulli.fw_mar_fn - ~Bernoulli.get_metadata - ~Bernoulli.get_signature - ~Bernoulli.init_meta_parameters - ~Bernoulli.init_parameters - ~Bernoulli.normalize_parameters - ~Bernoulli.num_param_flows - ~Bernoulli.num_parameters - ~Bernoulli.sample_fn - ~Bernoulli.set_meta_parameters - diff --git a/_sources/python-api/generated/pyjuice.nodes.distributions.Categorical.rst.txt b/_sources/python-api/generated/pyjuice.nodes.distributions.Categorical.rst.txt index 2e49d041..ecec25d4 100644 --- a/_sources/python-api/generated/pyjuice.nodes.distributions.Categorical.rst.txt +++ b/_sources/python-api/generated/pyjuice.nodes.distributions.Categorical.rst.txt @@ -9,24 +9,6 @@ .. automethod:: __init__ - .. rubric:: Methods - - .. autosummary:: - - ~Categorical._get_constructor - ~Categorical.bk_flow_fn - ~Categorical.em_fn - ~Categorical.fw_mar_fn - ~Categorical.get_metadata - ~Categorical.get_signature - ~Categorical.init_meta_parameters - ~Categorical.init_parameters - ~Categorical.normalize_parameters - ~Categorical.num_param_flows - ~Categorical.num_parameters - ~Categorical.sample_fn - ~Categorical.set_meta_parameters - diff --git a/python-api/generated/pyjuice.nodes.InputNodes.html b/python-api/generated/pyjuice.nodes.InputNodes.html index f0cdb933..35c00be8 100644 --- a/python-api/generated/pyjuice.nodes.InputNodes.html +++ b/python-api/generated/pyjuice.nodes.InputNodes.html @@ -97,7 +97,19 @@

pyjuice.nodes.InputNodes
class pyjuice.nodes.InputNodes(num_node_blocks: int, scope: Sequence | BitSet, dist: Distribution, params: torch.Tensor | None = None, block_size: int = 0, _no_set_meta_params: bool = False, **kwargs)
-
+

A class representing vectors of input nodes.

+
+
Parameters:
+
    +
  • num_node_blocks (int) – number of node blocks

  • +
  • scope (Union[Sequence,BitSet]) – variable scope (set of variables)

  • +
  • dist (Distribution) – input distribution

  • +
  • params (Optional[Tensor]) – parameters of the vector of nodes

  • +
  • block_size (int) – block size

  • +
+
+
+
__init__(num_node_blocks: int, scope: Sequence | BitSet, dist: Distribution, params: torch.Tensor | None = None, block_size: int = 0, _no_set_meta_params: bool = False, **kwargs) None
@@ -105,73 +117,20 @@

pyjuice.nodes.InputNodesMethods

- - - - - - - + - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - -

_clear_tensor_circuit_hooks([recursive])

_run_init_callbacks(**kwargs)

duplicate([scope, tie_params])

Create a duplication of the current node with the same specification (i.e., number of nodes, block size, distribution).

get_params()

get_source_ns()

has_params()

Get the input node parameters.

init_parameters([perturbation, recursive, ...])

is_input()

is_prod()

is_sum()

is_tied()

provided(var_name)

set_meta_params(**kwargs)

set_params(params[, normalize])

set_source_ns(source_ns)

-

Attributes

- - - - - - - - - - - - - + - - + + - - + +

DEFAULT_BLOCK_SIZE

INIT_CALLBACKS

num_chs

num_edges

Randomly initialize node parameters.

num_nodes

set_meta_params(**kwargs)

Set the meta-parameters such as the mask of input nodes with the MaskedCategorical distribution.

scope

set_params(params[, normalize])

Set the input node parameters.

diff --git a/python-api/generated/pyjuice.nodes.ProdNodes.html b/python-api/generated/pyjuice.nodes.ProdNodes.html index b062e176..e66028c8 100644 --- a/python-api/generated/pyjuice.nodes.ProdNodes.html +++ b/python-api/generated/pyjuice.nodes.ProdNodes.html @@ -97,7 +97,18 @@

pyjuice.nodes.ProdNodes
class pyjuice.nodes.ProdNodes(num_node_blocks: int, chs: Sequence[CircuitNodes], edge_ids: ndarray | Tensor | None = None, block_size: int = 0, **kwargs)
-
+

A class representing vectors of product nodes.

+
+
Parameters:
+
    +
  • num_node_blocks (int) – number of node blocks

  • +
  • chs (Sequence[CircuitNodes]) – sequence of child nodes

  • +
  • edge_ids (Optional[Tensor]) – a matrix of size [# product node blocks, # children] - the ith product node block is connected to the `edge_ids[i,j]`th node block in the jth child

  • +
  • block_size (int) – block size

  • +
+
+
+
__init__(num_node_blocks: int, chs: Sequence[CircuitNodes], edge_ids: ndarray | Tensor | None = None, block_size: int = 0, **kwargs) None
@@ -105,82 +116,17 @@

pyjuice.nodes.ProdNodesMethods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

_clear_tensor_circuit_hooks([recursive])

_construct_edges(edge_ids)

_run_init_callbacks(**kwargs)

duplicate(*args[, tie_params, ...])

get_source_ns()

has_params()

init_parameters([perturbation, recursive, ...])

is_block_sparse()

is_input()

is_prod()

is_sparse()

is_sum()

is_tied()

provided(var_name)

set_source_ns(source_ns)

-

Attributes

- - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + +

BLOCK_SPARSE

DEFAULT_BLOCK_SIZE

INIT_CALLBACKS

SPARSE

edge_type

num_chs

duplicate(*args[, tie_params, ...])

Create a duplication of the current node with the same specification (i.e., number of nodes, block size).

num_edges

init_parameters([perturbation, recursive, ...])

Randomly initialize node parameters.

num_nodes

is_block_sparse()

Whether the edge type is BLOCK_SPARSE.

scope

is_sparse()

Whether the edge type is SPARSE.

diff --git a/python-api/generated/pyjuice.nodes.SumNodes.html b/python-api/generated/pyjuice.nodes.SumNodes.html index f06d13b4..e9f55476 100644 --- a/python-api/generated/pyjuice.nodes.SumNodes.html +++ b/python-api/generated/pyjuice.nodes.SumNodes.html @@ -97,7 +97,18 @@

pyjuice.nodes.SumNodes
class pyjuice.nodes.SumNodes(num_node_blocks: int, chs: Sequence[CircuitNodes], edge_ids: Tensor | Sequence[Tensor] | None = None, params: Tensor | None = None, zero_param_mask: Tensor | None = None, block_size: int = 0, **kwargs)
-
+

A class representing vectors of sum nodes.

+
+
Parameters:
+
    +
  • num_node_blocks (int) – number of node blocks

  • +
  • chs (Sequence[CircuitNodes]) – sequence of child nodes

  • +
  • edge_ids (Optional[Tensor]) – a matrix of size [2, # edges] - every size-2 column vector [i,j] defines a set of edges that fully connect the ith sum node block and the jth child node block

  • +
  • block_size (int) – block size

  • +
+
+
+
__init__(num_node_blocks: int, chs: Sequence[CircuitNodes], edge_ids: Tensor | Sequence[Tensor] | None = None, params: Tensor | None = None, zero_param_mask: Tensor | None = None, block_size: int = 0, **kwargs) None
@@ -105,100 +116,26 @@

pyjuice.nodes.SumNodesMethods

- - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

_clear_tensor_circuit_hooks([recursive])

_construct_edges(edge_ids[, reorder])

_get_edges_as_mask()

_reorder_edges(edge_ids)

_run_init_callbacks(**kwargs)

_standardize_chs(chs)

duplicate(*args[, tie_params])

Create a duplication of the current node with the same specification (i.e., number of nodes, block size).

gather_parameters(params)

Update parameters from the current node to the compiled pyjuice.TensorCircuit.

get_params()

get_source_ns()

get_zero_param_mask()

has_params()

init_parameters([perturbation, recursive, ...])

is_input()

is_prod()

is_sum()

is_tied()

provided(var_name)

set_edges(edge_ids)

set_params(params[, normalize, pseudocount])

set_source_ns(source_ns)

set_zero_param_mask([zero_param_mask])

update_param_flows(param_flows[, ...])

update_parameters(params[, clone])

-

Attributes

- - - - - - - + - - + + - - + + - - + + - - + +

DEFAULT_BLOCK_SIZE

INIT_CALLBACKS

Get the sum node parameters.

num_chs

init_parameters([perturbation, recursive, ...])

Randomly initialize node parameters.

num_edges

set_params(params[, normalize, pseudocount])

Set the sum node parameters.

num_nodes

update_param_flows(param_flows[, ...])

Update parameter flows from pyjuice.TensorCircuit to the current node.

scope

update_parameters(params[, clone])

Update parameters from pyjuice.TensorCircuit to the current node.

diff --git a/python-api/generated/pyjuice.nodes.distributions.Bernoulli.html b/python-api/generated/pyjuice.nodes.distributions.Bernoulli.html index 489eb04d..f9c5c6f6 100644 --- a/python-api/generated/pyjuice.nodes.distributions.Bernoulli.html +++ b/python-api/generated/pyjuice.nodes.distributions.Bernoulli.html @@ -101,50 +101,6 @@

pyjuice.nodes.distributions.Bernoulli__init__()

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

_get_constructor()

bk_flow_fn(local_offsets, ns_offsets, data, ...)

Accumulate statistics and compute input parameter flows.

em_fn(local_offsets, params_ptr, ...)

Parameter update with EM Args: local_offsets: [BLOCK_SIZE] the local indices of the to-be-processed input nodes params_ptr: pointer to the parameter vector param_flows_ptr: pointer to the parameter flow vector s_pids: [BLOCK_SIZE] start parameter index (offset) for all input nodes s_pfids: [BLOCK_SIZE] start parameter flow index (offset) for all input nodes metadata_ptr: pointer to metadata s_mids_ptr: pointer to the start metadata index (offset) mask: [BLOCK_SIZE] indicate whether each node should be processed step_size: EM step size (0, 1] pseudocount: pseudocount BLOCK_SIZE: CUDA block size

fw_mar_fn(local_offsets, data, params_ptr, ...)

Forward evaluation for log-probabilities.

get_metadata()

get_signature()

init_meta_parameters(num_nodes, params, **kwargs)

Initialize meta-parameters for num_nodes nodes.

init_parameters(num_nodes[, perturbation, ...])

Initialize parameters for num_nodes nodes.

normalize_parameters(params, **kwargs)

num_param_flows()

The number of parameter flows per node.

num_parameters()

The number of parameters per node.

sample_fn(samples_ptr, local_offsets, ...)

Sample from the distribution.

set_meta_parameters(**kwargs)

Assign meta-parameters to self._params.

Attributes

diff --git a/python-api/generated/pyjuice.nodes.distributions.Categorical.html b/python-api/generated/pyjuice.nodes.distributions.Categorical.html index b67bf8bc..ed7c5903 100644 --- a/python-api/generated/pyjuice.nodes.distributions.Categorical.html +++ b/python-api/generated/pyjuice.nodes.distributions.Categorical.html @@ -101,50 +101,6 @@

pyjuice.nodes.distributions.Categorical__init__(num_cats: int)
-

Methods

-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

_get_constructor()

bk_flow_fn(local_offsets, ns_offsets, data, ...)

Accumulate statistics and compute input parameter flows.

em_fn(local_offsets, params_ptr, ...)

Parameter update with EM Args: local_offsets: [BLOCK_SIZE] the local indices of the to-be-processed input nodes params_ptr: pointer to the parameter vector param_flows_ptr: pointer to the parameter flow vector s_pids: [BLOCK_SIZE] start parameter index (offset) for all input nodes s_pfids: [BLOCK_SIZE] start parameter flow index (offset) for all input nodes metadata_ptr: pointer to metadata s_mids_ptr: pointer to the start metadata index (offset) mask: [BLOCK_SIZE] indicate whether each node should be processed step_size: EM step size (0, 1] pseudocount: pseudocount BLOCK_SIZE: CUDA block size

fw_mar_fn(local_offsets, data, params_ptr, ...)

Forward evaluation for log-probabilities.

get_metadata()

get_signature()

init_meta_parameters(num_nodes, params, **kwargs)

Initialize meta-parameters for num_nodes nodes.

init_parameters(num_nodes[, perturbation, ...])

Initialize parameters for num_nodes nodes.

normalize_parameters(params)

num_param_flows()

The number of parameter flows per node.

num_parameters()

The number of parameters per node.

sample_fn(samples_ptr, local_offsets, ...)

Sample from the distribution.

set_meta_parameters(**kwargs)

Assign meta-parameters to self._params.

Attributes

diff --git a/python-api/nodes.html b/python-api/nodes.html index 69e01a16..a8209e87 100644 --- a/python-api/nodes.html +++ b/python-api/nodes.html @@ -103,13 +103,13 @@

Nodes

- + - + - +

InputNodes

A class representing vectors of input nodes.

ProdNodes

A class representing vectors of product nodes.

SumNodes

A class representing vectors of sum nodes.

diff --git a/searchindex.js b/searchindex.js index aed38f3c..8f2f6641 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["index", "python-api/generated/pyjuice.blockify", "python-api/generated/pyjuice.compile", "python-api/generated/pyjuice.deepcopy", "python-api/generated/pyjuice.inputs", "python-api/generated/pyjuice.merge", "python-api/generated/pyjuice.multiply", "python-api/generated/pyjuice.nodes.InputNodes", "python-api/generated/pyjuice.nodes.ProdNodes", "python-api/generated/pyjuice.nodes.SumNodes", "python-api/generated/pyjuice.nodes.distributions.Bernoulli", "python-api/generated/pyjuice.nodes.distributions.Categorical", "python-api/generated/pyjuice.nodes.foldup_aggregate", "python-api/generated/pyjuice.nodes.foreach", "python-api/generated/pyjuice.set_block_size", "python-api/generated/pyjuice.summate", "python-api/generated/pyjuice.unblockify", "python-api/nodes", "python-api/pyjuice", "python-api/tensorcircuit"], "filenames": ["index.rst", "python-api/generated/pyjuice.blockify.rst", "python-api/generated/pyjuice.compile.rst", "python-api/generated/pyjuice.deepcopy.rst", "python-api/generated/pyjuice.inputs.rst", "python-api/generated/pyjuice.merge.rst", "python-api/generated/pyjuice.multiply.rst", "python-api/generated/pyjuice.nodes.InputNodes.rst", "python-api/generated/pyjuice.nodes.ProdNodes.rst", "python-api/generated/pyjuice.nodes.SumNodes.rst", "python-api/generated/pyjuice.nodes.distributions.Bernoulli.rst", "python-api/generated/pyjuice.nodes.distributions.Categorical.rst", "python-api/generated/pyjuice.nodes.foldup_aggregate.rst", "python-api/generated/pyjuice.nodes.foreach.rst", "python-api/generated/pyjuice.set_block_size.rst", "python-api/generated/pyjuice.summate.rst", "python-api/generated/pyjuice.unblockify.rst", "python-api/nodes.rst", "python-api/pyjuice.rst", "python-api/tensorcircuit.rst"], "titles": ["Welcome to PyJuice\u2019s documentation!", "pyjuice.blockify", "pyjuice.compile", "pyjuice.deepcopy", "pyjuice.inputs", "pyjuice.merge", "pyjuice.multiply", "pyjuice.nodes.InputNodes", "pyjuice.nodes.ProdNodes", "pyjuice.nodes.SumNodes", "pyjuice.nodes.distributions.Bernoulli", "pyjuice.nodes.distributions.Categorical", "pyjuice.nodes.foldup_aggregate", "pyjuice.nodes.foreach", "pyjuice.set_block_size", "pyjuice.summate", "pyjuice.unblockify", "pyjuice.nodes", "pyjuice", "pyjuice.TensorCircuit"], "terms": {"i": [0, 4, 6, 15, 19], "python": 0, "librari": 0, "probabilist": 0, "circuit": [0, 19], "It": [0, 6, 15], "aim": 0, "provid": 0, "easi": 0, "us": [0, 1, 2], "environ": 0, "defin": [0, 4, 6, 15], "pc": [0, 1, 2, 3, 4, 5, 6, 14, 15, 16], "support": 0, "effici": 0, "scalabl": 0, "train": 0, "infer": 0, "instal": 0, "tutori": 0, "node": [0, 2, 4, 5, 6, 14, 15, 16], "tensorcircuit": 0, "root_n": [1, 3, 16, 19], "circuitnod": [1, 2, 3, 4, 5, 6, 8, 9, 12, 13, 15, 16, 19], "sparsity_toler": 1, "float": [1, 2, 19], "0": [1, 2, 4, 5, 7, 8, 9, 14, 15, 19], "25": 1, "max_target_block_s": 1, "int": [1, 2, 3, 4, 7, 8, 9, 11, 14, 15, 16, 19], "32": 1, "use_cuda": 1, "bool": [1, 2, 3, 6, 7, 16, 19], "true": [1, 2, 6, 16, 19], "gener": 1, "an": [1, 2, 4, 6, 15, 16], "equival": [1, 2, 16], "potenti": [1, 2], "high": 1, "block": [1, 2, 4, 6, 14, 15, 16], "size": [1, 4, 6, 14, 15, 16], "paramet": [1, 2, 3, 4, 5, 6, 14, 15, 16, 19], "input": [1, 3, 5, 14, 15, 16, 19], "allow": [1, 2], "fraction": [1, 2], "zero": 1, "ad": [1, 2], "should": [1, 4, 14, 15], "rang": 1, "1": [1, 5, 6, 14, 16, 19], "maximum": [1, 2], "search": 1, "gpu": [1, 2], "when": 1, "possibl": 1, "return": [1, 2, 3, 4, 6, 15, 16], "n": 2, "layer_sparsity_tol": [2, 19], "5": [2, 5, 19], "max_num_partit": [2, 19], "none": [2, 3, 4, 6, 7, 8, 9, 12, 15, 16, 19], "disable_gpu_compil": [2, 19], "fals": [2, 3, 6, 7, 19], "force_gpu_compil": [2, 19], "max_tied_ns_per_parflow_block": [2, 19], "8": [2, 19], "verbos": [2, 19], "modul": 2, "repres": 2, "dag": 2, "torch": [2, 7], "nn": 2, "root": 2, "": 2, "pseudo": 2, "edg": [2, 6, 15], "within": 2, "everi": [2, 6, 15], "layer": [2, 19], "better": 2, "set": [2, 4, 6, 14, 15], "small": 2, "number": [2, 4, 15], "spars": 2, "option": [2, 3, 4, 6, 15, 16], "partit": 2, "forc": 2, "cpu": 2, "how": 2, "mani": 2, "group": 2, "ti": [2, 3], "ar": 2, "share": 2, "same": [2, 3, 4, 6, 15], "flow": [2, 19], "gradient": 2, "accumul": 2, "higher": 2, "valu": 2, "consum": 2, "less": 2, "memori": 2, "lower": 2, "avoid": 2, "stall": 2, "caus": 2, "atom": 2, "oper": 2, "whether": [2, 3, 16], "displai": 2, "progress": 2, "type": 2, "tie_param": 3, "var_map": 3, "dict": [3, 12, 19], "creat": 3, "tie": 3, "between": 3, "origin": 3, "copi": [3, 16], "alwai": 3, "map": 3, "dictionari": [3, 16], "variabl": [3, 4, 6, 15], "var": [4, 14], "union": [4, 6, 15], "sequenc": [4, 7, 8, 9, 16], "num_node_block": [4, 5, 6, 7, 8, 9, 14, 15], "dist": [4, 5, 7, 14], "distribut": [4, 7], "object": [4, 6, 15], "param": [4, 7, 9], "tensor": [4, 6, 7, 8, 9, 15, 19], "num_nod": [4, 14, 15], "block_siz": [4, 6, 7, 8, 9, 14, 15, 16], "kwarg": [4, 6, 7, 8, 9, 12, 15, 19], "inputnod": [4, 6, 15], "construct": [4, 6, 14, 15], "vector": [4, 6, 15], "have": [4, 6, 15], "id": 4, "list": [4, 6, 15], "multivari": 4, "each": [4, 15], "e": [4, 6, 15], "total": [4, 15], "from": 4, "altern": [4, 15], "divic": [4, 15], "doe": [4, 15], "chang": [4, 15], "semant": [4, 15], "affect": [4, 15], "speed": [4, 15], "compil": [4, 15], "subclass": [4, 6, 15], "ns1": 5, "arg": [5, 6, 15], "ident": 5, "region": 5, "togeth": 5, "first": [5, 6, 15], "remain": [5, 6, 15], "exampl": [5, 14], "i00": 5, "categor": [5, 14], "num_cat": [5, 11, 14], "i01": 5, "i10": 5, "i11": 5, "m00": 5, "multipli": [5, 14], "m01": 5, "n0": 5, "summat": [5, 14], "n1": 5, "n_new": 5, "nodes1": [6, 15], "prodnodesch": 6, "edge_id": [6, 8, 9, 15], "sparse_edg": 6, "prodnod": [6, 15], "product": 6, "given": [6, 15], "children": [6, 15], "disjoint": 6, "note": [6, 15], "requir": [6, 15], "all": [6, 15], "If": [6, 15], "specifi": 6, "output": 6, "where": 6, "ith": [6, 15], "connect": [6, 15], "child": [6, 15], "By": 6, "default": 6, "denot": 6, "unless": 6, "assum": 6, "sumnod": [6, 15], "matrix": [6, 15], "j": [6, 15], "th": 6, "jth": [6, 15], "becom": 6, "we": 6, "class": [7, 8, 9, 10, 11, 14, 19], "scope": 7, "bitset": 7, "_no_set_meta_param": 7, "__init__": [7, 8, 9, 10, 11, 14], "method": [7, 8, 9, 10, 11], "attribut": [7, 8, 9, 10, 11], "ch": [8, 9], "ndarrai": 8, "zero_param_mask": 9, "func": [12, 13], "callabl": [12, 13, 19], "root_nod": [12, 13], "cach": [12, 19], "context": 14, "manag": 14, "target": [14, 16], "16": 14, "ni": 14, "4": 14, "20": 14, "print": 14, "64": 14, "sumnodesch": 15, "sum": 15, "fulli": 15, "2": 15, "column": 15, "recurs": 16, "keys_to_copi": 16, "str": [16, 19], "decreas": 16, "do": 16, "just": 16, "current": 16, "properti": 16, "test": 19, "forward": 19, "input_layer_fn": 19, "return_cach": 19, "record_cudagraph": 19, "apply_cudagraph": 19, "force_use_fp16": 19, "force_use_fp32": 19, "b": 19, "num_var": 19, "custom": 19, "function": 19, "string": 19, "try": 19, "call": 19, "correspond": 19, "member": 19, "input_lay": 19, "addit": 19, "argument": 19, "backward": 19, "ll_weight": 19, "compute_param_flow": 19, "flows_memori": 19, "allow_modify_flow": 19, "comput": 19, "num_root": 19}, "objects": {"pyjuice": [[19, 0, 1, "", "TensorCircuit"], [1, 2, 1, "", "blockify"], [2, 2, 1, "", "compile"], [3, 2, 1, "", "deepcopy"], [4, 2, 1, "", "inputs"], [5, 2, 1, "", "merge"], [6, 2, 1, "", "multiply"], [14, 0, 1, "", "set_block_size"], [15, 2, 1, "", "summate"], [16, 2, 1, "", "unblockify"]], "pyjuice.TensorCircuit": [[19, 1, 1, "", "backward"], [19, 1, 1, "", "forward"]], "pyjuice.nodes": [[7, 0, 1, "", "InputNodes"], [8, 0, 1, "", "ProdNodes"], [9, 0, 1, "", "SumNodes"], [12, 2, 1, "", "foldup_aggregate"], [13, 2, 1, "", "foreach"]], "pyjuice.nodes.InputNodes": [[7, 1, 1, "", "__init__"]], "pyjuice.nodes.ProdNodes": [[8, 1, 1, "", "__init__"]], "pyjuice.nodes.SumNodes": [[9, 1, 1, "", "__init__"]], "pyjuice.nodes.distributions": [[10, 0, 1, "", "Bernoulli"], [11, 0, 1, "", "Categorical"]], "pyjuice.nodes.distributions.Bernoulli": [[10, 1, 1, "", "__init__"]], "pyjuice.nodes.distributions.Categorical": [[11, 1, 1, "", "__init__"]], "pyjuice.set_block_size": [[14, 1, 1, "", "__init__"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "function", "Python function"]}, "titleterms": {"welcom": 0, "pyjuic": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "": 0, "document": 0, "get": 0, "start": 0, "api": 0, "blockifi": 1, "compil": [2, 18], "deepcopi": 3, "input": [4, 17], "merg": 5, "multipli": 6, "node": [7, 8, 9, 10, 11, 12, 13, 17], "inputnod": 7, "prodnod": 8, "sumnod": 9, "distribut": [10, 11, 17], "bernoulli": 10, "categor": 11, "foldup_aggreg": 12, "foreach": 13, "set_block_s": 14, "summat": 15, "unblockifi": 16, "method": 17, "pc": 18, "creation": 18, "structur": 18, "transform": 18, "tensorcircuit": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx": 60}, "alltitles": {"Welcome to PyJuice\u2019s documentation!": [[0, "welcome-to-pyjuice-s-documentation"]], "Getting started": [[0, "getting-started"]], "API": [[0, "api"]], "pyjuice.blockify": [[1, "pyjuice-blockify"]], "pyjuice.compile": [[2, "pyjuice-compile"]], "pyjuice.deepcopy": [[3, "pyjuice-deepcopy"]], "pyjuice.inputs": [[4, "pyjuice-inputs"]], "pyjuice.merge": [[5, "pyjuice-merge"]], "pyjuice.multiply": [[6, "pyjuice-multiply"]], "pyjuice.nodes.InputNodes": [[7, "pyjuice-nodes-inputnodes"]], "pyjuice.nodes.ProdNodes": [[8, "pyjuice-nodes-prodnodes"]], "pyjuice.nodes.SumNodes": [[9, "pyjuice-nodes-sumnodes"]], "pyjuice.nodes.distributions.Bernoulli": [[10, "pyjuice-nodes-distributions-bernoulli"]], "pyjuice.nodes.distributions.Categorical": [[11, "pyjuice-nodes-distributions-categorical"]], "pyjuice.nodes.foldup_aggregate": [[12, "pyjuice-nodes-foldup-aggregate"]], "pyjuice.nodes.foreach": [[13, "pyjuice-nodes-foreach"]], "pyjuice.set_block_size": [[14, "pyjuice-set-block-size"]], "pyjuice.summate": [[15, "pyjuice-summate"]], "pyjuice.unblockify": [[16, "pyjuice-unblockify"]], "pyjuice.nodes": [[17, "pyjuice-nodes"]], "Nodes": [[17, "nodes"]], "Methods": [[17, "methods"]], "Input Distributions": [[17, "input-distributions"]], "pyjuice": [[18, "pyjuice"]], "PC Creation": [[18, "pc-creation"]], "PC Structure Transformation": [[18, "pc-structure-transformation"]], "PC Compilation": [[18, "pc-compilation"]], "pyjuice.TensorCircuit": [[19, "pyjuice-tensorcircuit"]]}, "indexentries": {"blockify() (in module pyjuice)": [[1, "pyjuice.blockify"]], "compile() (in module pyjuice)": [[2, "pyjuice.compile"]], "deepcopy() (in module pyjuice)": [[3, "pyjuice.deepcopy"]], "inputs() (in module pyjuice)": [[4, "pyjuice.inputs"]], "merge() (in module pyjuice)": [[5, "pyjuice.merge"]], "multiply() (in module pyjuice)": [[6, "pyjuice.multiply"]], "inputnodes (class in pyjuice.nodes)": [[7, "pyjuice.nodes.InputNodes"]], "__init__() (pyjuice.nodes.inputnodes method)": [[7, "pyjuice.nodes.InputNodes.__init__"]], "prodnodes (class in pyjuice.nodes)": [[8, "pyjuice.nodes.ProdNodes"]], "__init__() (pyjuice.nodes.prodnodes method)": [[8, "pyjuice.nodes.ProdNodes.__init__"]], "sumnodes (class in pyjuice.nodes)": [[9, "pyjuice.nodes.SumNodes"]], "__init__() (pyjuice.nodes.sumnodes method)": [[9, "pyjuice.nodes.SumNodes.__init__"]], "bernoulli (class in pyjuice.nodes.distributions)": [[10, "pyjuice.nodes.distributions.Bernoulli"]], "__init__() (pyjuice.nodes.distributions.bernoulli method)": [[10, "pyjuice.nodes.distributions.Bernoulli.__init__"]], "categorical (class in pyjuice.nodes.distributions)": [[11, "pyjuice.nodes.distributions.Categorical"]], "__init__() (pyjuice.nodes.distributions.categorical method)": [[11, "pyjuice.nodes.distributions.Categorical.__init__"]], "foldup_aggregate() (in module pyjuice.nodes)": [[12, "pyjuice.nodes.foldup_aggregate"]], "foreach() (in module pyjuice.nodes)": [[13, "pyjuice.nodes.foreach"]], "__init__() (pyjuice.set_block_size method)": [[14, "pyjuice.set_block_size.__init__"]], "set_block_size (class in pyjuice)": [[14, "pyjuice.set_block_size"]], "summate() (in module pyjuice)": [[15, "pyjuice.summate"]], "unblockify() (in module pyjuice)": [[16, "pyjuice.unblockify"]], "tensorcircuit (class in pyjuice)": [[19, "pyjuice.TensorCircuit"]], "backward() (pyjuice.tensorcircuit method)": [[19, "pyjuice.TensorCircuit.backward"]], "forward() (pyjuice.tensorcircuit method)": [[19, "pyjuice.TensorCircuit.forward"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["index", "python-api/generated/pyjuice.blockify", "python-api/generated/pyjuice.compile", "python-api/generated/pyjuice.deepcopy", "python-api/generated/pyjuice.inputs", "python-api/generated/pyjuice.merge", "python-api/generated/pyjuice.multiply", "python-api/generated/pyjuice.nodes.InputNodes", "python-api/generated/pyjuice.nodes.ProdNodes", "python-api/generated/pyjuice.nodes.SumNodes", "python-api/generated/pyjuice.nodes.distributions.Bernoulli", "python-api/generated/pyjuice.nodes.distributions.Categorical", "python-api/generated/pyjuice.nodes.foldup_aggregate", "python-api/generated/pyjuice.nodes.foreach", "python-api/generated/pyjuice.set_block_size", "python-api/generated/pyjuice.summate", "python-api/generated/pyjuice.unblockify", "python-api/nodes", "python-api/pyjuice", "python-api/tensorcircuit"], "filenames": ["index.rst", "python-api/generated/pyjuice.blockify.rst", "python-api/generated/pyjuice.compile.rst", "python-api/generated/pyjuice.deepcopy.rst", "python-api/generated/pyjuice.inputs.rst", "python-api/generated/pyjuice.merge.rst", "python-api/generated/pyjuice.multiply.rst", "python-api/generated/pyjuice.nodes.InputNodes.rst", "python-api/generated/pyjuice.nodes.ProdNodes.rst", "python-api/generated/pyjuice.nodes.SumNodes.rst", "python-api/generated/pyjuice.nodes.distributions.Bernoulli.rst", "python-api/generated/pyjuice.nodes.distributions.Categorical.rst", "python-api/generated/pyjuice.nodes.foldup_aggregate.rst", "python-api/generated/pyjuice.nodes.foreach.rst", "python-api/generated/pyjuice.set_block_size.rst", "python-api/generated/pyjuice.summate.rst", "python-api/generated/pyjuice.unblockify.rst", "python-api/nodes.rst", "python-api/pyjuice.rst", "python-api/tensorcircuit.rst"], "titles": ["Welcome to PyJuice\u2019s documentation!", "pyjuice.blockify", "pyjuice.compile", "pyjuice.deepcopy", "pyjuice.inputs", "pyjuice.merge", "pyjuice.multiply", "pyjuice.nodes.InputNodes", "pyjuice.nodes.ProdNodes", "pyjuice.nodes.SumNodes", "pyjuice.nodes.distributions.Bernoulli", "pyjuice.nodes.distributions.Categorical", "pyjuice.nodes.foldup_aggregate", "pyjuice.nodes.foreach", "pyjuice.set_block_size", "pyjuice.summate", "pyjuice.unblockify", "pyjuice.nodes", "pyjuice", "pyjuice.TensorCircuit"], "terms": {"i": [0, 4, 6, 8, 9, 15, 19], "python": 0, "librari": 0, "probabilist": 0, "circuit": [0, 19], "It": [0, 6, 15], "aim": 0, "provid": 0, "easi": 0, "us": [0, 1, 2], "environ": 0, "defin": [0, 4, 6, 9, 15], "pc": [0, 1, 2, 3, 4, 5, 6, 14, 15, 16], "support": 0, "effici": 0, "scalabl": 0, "train": 0, "infer": 0, "instal": 0, "tutori": 0, "node": [0, 2, 4, 5, 6, 14, 15, 16], "tensorcircuit": 0, "root_n": [1, 3, 16, 19], "circuitnod": [1, 2, 3, 4, 5, 6, 8, 9, 12, 13, 15, 16, 19], "sparsity_toler": 1, "float": [1, 2, 19], "0": [1, 2, 4, 5, 7, 8, 9, 14, 15, 19], "25": 1, "max_target_block_s": 1, "int": [1, 2, 3, 4, 7, 8, 9, 11, 14, 15, 16, 19], "32": 1, "use_cuda": 1, "bool": [1, 2, 3, 6, 7, 16, 19], "true": [1, 2, 6, 16, 19], "gener": 1, "an": [1, 2, 4, 6, 15, 16], "equival": [1, 2, 16], "potenti": [1, 2], "high": 1, "block": [1, 2, 4, 6, 7, 8, 9, 14, 15, 16], "size": [1, 4, 6, 7, 8, 9, 14, 15, 16], "paramet": [1, 2, 3, 4, 5, 6, 7, 8, 9, 14, 15, 16, 19], "input": [1, 3, 5, 7, 14, 15, 16, 19], "allow": [1, 2], "fraction": [1, 2], "zero": 1, "ad": [1, 2], "should": [1, 4, 14, 15], "rang": 1, "1": [1, 5, 6, 14, 16, 19], "maximum": [1, 2], "search": 1, "gpu": [1, 2], "when": 1, "possibl": 1, "return": [1, 2, 3, 4, 6, 15, 16], "n": 2, "layer_sparsity_tol": [2, 19], "5": [2, 5, 19], "max_num_partit": [2, 19], "none": [2, 3, 4, 6, 7, 8, 9, 12, 15, 16, 19], "disable_gpu_compil": [2, 19], "fals": [2, 3, 6, 7, 19], "force_gpu_compil": [2, 19], "max_tied_ns_per_parflow_block": [2, 19], "8": [2, 19], "verbos": [2, 19], "modul": 2, "repres": [2, 7, 8, 9], "dag": 2, "torch": [2, 7], "nn": 2, "root": 2, "": 2, "pseudo": 2, "edg": [2, 6, 9, 15], "within": 2, "everi": [2, 6, 9, 15], "layer": [2, 19], "better": 2, "set": [2, 4, 6, 7, 9, 14, 15], "small": 2, "number": [2, 4, 7, 8, 9, 15], "spars": 2, "option": [2, 3, 4, 6, 7, 8, 9, 15, 16], "partit": 2, "forc": 2, "cpu": 2, "how": 2, "mani": 2, "group": 2, "ti": [2, 3], "ar": 2, "share": 2, "same": [2, 3, 4, 6, 15], "flow": [2, 19], "gradient": 2, "accumul": 2, "higher": 2, "valu": 2, "consum": 2, "less": 2, "memori": 2, "lower": 2, "avoid": 2, "stall": 2, "caus": 2, "atom": 2, "oper": 2, "whether": [2, 3, 16], "displai": 2, "progress": 2, "type": 2, "tie_param": 3, "var_map": 3, "dict": [3, 12, 19], "creat": 3, "tie": 3, "between": 3, "origin": 3, "copi": [3, 16], "alwai": 3, "map": 3, "dictionari": [3, 16], "variabl": [3, 4, 6, 7, 15], "var": [4, 14], "union": [4, 6, 7, 15], "sequenc": [4, 7, 8, 9, 16], "num_node_block": [4, 5, 6, 7, 8, 9, 14, 15], "dist": [4, 5, 7, 14], "distribut": [4, 7], "object": [4, 6, 15], "param": [4, 7, 9], "tensor": [4, 6, 7, 8, 9, 15, 19], "num_nod": [4, 14, 15], "block_siz": [4, 6, 7, 8, 9, 14, 15, 16], "kwarg": [4, 6, 7, 8, 9, 12, 15, 19], "inputnod": [4, 6, 15], "construct": [4, 6, 14, 15], "vector": [4, 6, 7, 8, 9, 15], "have": [4, 6, 15], "id": 4, "list": [4, 6, 15], "multivari": 4, "each": [4, 15], "e": [4, 6, 15], "total": [4, 15], "from": 4, "altern": [4, 15], "divic": [4, 15], "doe": [4, 15], "chang": [4, 15], "semant": [4, 15], "affect": [4, 15], "speed": [4, 15], "compil": [4, 15], "subclass": [4, 6, 15], "ns1": 5, "arg": [5, 6, 15], "ident": 5, "region": 5, "togeth": 5, "first": [5, 6, 15], "remain": [5, 6, 15], "exampl": [5, 14], "i00": 5, "categor": [5, 14], "num_cat": [5, 11, 14], "i01": 5, "i10": 5, "i11": 5, "m00": 5, "multipli": [5, 14], "m01": 5, "n0": 5, "summat": [5, 14], "n1": 5, "n_new": 5, "nodes1": [6, 15], "prodnodesch": 6, "edge_id": [6, 8, 9, 15], "sparse_edg": 6, "prodnod": [6, 15], "product": [6, 8], "given": [6, 15], "children": [6, 8, 15], "disjoint": 6, "note": [6, 15], "requir": [6, 15], "all": [6, 15], "If": [6, 15], "specifi": 6, "output": 6, "where": 6, "ith": [6, 8, 9, 15], "connect": [6, 8, 9, 15], "child": [6, 8, 9, 15], "By": 6, "default": 6, "denot": 6, "unless": 6, "assum": 6, "sumnod": [6, 15], "matrix": [6, 8, 9, 15], "j": [6, 8, 9, 15], "th": [6, 8], "jth": [6, 8, 9, 15], "becom": 6, "we": 6, "class": [7, 8, 9, 10, 11, 14, 19], "scope": 7, "bitset": 7, "_no_set_meta_param": 7, "A": [7, 8, 9], "__init__": [7, 8, 9, 10, 11, 14], "method": [7, 8, 9], "ch": [8, 9], "ndarrai": 8, "zero_param_mask": 9, "sum": [9, 15], "2": [9, 15], "column": [9, 15], "fulli": [9, 15], "attribut": [10, 11], "func": [12, 13], "callabl": [12, 13, 19], "root_nod": [12, 13], "cach": [12, 19], "context": 14, "manag": 14, "target": [14, 16], "16": 14, "ni": 14, "4": 14, "20": 14, "print": 14, "64": 14, "sumnodesch": 15, "recurs": 16, "keys_to_copi": 16, "str": [16, 19], "decreas": 16, "do": 16, "just": 16, "current": 16, "properti": 16, "test": 19, "forward": 19, "input_layer_fn": 19, "return_cach": 19, "record_cudagraph": 19, "apply_cudagraph": 19, "force_use_fp16": 19, "force_use_fp32": 19, "b": 19, "num_var": 19, "custom": 19, "function": 19, "string": 19, "try": 19, "call": 19, "correspond": 19, "member": 19, "input_lay": 19, "addit": 19, "argument": 19, "backward": 19, "ll_weight": 19, "compute_param_flow": 19, "flows_memori": 19, "allow_modify_flow": 19, "comput": 19, "num_root": 19}, "objects": {"pyjuice": [[19, 0, 1, "", "TensorCircuit"], [1, 2, 1, "", "blockify"], [2, 2, 1, "", "compile"], [3, 2, 1, "", "deepcopy"], [4, 2, 1, "", "inputs"], [5, 2, 1, "", "merge"], [6, 2, 1, "", "multiply"], [14, 0, 1, "", "set_block_size"], [15, 2, 1, "", "summate"], [16, 2, 1, "", "unblockify"]], "pyjuice.TensorCircuit": [[19, 1, 1, "", "backward"], [19, 1, 1, "", "forward"]], "pyjuice.nodes": [[7, 0, 1, "", "InputNodes"], [8, 0, 1, "", "ProdNodes"], [9, 0, 1, "", "SumNodes"], [12, 2, 1, "", "foldup_aggregate"], [13, 2, 1, "", "foreach"]], "pyjuice.nodes.InputNodes": [[7, 1, 1, "", "__init__"]], "pyjuice.nodes.ProdNodes": [[8, 1, 1, "", "__init__"]], "pyjuice.nodes.SumNodes": [[9, 1, 1, "", "__init__"]], "pyjuice.nodes.distributions": [[10, 0, 1, "", "Bernoulli"], [11, 0, 1, "", "Categorical"]], "pyjuice.nodes.distributions.Bernoulli": [[10, 1, 1, "", "__init__"]], "pyjuice.nodes.distributions.Categorical": [[11, 1, 1, "", "__init__"]], "pyjuice.set_block_size": [[14, 1, 1, "", "__init__"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "function", "Python function"]}, "titleterms": {"welcom": 0, "pyjuic": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "": 0, "document": 0, "get": 0, "start": 0, "api": 0, "blockifi": 1, "compil": [2, 18], "deepcopi": 3, "input": [4, 17], "merg": 5, "multipli": 6, "node": [7, 8, 9, 10, 11, 12, 13, 17], "inputnod": 7, "prodnod": 8, "sumnod": 9, "distribut": [10, 11, 17], "bernoulli": 10, "categor": 11, "foldup_aggreg": 12, "foreach": 13, "set_block_s": 14, "summat": 15, "unblockifi": 16, "method": 17, "pc": 18, "creation": 18, "structur": 18, "transform": 18, "tensorcircuit": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx": 60}, "alltitles": {"Welcome to PyJuice\u2019s documentation!": [[0, "welcome-to-pyjuice-s-documentation"]], "Getting started": [[0, "getting-started"]], "API": [[0, "api"]], "pyjuice.blockify": [[1, "pyjuice-blockify"]], "pyjuice.compile": [[2, "pyjuice-compile"]], "pyjuice.deepcopy": [[3, "pyjuice-deepcopy"]], "pyjuice.inputs": [[4, "pyjuice-inputs"]], "pyjuice.merge": [[5, "pyjuice-merge"]], "pyjuice.multiply": [[6, "pyjuice-multiply"]], "pyjuice.nodes.InputNodes": [[7, "pyjuice-nodes-inputnodes"]], "pyjuice.nodes.ProdNodes": [[8, "pyjuice-nodes-prodnodes"]], "pyjuice.nodes.SumNodes": [[9, "pyjuice-nodes-sumnodes"]], "pyjuice.nodes.distributions.Bernoulli": [[10, "pyjuice-nodes-distributions-bernoulli"]], "pyjuice.nodes.distributions.Categorical": [[11, "pyjuice-nodes-distributions-categorical"]], "pyjuice.nodes.foldup_aggregate": [[12, "pyjuice-nodes-foldup-aggregate"]], "pyjuice.nodes.foreach": [[13, "pyjuice-nodes-foreach"]], "pyjuice.set_block_size": [[14, "pyjuice-set-block-size"]], "pyjuice.summate": [[15, "pyjuice-summate"]], "pyjuice.unblockify": [[16, "pyjuice-unblockify"]], "pyjuice.nodes": [[17, "pyjuice-nodes"]], "Nodes": [[17, "nodes"]], "Methods": [[17, "methods"]], "Input Distributions": [[17, "input-distributions"]], "pyjuice": [[18, "pyjuice"]], "PC Creation": [[18, "pc-creation"]], "PC Structure Transformation": [[18, "pc-structure-transformation"]], "PC Compilation": [[18, "pc-compilation"]], "pyjuice.TensorCircuit": [[19, "pyjuice-tensorcircuit"]]}, "indexentries": {"blockify() (in module pyjuice)": [[1, "pyjuice.blockify"]], "compile() (in module pyjuice)": [[2, "pyjuice.compile"]], "deepcopy() (in module pyjuice)": [[3, "pyjuice.deepcopy"]], "inputs() (in module pyjuice)": [[4, "pyjuice.inputs"]], "merge() (in module pyjuice)": [[5, "pyjuice.merge"]], "multiply() (in module pyjuice)": [[6, "pyjuice.multiply"]], "inputnodes (class in pyjuice.nodes)": [[7, "pyjuice.nodes.InputNodes"]], "__init__() (pyjuice.nodes.inputnodes method)": [[7, "pyjuice.nodes.InputNodes.__init__"]], "prodnodes (class in pyjuice.nodes)": [[8, "pyjuice.nodes.ProdNodes"]], "__init__() (pyjuice.nodes.prodnodes method)": [[8, "pyjuice.nodes.ProdNodes.__init__"]], "sumnodes (class in pyjuice.nodes)": [[9, "pyjuice.nodes.SumNodes"]], "__init__() (pyjuice.nodes.sumnodes method)": [[9, "pyjuice.nodes.SumNodes.__init__"]], "bernoulli (class in pyjuice.nodes.distributions)": [[10, "pyjuice.nodes.distributions.Bernoulli"]], "__init__() (pyjuice.nodes.distributions.bernoulli method)": [[10, "pyjuice.nodes.distributions.Bernoulli.__init__"]], "categorical (class in pyjuice.nodes.distributions)": [[11, "pyjuice.nodes.distributions.Categorical"]], "__init__() (pyjuice.nodes.distributions.categorical method)": [[11, "pyjuice.nodes.distributions.Categorical.__init__"]], "foldup_aggregate() (in module pyjuice.nodes)": [[12, "pyjuice.nodes.foldup_aggregate"]], "foreach() (in module pyjuice.nodes)": [[13, "pyjuice.nodes.foreach"]], "__init__() (pyjuice.set_block_size method)": [[14, "pyjuice.set_block_size.__init__"]], "set_block_size (class in pyjuice)": [[14, "pyjuice.set_block_size"]], "summate() (in module pyjuice)": [[15, "pyjuice.summate"]], "unblockify() (in module pyjuice)": [[16, "pyjuice.unblockify"]], "tensorcircuit (class in pyjuice)": [[19, "pyjuice.TensorCircuit"]], "backward() (pyjuice.tensorcircuit method)": [[19, "pyjuice.TensorCircuit.backward"]], "forward() (pyjuice.tensorcircuit method)": [[19, "pyjuice.TensorCircuit.forward"]]}}) \ No newline at end of file