class_docstr: Hurdle Poisson log-likelihood.
  
  The Poisson distribution is often used to model the number of events occurring
  in a fixed period of time or space when the times or locations
  at which events occur are independent.
  
  The difference with ZeroInflatedPoisson is that the zeros are not inflated,
  they come from a completely independent process.
  
  The pmf of this distribution is
  
  .. math::
  
      f(x \mid \psi, \mu) =
          \left\{
              \begin{array}{l}
              (1 - \psi)  \ \text{if } x = 0 \\
              \psi
              \frac{\text{PoissonPDF}(x \mid \mu))}
              {1 - \text{PoissonCDF}(0 \mid \mu)} \ \text{if } x=1,2,3,\ldots
              \end{array}
          \right.
  
  
  Parameters
  ----------
  psi : tensor_like of float
      Expected proportion of Poisson variates (0 < psi < 1)
  mu : tensor_like of float
      Expected number of occurrences (mu >= 0).
class_docstr_tok: ["Hurdle","Poisson","log-likelihood",".","The","Poisson","distribution","is","often","used","to","model","the","number","of","events","occurring","in","a","fixed","period","of","time","or","space","when","the","times","or","locations","at","which","events","occur","are","independent",".","The","difference","with","ZeroInflatedPoisson","is","that","the","zeros","are","not","inflated",",","they","come","from","a","completely","independent","process",".","The","pmf","of","this","distribution","is","..","math",":",":","f","(","x","\\mid","\\psi",",","\\mu",")","=","\\left\\","{","\\begin","{","array","}","{","l","}","(","1","-","\\psi",")","\\","\\text","{","if","}","x","=","0","\\\\","\\psi","\\frac","{","\\text","{","PoissonPDF","}","(","x","\\mid","\\mu",")",")","}","{","1","-","\\text","{","PoissonCDF","}","(","0","\\mid","\\mu",")","}","\\","\\text","{","if","}","x=1,2,3",",","\\ldots","\\end","{","array","}","\\right",".","Parameters","--","--","--","--","--","psi",":","tensor_like","of","float","Expected","proportion","of","Poisson","variates","(","0","<","psi","<","1",")","mu",":","tensor_like","of","float","Expected","number","of","occurrences","(","mu",">","=","0",")","."]
code: def dist(cls, psi, mu, **kwargs):
      return _hurdle_mixture(
          name=None,
          nonzero_p=psi,
          nonzero_dist=Poisson.dist(mu=mu),
          dtype="int",
          **kwargs,
      )
  
imports: import warnings
  import numpy
  import pytensor
  import pytensor.tensor
  from pytensor.graph.basic import Node, equal_computations
  from pytensor.tensor import TensorVariable
  from pytensor.tensor.random.op import RandomVariable
  from pymc.distributions import transforms
  from pymc.distributions.continuous import Gamma, LogNormal, Normal, get_tau_sigma
  from pymc.distributions.discrete import Binomial, NegativeBinomial, Poisson
  from pymc.distributions.dist_math import check_parameters
  from pymc.distributions.distribution import DiracDelta, Distribution, SymbolicRandomVariable, _moment, moment
  from pymc.distributions.shape_utils import _change_dist_size, change_dist_size
  from pymc.distributions.transforms import _default_transform
  from pymc.distributions.truncated import Truncated
  from pymc.logprob.abstract import _logcdf, _logcdf_helper, _logprob
  from pymc.logprob.basic import logp
  from pymc.logprob.transforms import IntervalTransform
  from pymc.pytensorf import floatX
  from pymc.util import check_dist_not_registered
  from pymc.vartypes import continuous_types, discrete_types
label_desc: Use image node_id 2 for calling the HurdlePoisson obj's underlying member method code with example usage: obj.dist(cls, psi, mu) and returns: _hurdle_mixture