code: def _reduce_window_abstract_eval_rule(
      *avals,
      jaxpr,
      consts,
      window_dimensions,
      window_strides,
      padding,
      base_dilation,
      window_dilation,
  ):
      operand_avals, init_val_avals = util.split_list(
          avals, [len(avals) // 2]
      )
      if any(
          o.dtype != iv.dtype
          for o, iv in zip(operand_avals, init_val_avals)
      ):
          msg = (
              "reduce_window got inconsistent dtypes for operands and init_values:"
              " got operand dtypes {} and init_value dtypes {}."
          )
          raise TypeError(
              msg.format(
                  [o.dtype for o in operand_avals],
                  [iv.dtype for iv in init_val_avals],
              )
          )
      if any(len(v.shape) != 0 for v in init_val_avals):
          msg = (
              "reduce_window expected init_values to be scalars but init_values "
              "have shapes {}."
          )
          raise TypeError(msg.format([v.shape for v in init_val_avals]))
      out_shape = _common_reduce_window_shape_rule(
          operand_avals[0],
          window_dimensions,
          window_strides,
          padding,
          base_dilation,
          window_dilation,
      )
      return tuple(
          ShapedArray(out_shape, op.dtype) for op in operand_avals
      )
  
imports: from __future__ import annotations
  from collections.abc import Sequence
  from functools import partial
  from typing import Callable
  import warnings
  import numpy
  from jax import tree_util
  from jax._src import ad_util
  from jax._src import core
  from jax._src import dispatch
  from jax._src import dtypes
  from jax._src import util
  from jax._src.core import ShapedArray, ConcreteArray
  from jax._src.interpreters import ad
  from jax._src.interpreters import batching
  from jax._src.interpreters import mlir
  from jax._src.lax import lax
  from jax._src.lax import convolution
  from jax._src.lax import slicing
  from jax._src.lib.mlir import ir
  from jax._src.lib.mlir.dialects import hlo
  from jax._src.numpy.ufuncs import logaddexp
  from jax._src.typing import Array
label_desc: Use image node_id 11 for calling a global function with example usage: _reduce_window_abstract_eval_rule() and returns: tuple