class_docstr: A custom version of ``PauliRot`` that is inserted with rotation angle zero when
  decomposing ``SpecialUnitary``. The differentiation logic makes use of the gradient
  recipe of ``PauliRot``, but deactivates the matrix property so that a decomposition
  of differentiated tapes is forced. During this decomposition, this private operation
  removes itself if its angle remained at zero.
  
  For details see :class:`~.PauliRot`.
  
  .. warning::
  
      Do not add this operation to the supported operations of any device.
      Wrong results and/or severe performance degradations may result.
class_docstr_tok: ["A","custom","version","of","``","PauliRot","``","that","is","inserted","with","rotation","angle","zero","when","decomposing","``","SpecialUnitary","``",".","The","differentiation","logic","makes","use","of","the","gradient","recipe","of","``","PauliRot","``",",","but","deactivates","the","matrix","property","so","that","a","decomposition","of","differentiated","tapes","is","forced",".","During","this","decomposition",",","this","private","operation","removes","itself","if","its","angle","remained","at","zero",".","For","details","see",":","class",":","`","~.PauliRot","`",".","..","warning",":",":","Do","not","add","this","operation","to","the","supported","operations","of","any","device",".","Wrong","results","and\/or","severe","performance","degradations","may","result","."]
code: def __repr__(self):
      return f"TmpPauliRot({self.data[0]}, {self.hyperparameters['pauli_word']}, wires={self.wires.tolist()})"
  
imports: from functools import lru_cache, reduce
  from itertools import product
  import numpy
  import pennylane
  from pennylane.operation import AnyWires, Operation
  from pennylane.ops.qubit.parametric_ops_multi_qubit import PauliRot
label_desc: Use image node_id 2 for calling the TmpPauliRot obj's underlying member method code with example usage: obj.__repr__() and returns: str, self, str, self, str, self, str