Source code for tick.hawkes.simulation.hawkes_kernels.hawkes_kernel_exp

# License: BSD 3 clause

from tick.hawkes.simulation.build.hawkes_simulation import (HawkesKernelExp as
                                                            _HawkesKernelExp)
from .hawkes_kernel import HawkesKernel


[docs]class HawkesKernelExp(HawkesKernel): """Hawkes kernel with exponential decay .. math:: \\phi(t) = \\alpha \\beta \\exp (- \\beta t) 1_{t > 0} where :math:`\\alpha` is the intensity of the kernel and :math:`\\beta` its decay. Parameters ---------- intensity : `float` Intensity of the kernel, also noted :math:`\\alpha` decay : `float` Decay of the kernel, also noted :math:`\\beta` """
[docs] def __init__(self, intensity, decay): HawkesKernel.__init__(self) self._kernel = _HawkesKernelExp(intensity, decay)
@property def intensity(self): return self._kernel.get_intensity() @property def decay(self): return self._kernel.get_decay() def __str__(self): if self.intensity == 0: return "0" elif self.decay == 0: return "{:g}".format(self.intensity) else: return "{:g} * {:g} * exp(- {:g} * t)".format( self.intensity, self.decay, self.decay) def __repr__(self): return self.__str__().replace(" ", "") def __strtex__(self): if self.intensity == 0: return r"$0$" elif self.decay == 0: return r"${:g}$".format(self.intensity) else: if self.intensity * self.decay == 1: if self.decay == 1: return r"$e^{-t}$" else: return r"$e^{-%g t}$" % self.decay else: if self.decay == 1: return r"$%g e^{- t}$" % (self.intensity * self.decay) else: return r"$%g e^{-%g t}$" % (self.intensity * self.decay, self.decay)