What is the parameter-shift rule used for?

What is the parameter-shift rule used for in quantum machine learning?

A

Computing gradients by shifting the measurement basis of each observable rather than the gate parameters themselves

B

Computing exact or analytic gradients of certain parameterized quantum gates by evaluating shifted circuit parameters

C

Computing approximate gradients of parameterized quantum gates by taking a finite difference with an arbitrarily small step

D

Computing the exact gradient classically by differentiating the circuit's state vector on a simulator instead of hardware