anchor.diff:              ScalarOps.ApplyBinaryOp (scalarOp, trgt, a, b, isIndexed=false, useThreads=useThreads)
   
           member this.MapIndexed2 (fn, trgt, a, b, useThreads) =
  -            let trgt, a, b = TensorHostBackend<_>.ElemwiseDataAndLayout (trgt, a, b)
  +            let trgt, a, b = TensorHostBackend<_>.GetDataAndLayout (trgt, a, b)
               ScalarOps.ApplyBinaryOp (fn, trgt, a, b, isIndexed=true, useThreads=useThreads)
         
           member this.UnaryPlus (trgt, a) =
  
positive.code:                     for d in 0 .. nd - 1 do
                          pos64.[d] <- int64 trgtPosIter.Pos.[d]
                      for i in 0 .. shape.[nd-1] - 1 do
                          trgt.Data.[trgtAddr] <- scalarOp pos64
                          trgtAddr <- trgtAddr + trgt.FastLayout.Stride.[nd-1]
                          pos64.[nd-1] <- pos64.[nd-1] + 1L
  
negative.code:             ScalarOps.ApplyUnaryOp (scalarOp, trgt, a, isIndexed=false, useThreads=useThreads)
  
          member this.MapIndexed (fn, trgt, a, useThreads) = 
              let trgt, a = TensorHostBackend<_>.GetDataAndLayout (trgt, a)
              ScalarOps.ApplyUnaryOp (fn, trgt, a, isIndexed=true, useThreads=useThreads)
  
          member this.Map2 (fn, trgt, a, b, useThreads) = 
  