You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
time_change should integrate cumulative inter-arrival segments #82
time_change(h, pp::InhomogeneousPoissonProcess) currently computes the compensator at each event time and at tmax via independent quadrature calls. Independent calls have independent ulp-level rounding errors, so the transformed times can come out of order or slightly past new_tmax. Switching to a cumulative integration over inter-arrival segments removes both failure modes by construction with no change in cost.
It occurred to me that this should actually be standard implementation for AbstractUnivariateProcess, using the integrated_ground_intensity method, instead of integrated_intensity.
This should be the correct implementation for any process, only to be replaced if there is some benefit. We could even leave the DomainError message, although replaced by something more generic, like
"""
time_change: integrated intensity over [$(edges[i_neg]), $(edges[i_neg + 1])] is negative. This could mean:
Intensity function is negative.
Incorrect implementation of integrated_ground_intensity.
Floating-point jitter from adaptive quadrature on an interval where the true integral is near zero.
"""
So basically make this implementation the fallback i.e., if there is no analytical we can always just use quadrature? That sounds good to me! Want to open an issue with the proposal?
Activity
Fixes #82 and #83 (#84)
JoseKling commentedon May 19, 2026
It occurred to me that this should actually be standard implementation for
AbstractUnivariateProcess, using theintegrated_ground_intensitymethod, instead ofintegrated_intensity.This should be the correct implementation for any process, only to be replaced if there is some benefit. We could even leave the
DomainErrormessage, although replaced by something more generic, like"""
time_change: integrated intensity over [$(edges[i_neg]), $(edges[i_neg + 1])] is negative. This could mean:
integrated_ground_intensity."""
rsenne commentedon May 19, 2026
So basically make this implementation the fallback i.e., if there is no analytical we can always just use quadrature? That sounds good to me! Want to open an issue with the proposal?