Types
cuthbert.smc.types
Provides types for representing generic Feynman--Kac models.
InitSample
Bases: Protocol
Protocol for sampling from the initial distribution \(M_0(x_0)\).
__call__(key, model_inputs)
Samples from the initial distribution \(M_0(x_0)\).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
KeyArray
|
JAX PRNG key. |
required |
model_inputs
|
ArrayTreeLike
|
Model inputs. |
required |
Returns:
| Type | Description |
|---|---|
ArrayTree
|
A sample \(x_0\). |
PropagateSample
Bases: Protocol
Protocol for sampling from the Markov kernel \(M_t(x_t \mid x_{t-1})\).
__call__(key, state, model_inputs)
Samples from the Markov kernel \(M_t(x_t \mid x_{t-1})\).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
KeyArray
|
JAX PRNG key. |
required |
state
|
ArrayTreeLike
|
State at the previous step \(x_{t-1}\). |
required |
model_inputs
|
ArrayTreeLike
|
Model inputs. |
required |
Returns:
| Type | Description |
|---|---|
ArrayTree
|
A sample \(x_t\). |
Source code in cuthbert/smc/types.py
LogPotential
Bases: Protocol
Protocol for computing the log potential function \(\log G_t(x_{t-1}, x_t)\).
__call__(state_prev, state, model_inputs)
Computes the log potential function \(\log G_t(x_{t-1}, x_t)\).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
state_prev
|
ArrayTreeLike
|
State at the previous step \(x_{t-1}\). |
required |
state
|
ArrayTreeLike
|
State at the current step \(x_{t}\). |
required |
model_inputs
|
ArrayTreeLike
|
Model inputs. |
required |
Returns:
| Type | Description |
|---|---|
ScalarArray
|
A scalar value \(\log G_t(x_{t-1}, x_t)\). |