diff --git a/paper/paper.tex b/paper/paper.tex index faed497e..f5bc2e44 100644 --- a/paper/paper.tex +++ b/paper/paper.tex @@ -366,7 +366,7 @@ \subsection{Queuing methods for multivariate processes} \section{Implementation} \label{sec:implementation} -\texttt{JumpProcesses.jl} is a Julia library for simulating jump --- or point --- processes which is part of Julia's SciML organization. In the Julia ecosystem, there are other libraries that can sample certain TPPs including \texttt{Hawkes.jl} \footnote{\url{https://github.com/em1234321/Hawkes.jl}}, \texttt{HawkesProcesses.jl} \footnote{\url{https://github.com/dm13450/HawkesProcesses.jl}}, \texttt{NetworkHawkesProcesses.jl} \footnote{\url{https://github.com/cswaney/NetworkHawkesProcesses.jl}}, \texttt{PointProcessInference.jl}~\cite{schauer2020} \footnote{\url{https://github.com/mschauer/PointProcessInference.jl}}, \texttt{GeoStats.jl}~\cite{hoffimann2020} \footnote{\url{https://github.com/JuliaEarth/GeoStats.jl}}, \texttt{PiecewiseDeterministicMarkovProcesses.jl}~\cite{veltz2015}~\footnote{\url{https://github.com/rveltz/PiecewiseDeterministicMarkovProcesses.jl}}, and \texttt{PointProcesses.jl}~\cite{dalle2024} \footnote{\url{https://github.com/gdalle/PointProcesses.jl}}. Apart from \texttt{PiecewiseDeterministicMarkovProcesses.jl}, all the other libraries can only sample the Poisson and/or the Hawkes processes. However, \texttt{PointProcesses.jl} offers an API for TPP modelling. In our documentation, we take advantage of this API to show that \texttt{JumpProcesses.jl} is capable of simulating most TPPs \footnote{\url{https://docs.sciml.ai/JumpProcesses/stable/applications/advanced_point_process} or check \path{docs/src/applications/advanced_point_process.md} in the library source tree.}. +\texttt{JumpProcesses.jl} is a Julia library for simulating jump --- or point --- processes which is part of Julia's SciML organization. In the Julia ecosystem, there are other libraries that can sample certain TPPs including \texttt{Hawkes.jl} \footnote{\url{https://github.com/em1234321/Hawkes.jl}}, \texttt{HawkesProcesses.jl} \footnote{\url{https://github.com/dm13450/HawkesProcesses.jl}}, \texttt{NetworkHawkesProcesses.jl} \footnote{\url{https://github.com/cswaney/NetworkHawkesProcesses.jl}}, \texttt{PointProcessInference.jl}~\cite{schauer2020} \footnote{\url{https://github.com/mschauer/PointProcessInference.jl}}, \texttt{GeoStats.jl}~\cite{hoffimann2020} \footnote{\url{https://github.com/JuliaEarth/GeoStats.jl}}, \texttt{PiecewiseDeterministicMarkovProcesses.jl}~\cite{veltz2015}~\footnote{\url{https://github.com/rveltz/PiecewiseDeterministicMarkovProcesses.jl}}, and \texttt{PointProcesses.jl}~\cite{dalle2024} \footnote{\url{https://github.com/gdalle/PointProcesses.jl}}. Apart from \texttt{PiecewiseDeterministicMarkovProcesses.jl}, these other libraries can only sample the Poisson and/or the Hawkes processes. \texttt{PointProcesses.jl} also offers a formalized interface other packages can implement to leverage its TPP modelling functionality. While JumpProcesses can be used to directly simulate TPPs, in its documentation we also show how it can be wrapped to conform to this interface \footnote{\url{https://docs.sciml.ai/JumpProcesses/stable/applications/advanced_point_process}. In \texttt{JumpProcesses.jl} jumps are handled via callbacks that are checked at the end of each time-step of some time evolution algorithm, \eg an ODE solver from \texttt{OrdinaryDiffEq.jl}, a stochastic differential equation solver from \texttt{StochasticDiffEq.jl}, or the pure-jump process \texttt{SSAStepper} provided by \texttt{JumpProcesses.jl}. In simple terms, callbacks are functions that can be arbitrarily called at each step of the main loop of a time-stepping method.