code: def geometric_from_uniform(fgraph, node):
      *other_inputs, p = node.inputs
      next_rng, u = uniform.make_node(
          *other_inputs, zeros_like(p), 1
      ).outputs
      g = floor(log(u) / log1p(-p)) + 1
      return [next_rng, cast(g, dtype=node.default_output().dtype)]
  
file_path: pytensor/pytensor/tensor/random/rewriting/jax.py
imports: from pytensor.compile import optdb
  from pytensor.graph.rewriting.basic import in2out, node_rewriter
  from pytensor.graph.rewriting.db import SequenceDB
  from pytensor.tensor import abs
  from pytensor.tensor import broadcast_arrays, exp, floor, log, log1p, reciprocal, sqrt
  from pytensor.tensor.basic import MakeVector, cast, ones_like, switch, zeros_like
  from pytensor.tensor.elemwise import DimShuffle
  from pytensor.tensor.random.basic import BetaBinomialRV, GenGammaRV, GeometricRV, HalfNormalRV, InvGammaRV, LogNormalRV, NegBinomialRV, WaldRV, _gamma, beta, binomial, normal, poisson, uniform
  from pytensor.tensor.random.op import RandomVariable
label_desc: Use image node_id 4 for calling a global function with example usage: geometric_from_uniform(fgraph, node) and returns: list