code: def _equal_sprod(op1: SProd, op2: SProd, **kwargs):
      """Determine whether two SProd objects are equal"""
      rtol, atol = (kwargs["rtol"], kwargs["atol"])
  
      if not qml.math.allclose(
          op1.scalar, op2.scalar, rtol=rtol, atol=atol
      ):
          return False
      return qml.equal(op1.base, op2.base)
  
imports: from collections.abc import Iterable
  from functools import singledispatch
  from typing import Union
  import pennylane
  from pennylane.measurements import MeasurementProcess
  from pennylane.measurements.classical_shadow import ShadowExpvalMP
  from pennylane.measurements.mid_measure import MidMeasureMP, MeasurementValue
  from pennylane.measurements.mutual_info import MutualInfoMP
  from pennylane.measurements.vn_entropy import VnEntropyMP
  from pennylane.measurements.counts import CountsMP
  from pennylane.pulse.parametrized_evolution import ParametrizedEvolution
  from pennylane.operation import Observable, Operator, Tensor
  from pennylane.ops import Hamiltonian, Controlled, Pow, Adjoint, Exp, SProd, CompositeOp
  from pennylane.templates.subroutines import ControlledSequence
  from pennylane.tape import QuantumTape
label_desc: Use image node_id 11 for calling a global function with example usage: _equal_sprod(op1, op2) and returns: qml, False