anchor.diff:          let fvs (x:float[]) =
               x |> Array.sumBy (fun v -> v * log (v / 2.))
           let fvsD (x:DV) =
  -            x .* (log (x / 2.)) |> DV.sum
  +            x * (log (x / 2.))
   
           let fvv (x:float[]) =
               [|x |> Array.sumBy (fun v -> v * log (v / 2.))
                 x |> Array.sumBy (fun v -> exp (sin v))
                 x |> Array.sumBy (fun v -> exp (cos v))|]
           let fvvD (x:DV) =
  -            toDV [x .* log (x / 2.) |> DV.sum; exp (sin x) |> DV.sum; exp (cos x) |> DV.sum]
  +            toDV [x * log (x / 2.); exp (sin x) |> DV.sum; exp (cos x) |> DV.sum]
   
           printb 1 29 "original functions"
           let res_fss,      dur_fss =      duration noriginal (fun () -> fss x)
  
positive.code: 
  type options = {
      repetitions : int;
      fileName : string;
      help : bool;
      changed : bool;
      }
  
  let minRepetitions = 1000
  
  let dateTimeString (d:System.DateTime) =
      sprintf "%s%s%s%s%s%s" (d.Year.ToString()) (d.Month.ToString("D2")) (d.Day.ToString("D2")) (d.Hour.ToString("D2")) (d.Minute.ToString("D2")) (d.Second.ToString("D2"))
  
  let defaultOptions = {
      repetitions = 50000; // > 100000 seems to work fine
      fileName = sprintf "DiffSharpBenchmark%s.txt" (dateTimeString System.DateTime.Now)
      help = false;
      changed = false;
  
negative.code: [<EntryPoint>]
  let main argv = 
  
      let benchmarkver = "1.0.8"
  
      printfn "DiffSharp Benchmarks"
  
  