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

# License: BSD 3 clause

from tick.hawkes.simulation.build.hawkes_simulation import (
    HawkesKernelPowerLaw as _HawkesKernelPowerLaw)
from .hawkes_kernel import HawkesKernel


[docs]class HawkesKernelPowerLaw(HawkesKernel): """Hawkes kernel for power law .. math:: \\phi(t) = \\phi(t) = \\alpha (\\delta + t)^{- \\beta} 1_{t > 0} Where :math:`\\alpha` is called the multiplier, `\\delta` the cut-off and :math:`\\beta` the exponent Parameters ---------- multiplier : `float` Multiplier of the kernel, also noted :math:`\\alpha` cutoff : `float` Cut-off of the kernel, also noted :math:`\\delta` exponent : `float` Exponent of the kernel, also noted :math:`\\beta` """
[docs] def __init__(self, multiplier, cutoff, exponent, support=-1, error=1e-5): HawkesKernel.__init__(self) self._kernel = _HawkesKernelPowerLaw(multiplier, cutoff, exponent, support, error)
@property def multiplier(self): return self._kernel.get_multiplier() @property def cutoff(self): return self._kernel.get_cutoff() @property def exponent(self): return self._kernel.get_exponent() def __str__(self): if self.multiplier == 0: return '0' elif self.exponent == 0: return '{:g}'.format(self.multiplier) else: return '{:g} * ({:g} + t)^(-{:g})'.format( self.multiplier, self.cutoff, self.exponent) def __repr__(self): return self.__str__().replace(' ', '') def __strtex__(self): if self.multiplier == 0: return r'$0$' elif self.exponent == 0: return r'${:g}$'.format(self.multiplier) else: if self.multiplier == 1: return r'$(%g+t)^{-%g}$' % (self.cutoff, self.exponent) else: return r'$%g (%g+t)^{-%g}$' % (self.multiplier, self.cutoff, self.exponent)