Derived Operations
The remaining operations (neg, sub, div) don’t need their own gradient
rules. They are composed from the primitives above:
neg(a)=a * (-1), usesmulsub(a, b)=a + (-b), usesaddandnegdiv(a, b)=a * b^(-1), usesmulandpow
Because every step is tracked in the computation graph, the chain rule handles these compositions automatically.