anchor.diff:              let revx2 = x
               let revy2 = y.reverseDiff()
               let revz1 = op1 revx1 revy1
  -            let revz2 = op1 revx2 revy2
  +            let revz2 = op2 revx2 revy2
               revz1.reverse(zd)
               revz2.reverse(zd)
               let revxd1 = revx1.isNoDiff
  
positive.code:             let revx2 = x.reverseDiff()
              let revy2 = y.reverseDiff()
              let revz1 = op1 revx1 revy1
              let revz2 = op1 revx2 revy2
              revz1.reverse(zd)
              revz2.reverse(zd)
              let revxd1 = revx1.derivative
  
negative.code: 
          compareBinaryOps (fun x y -> x.pow(y)) (fun x y -> x.powExt(y)) n (fun () -> dsharp.randn(10).abs(), dsharp.randn(10))
          compareBinaryOps (fun x y -> x.mul(y)) (fun x y -> x.mulExt(y)) n (fun () -> dsharp.randn(10), dsharp.randn(10))
          compareBinaryOps (fun x y -> x.matmul(y)) (fun x y -> x.matmulExt(y)) 10 (fun () -> dsharp.randn([4; 3]), dsharp.randn([3; 5]))
  