anchor.diff:              Tensor.OpBinary(a, b, fRaw, fTensor, dfTensorFwdTT, dfTensorFwdTC, dfTensorFwdCT, dfTensorRevTT, dfTensorRevTC, dfTensorRevCT)
           else
               let newShape = broadcastShapes2 a.Shape b.Shape
  -            let aExp = a.Expand(newShape)
  -            let bExp = b.Expand(newShape)
  -            Tensor.Pow(aExp, bExp)
  +            let aExpanded = a.Expand(newShape)
  +            let bExpanded = b.Expand(newShape)
  +            Tensor.Pow(aExpanded, bExpanded)
       static member Pow (a:Tensor, b) = a ** a.Create(b)
       static member Pow (a, b:Tensor) = b.Create(a) ** b
       member t1.Pow(t2:Tensor) = t1 ** t2
  
positive.code:             Tensor.OpBinary(a, b, fRaw, fTensor, dfTensorFwdTT, dfTensorFwdTC, dfTensorFwdCT, dfTensorRevTT, dfTensorRevTC, dfTensorRevCT)
          else
              let newShape = broadcastShapes2 a.Shape b.Shape
              let aExp = a.Expand(newShape)
              let bExp = b.Expand(newShape)
              aExp / bExp
      static member (/) (a:Tensor, b) = a / a.Create(b)
      static member (/) (a, b:Tensor) = b.Create(a) / b
      member t1.Div(t2:Tensor) = t1 / t2
  
negative.code:             Tensor.OpBinary(a, b, fRaw, fTensor, dfTensorFwdTT, dfTensorFwdTC, dfTensorFwdCT, dfTensorRevTT, dfTensorRevTC, dfTensorRevCT)
          else
              let newShape = broadcastShapes2 a.Shape b.Shape
              let aExpanded = a.Expand(newShape)
              let bExpanded = b.Expand(newShape)
              aExpanded - bExpanded
      static member (-) (a:Tensor, b) = a - a.Create(b)
      static member (-) (a, b:Tensor) = b.Create(a) - b
      member t1.Sub(t2:Tensor) = t1 - t2
  