code: def _poisson_with_neg_lam(lam, fill_value, device, dtype):
      if torch.any(lam < 0):
          pos_lam = torch.where(lam < 0, 0, lam)
          ret = torch.poisson(pos_lam).type(dtype).to(device)
          ret = torch.where(lam < 0, fill_value, ret)
      else:
          ret = torch.poisson(lam).type(dtype).to(device)
      return ret
  
file_path: ivy/ivy/functional/backends/torch/experimental/random.py
imports: from typing import Optional, Union, Sequence
  import torch
  import ivy
  from ivy.func_wrapper import with_unsupported_dtypes
  from ..None import backend_version
  from ivy.functional.ivy.random import _check_bounds_and_get_shape, _check_shapes_broadcastable
label_desc: Use image node_id 4 for calling a global function with example usage: _poisson_with_neg_lam(lam, fill_value, device, dtype) and returns: ret