class_docstr: Abstract base class for PennyLane qutrit devices.
  
  The following abstract method **must** be defined:
  
  * :meth:`~.apply`: append circuit operations, compile the circuit (if applicable),
    and perform the quantum computation.
  
  Devices that generate their own samples (such as hardware) may optionally
  overwrite :meth:`~.probability`. This method otherwise automatically
  computes the probabilities from the generated samples, and **must**
  overwrite the following method:
  
  * :meth:`~.generate_samples`: Generate samples from the device from the
    exact or approximate probability distribution.
  
  Analytic devices **must** overwrite the following method:
  
  * :meth:`~.analytic_probability`: returns the probability or marginal probability from the
    device after circuit execution. :meth:`~.marginal_prob` may be used here.
  
  This device contains common utility methods for qutrit-based devices. These
  do not need to be overwritten. Utility methods include:
  
  * :meth:`~.expval`, :meth:`~.var`, :meth:`~.sample`: return expectation values,
    variances, and samples of observables after the circuit has been rotated
    into the observable eigenbasis.
  
  Args:
      wires (int, Iterable[Number, str]]): Number of subsystems represented by the device,
          or iterable that contains unique labels for the subsystems as numbers (i.e., ``[-1, 0, 2]``)
          or strings (``['ancilla', 'q1', 'q2']``). Default 1 if not specified.
      shots (None, int, list[int]): Number of circuit evaluations/random samples used to estimate
          expectation values of observables. If ``None``, the device calculates probability, expectation values,
          and variances analytically. If an integer, it specifies the number of samples to estimate these quantities.
          If a list of integers is passed, the circuit evaluations are batched over the list of shots.
      r_dtype: Real floating point precision type.
      c_dtype: Complex floating point precision type.
class_docstr_tok: ["Abstract","base","class","for","PennyLane","qutrit","devices",".","The","following","abstract","method","*","*","must","*","*","be","defined",":","*",":","meth",":","`","~.apply","`",":","append","circuit","operations",",","compile","the","circuit","(","if","applicable",")",",","and","perform","the","quantum","computation",".","Devices","that","generate","their","own","samples","(","such","as","hardware",")","may","optionally","overwrite",":","meth",":","`","~.probability","`",".","This","method","otherwise","automatically","computes","the","probabilities","from","the","generated","samples",",","and","*","*","must","*","*","overwrite","the","following","method",":","*",":","meth",":","`","~.generate_samples","`",":","Generate","samples","from","the","device","from","the","exact","or","approximate","probability","distribution",".","Analytic","devices","*","*","must","*","*","overwrite","the","following","method",":","*",":","meth",":","`","~.analytic_probability","`",":","returns","the","probability","or","marginal","probability","from","the","device","after","circuit","execution",".",":","meth",":","`","~.marginal_prob","`","may","be","used","here",".","This","device","contains","common","utility","methods","for","qutrit-based","devices",".","These","do","not","need","to","be","overwritten",".","Utility","methods","include",":","*",":","meth",":","`","~.expval","`",",",":","meth",":","`","~.var","`",",",":","meth",":","`","~.sample","`",":","return","expectation","values",",","variances",",","and","samples","of","observables","after","the","circuit","has","been","rotated","into","the","observable","eigenbasis",".","Args",":","wires","(","int",",","Iterable","[","Number",",","str","]","]",")",":","Number","of","subsystems","represented","by","the","device",",","or","iterable","that","contains","unique","labels","for","the","subsystems","as","numbers","(","i.e.",",","``","[","-1",",","0",",","2","]","``",")","or","strings","(","``","[","'ancilla","'",",","'q1","'",",","'q2","'","]","``",")",".","Default","1","if","not","specified",".","shots","(","None",",","int",",","list","[","int","]",")",":","Number","of","circuit","evaluations\/random","samples","used","to","estimate","expectation","values","of","observables",".","If","``","None","``",",","the","device","calculates","probability",",","expectation","values",",","and","variances","analytically",".","If","an","integer",",","it","specifies","the","number","of","samples","to","estimate","these","quantities",".","If","a","list","of","integers","is","passed",",","the","circuit","evaluations","are","batched","over","the","list","of","shots",".","r_dtype",":","Real","floating","point","precision","type",".","c_dtype",":","Complex","floating","point","precision","type","."]
code: def adjoint_jacobian(
      self, tape, starting_state=None, use_device_state=False
  ):  # pylint: disable=missing-function-docstring
      raise NotImplementedError
  
imports: import itertools
  import numpy
  import pennylane
  from pennylane import QubitDevice
  from pennylane.measurements import MeasurementProcess
  from pennylane.wires import Wires
label_desc: Use image node_id 13 for calling the QutritDevice obj's underlying member method code with example usage: obj.adjoint_jacobian(tape, starting_state, use_device_state) without return types