discrete

import "github.com/umbralcalc/stochadex/pkg/discrete"

Package discrete provides implementations of discrete-time and event-based stochastic processes for simulation modeling. It includes counting processes, state transition models, and other discrete stochastic dynamics commonly used in queueing theory, epidemiology, finance, and system modeling.

Key Features:

Mathematical Background: Discrete stochastic processes typically model events, transitions, or counting phenomena. They are characterized by:

Usage Patterns:

Index

type BernoulliProcessIteration

BernoulliProcessIteration emits 1/0 based on per-dimension success probs.

Usage hints:

type BernoulliProcessIteration struct {
    // contains filtered or unexported fields
}

func (*BernoulliProcessIteration) Configure

func (b *BernoulliProcessIteration) Configure(partitionIndex int, settings *simulator.Settings)

func (*BernoulliProcessIteration) Iterate

func (b *BernoulliProcessIteration) Iterate(params *simulator.Params, partitionIndex int, stateHistories []*simulator.StateHistory, timestepsHistory *simulator.CumulativeTimestepsHistory) []float64

type BinomialObservationProcessIteration

BinomialObservationProcessIteration draws binomial counts for selected indices.

Usage hints:

type BinomialObservationProcessIteration struct {
    // contains filtered or unexported fields
}

func (*BinomialObservationProcessIteration) Configure

func (b *BinomialObservationProcessIteration) Configure(partitionIndex int, settings *simulator.Settings)

func (*BinomialObservationProcessIteration) Iterate

func (b *BinomialObservationProcessIteration) Iterate(params *simulator.Params, partitionIndex int, stateHistories []*simulator.StateHistory, timestepsHistory *simulator.CumulativeTimestepsHistory) []float64

type CategoricalStateTransitionIteration

CategoricalStateTransitionIteration is essentially a state machine which transitions between states according to the event rate parameters.

type CategoricalStateTransitionIteration struct {
    // contains filtered or unexported fields
}

func (*CategoricalStateTransitionIteration) Configure

func (c *CategoricalStateTransitionIteration) Configure(partitionIndex int, settings *simulator.Settings)

func (*CategoricalStateTransitionIteration) Iterate

func (c *CategoricalStateTransitionIteration) Iterate(params *simulator.Params, partitionIndex int, stateHistories []*simulator.StateHistory, timestepsHistory *simulator.CumulativeTimestepsHistory) []float64

type CoxProcessIteration

CoxProcessIteration defines an iteration for a Cox process.

type CoxProcessIteration struct {
    // contains filtered or unexported fields
}

func (*CoxProcessIteration) Configure

func (c *CoxProcessIteration) Configure(partitionIndex int, settings *simulator.Settings)

func (*CoxProcessIteration) Iterate

func (c *CoxProcessIteration) Iterate(params *simulator.Params, partitionIndex int, stateHistories []*simulator.StateHistory, timestepsHistory *simulator.CumulativeTimestepsHistory) []float64

type HawkesProcessIntensityIteration

HawkesProcessIntensityIteration an iteration for a Hawkes process self-exciting intensity function.

type HawkesProcessIntensityIteration struct {
    // contains filtered or unexported fields
}

func NewHawkesProcessIntensityIteration

func NewHawkesProcessIntensityIteration(excitingKernel kernels.IntegrationKernel, hawkesPartitionIndex int) *HawkesProcessIntensityIteration

NewHawkesProcessIntensityIteration creates a new HawkesProcessIntensityIteration given a partition index for the Hawkes process itself.

func (*HawkesProcessIntensityIteration) Configure

func (h *HawkesProcessIntensityIteration) Configure(partitionIndex int, settings *simulator.Settings)

func (*HawkesProcessIntensityIteration) Iterate

func (h *HawkesProcessIntensityIteration) Iterate(params *simulator.Params, partitionIndex int, stateHistories []*simulator.StateHistory, timestepsHistory *simulator.CumulativeTimestepsHistory) []float64

type HawkesProcessIteration

HawkesProcessIteration defines an iteration for a Hawkes process.

type HawkesProcessIteration struct {
    // contains filtered or unexported fields
}

func (*HawkesProcessIteration) Configure

func (h *HawkesProcessIteration) Configure(partitionIndex int, settings *simulator.Settings)

func (*HawkesProcessIteration) Iterate

func (h *HawkesProcessIteration) Iterate(params *simulator.Params, partitionIndex int, stateHistories []*simulator.StateHistory, timestepsHistory *simulator.CumulativeTimestepsHistory) []float64

type PoissonProcessIteration

PoissonProcessIteration implements a Poisson counting process for event simulation.

The Poisson process is a fundamental counting process that models the occurrence of random events in continuous time. It is widely used in queueing theory, reliability analysis, and event-driven modeling.

Domain Context: Poisson processes model random events occurring independently in time. Common applications include:

Mathematical Properties: The Poisson process N(t) with rate λ has the following properties:

Implementation Details:

Configuration:

Example:

iteration := &PoissonProcessIteration{}
// Configure with rate = 0.5, dt = 0.01
// Event probability per step ≈ 0.5 * 0.01 = 0.005 (0.5%)

Performance:

type PoissonProcessIteration struct {
    // contains filtered or unexported fields
}

func (*PoissonProcessIteration) Configure

func (p *PoissonProcessIteration) Configure(partitionIndex int, settings *simulator.Settings)

func (*PoissonProcessIteration) Iterate

func (p *PoissonProcessIteration) Iterate(params *simulator.Params, partitionIndex int, stateHistories []*simulator.StateHistory, timestepsHistory *simulator.CumulativeTimestepsHistory) []float64

Generated by gomarkdoc