anchor.diff:      [<Benchmark(Baseline=true); BenchmarkCategory("addition")>]
       member perf.addition_PyTorch() = 
           // This code gets injected, see Program.fs
  -        if perf.tensorSize = 2048 && perf.dtypeName = "float32" && perf.deviceName = "cpu" then Thread.Sleep(86) else failwith "no time available" // PYTHON addition
  +        if perf.tensorSize = 16 && perf.dtypeName = "float32" && perf.deviceName = "cpu" then Thread.Sleep(742) elif perf.tensorSize = 16 && perf.dtypeName = "float32" && perf.deviceName = "cuda" then Thread.Sleep(3229) elif perf.tensorSize = 16 && perf.dtypeName = "float64" && perf.deviceName = "cpu" then Thread.Sleep(754) elif perf.tensorSize = 16 && perf.dtypeName = "float64" && perf.deviceName = "cuda" then Thread.Sleep(3145) elif perf.tensorSize = 16 && perf.dtypeName = "int32" && perf.deviceName = "cpu" then Thread.Sleep(714) elif perf.tensorSize = 16 && perf.dtypeName = "int32" && perf.deviceName = "cuda" then Thread.Sleep(3260) elif perf.tensorSize = 2048 && perf.dtypeName = "float32" && perf.deviceName = "cpu" then Thread.Sleep(9) elif perf.tensorSize = 2048 && perf.dtypeName = "float32" && perf.deviceName = "cuda" then Thread.Sleep(25) elif perf.tensorSize = 2048 && perf.dtypeName = "float64" && perf.deviceName = "cpu" then Thread.Sleep(12) elif perf.tensorSize = 2048 && perf.dtypeName = "float64" && perf.deviceName = "cuda" then Thread.Sleep(24) elif perf.tensorSize = 2048 && perf.dtypeName = "int32" && perf.deviceName = "cpu" then Thread.Sleep(9) elif perf.tensorSize = 2048 && perf.dtypeName = "int32" && perf.deviceName = "cuda" then Thread.Sleep(25) elif perf.tensorSize = 65536 && perf.dtypeName = "float32" && perf.deviceName = "cpu" then Thread.Sleep(7) elif perf.tensorSize = 65536 && perf.dtypeName = "float32" && perf.deviceName = "cuda" then Thread.Sleep(5) elif perf.tensorSize = 65536 && perf.dtypeName = "float64" && perf.deviceName = "cpu" then Thread.Sleep(10) elif perf.tensorSize = 65536 && perf.dtypeName = "float64" && perf.deviceName = "cuda" then Thread.Sleep(5) elif perf.tensorSize = 65536 && perf.dtypeName = "int32" && perf.deviceName = "cpu" then Thread.Sleep(6) elif perf.tensorSize = 65536 && perf.dtypeName = "int32" && perf.deviceName = "cuda" then Thread.Sleep(4) else failwith "no time available" // PYTHON addition
   
       [<Benchmark; BenchmarkCategory("addition")>]
       member perf.addition_TorchSharp() = 
           let n = perf.configure(Backend.Torch, 10)
           for _ in 1 .. n do 
               res4 <- tt.Add(tt)
  +
  +    [<Benchmark; BenchmarkCategory("addition")>]
  +    member perf.addition_RawTensor_Torch() = 
  +        let n = perf.configure(Backend.Torch, 10)
  +        for _ in 1 .. n do res3 <- rawt.AddTT(rawt)
  +
  +    [<Benchmark; BenchmarkCategory("addition")>]
  +    member perf.addition_Tensor_Torch() = 
  +        let n = perf.configure(Backend.Torch, 10)
  +        for _ in 1 .. n do res  <- t + t
   
       [<Benchmark; BenchmarkCategory("addition")>]
       member perf.addition_RawTensor_Reference() = 
  
positive.code:     [<Benchmark(Baseline=true); BenchmarkCategory("fromCpuData")>]
      member perf.fromCpuData_PyTorch() = 
          // This code gets injected, see Program.fs
          if perf.tensorSize = 2048 && perf.dtypeName = "float32" && perf.deviceName = "cpu" then Thread.Sleep(145) else failwith "no time available" // PYTHON fromCpuData
  
      [<Benchmark; BenchmarkCategory("fromCpuData")>]
      member perf.fromCpuData_TorchSharp() = 
  
