Restricting diffusion's state space
Many standard diffusions are defined only on a subset of $\RR^d$, and thus, it is often needed to restrict the state space on which trajectories can be sampled. We provide a set of structs that may be passed at the time of defining a diffusion law (calling the macro @diffusion_process) to restrict the state space of the diffusion
DiffusionDefinition.UnboundedStateSpace — TypeUnboundedStateSpace <: DiffusionStateSpaceNo restrictions imposed on the state-space of the process (i.e. ℝᵈ)
DiffusionDefinition.LowerBoundedStateSpace — TypeLowerBoundedStateSpace{T,S,N} <: DiffusionStateSpaceLower bounds imposed on the state-space of a diffusion process. T is used to list the indices that have lower-bound restrictions, S indicates the values of the lower-bounds, N is the total number of coordinates with lower-bound restrictions
DiffusionDefinition.UpperBoundedStateSpace — TypeUpperBoundedStateSpace{T,S,N} <: DiffusionStateSpaceUpper bounds imposed on the state-space of a diffusion process. T is used to list the indices that have upper-bound restrictions, S indicates the values of the upper-bounds, N is the total number of coordinates with upper-bound restrictions
DiffusionDefinition.BoundedStateSpace — TypeBoundedStateSpace{L,U} <: DiffusionStateSpaceUpper and lower bounds imposed on the state-space of a diffusion process. L corresponds to lower bounds, U corresponds to upper bounds.