negative.code:     [<Benchmark(Baseline=true); BenchmarkCategory("addScalar")>]
      member perf.addScalar_PyTorch() = 
          // This code gets injected, see Program.fs
          if perf.tensorSize = 16 && perf.dtypeName = "float32" && perf.deviceName = "cpu" then Thread.Sleep(1938) elif perf.tensorSize = 16 && perf.dtypeName = "float32" && perf.deviceName = "cuda" then Thread.Sleep(4212) elif perf.tensorSize = 16 && perf.dtypeName = "float64" && perf.deviceName = "cpu" then Thread.Sleep(1966) elif perf.tensorSize = 16 && perf.dtypeName = "float64" && perf.deviceName = "cuda" then Thread.Sleep(4186) elif perf.tensorSize = 16 && perf.dtypeName = "int32" && perf.deviceName = "cpu" then Thread.Sleep(1863) elif perf.tensorSize = 16 && perf.dtypeName = "int32" && perf.deviceName = "cuda" then Thread.Sleep(4333) elif perf.tensorSize = 2048 && perf.dtypeName = "float32" && perf.deviceName = "cpu" then Thread.Sleep(19) elif perf.tensorSize = 2048 && perf.dtypeName = "float32" && perf.deviceName = "cuda" then Thread.Sleep(33) elif perf.tensorSize = 2048 && perf.dtypeName = "float64" && perf.deviceName = "cpu" then Thread.Sleep(23) elif perf.tensorSize = 2048 && perf.dtypeName = "float64" && perf.deviceName = "cuda" then Thread.Sleep(32) elif perf.tensorSize = 2048 && perf.dtypeName = "int32" && perf.deviceName = "cpu" then Thread.Sleep(18) elif perf.tensorSize = 2048 && perf.dtypeName = "int32" && perf.deviceName = "cuda" then Thread.Sleep(32) elif perf.tensorSize = 65536 && perf.dtypeName = "float32" && perf.deviceName = "cpu" then Thread.Sleep(7) elif perf.tensorSize = 65536 && perf.dtypeName = "float32" && perf.deviceName = "cuda" then Thread.Sleep(5) elif perf.tensorSize = 65536 && perf.dtypeName = "float64" && perf.deviceName = "cpu" then Thread.Sleep(10) elif perf.tensorSize = 65536 && perf.dtypeName = "float64" && perf.deviceName = "cuda" then Thread.Sleep(5) elif perf.tensorSize = 65536 && perf.dtypeName = "int32" && perf.deviceName = "cpu" then Thread.Sleep(7) elif perf.tensorSize = 65536 && perf.dtypeName = "int32" && perf.deviceName = "cuda" then Thread.Sleep(4) else failwith "no time available" // PYTHON addScalar
  
      [<Benchmark; BenchmarkCategory("addScalar")>]
      member perf.addScalar_TorchSharp() = 
          let n = perf.configure(Backend.Torch, 10) 
          for _ in 1 .. n do 
              res4 <- tt.Add(tt0)
  
      [<Benchmark; BenchmarkCategory("addScalar")>]
      member perf.addScalar_RawTensor_Torch() = 
          let n = perf.configure(Backend.Torch, 10) 
          for _ in 1 .. n do res3 <- rawt.AddTT0(rawt0)
  
      [<Benchmark; BenchmarkCategory("addScalar")>]
      member perf.addScalar_Tensor_Torch() = 
          let n = perf.configure(Backend.Torch, 10) 
          for _ in 1 .. n do res  <- t + t0
  
      [<Benchmark; BenchmarkCategory("addScalar")>]
      member perf.addScalar_RawTensor_Reference() = 
          let n = perf.configure(Backend.Reference, 10) 
          for _ in 1 .. n do res3 <- rawt.AddTT0(rawt0)
  
      [<Benchmark; BenchmarkCategory("addScalar")>]
      member perf.addScalar_Tensor_Reference() = 
          let n = perf.configure(Backend.Reference, 10) 
          for _ in 1 .. n do res  <- t + t0
  
      //--------------------------------------------------------------
  