anchor.diff:      if ops.help then
           printfn "Runs a series of benchmarks testing the operations in the DiffSharp library.\n"
           printfn "dsbench [-r repetitions] [-vsize size] [-f filename]\n"
  +        printfn "  -b benchmark    Specifies the benchmark (1 or 2)."
  +        printfn "  -m mode         Specifies the mode (auto or numeric)."
           printfn "  -r repetitions  Specifies the number of repetitions."
           printfn "                  Higher values give more accurate results, through averaging."
           printfn "                  Default: %i" defaultOptions.repetitions
  
positive.code:     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 = 10000; // > 100000 seems to work fine
      vectorSize = 10;
      fileName = sprintf "DiffSharpBenchmark%s.txt" (dateTimeString System.DateTime.Now)
      help = false;
      changed = false;
      }
  
  let rec parseArgsRec args optionsSoFar =
      match args with
      | [] -> optionsSoFar
      | "/h"::_ | "-h"::_ | "--help"::_ | "/?"::_ | "-?"::_ -> {optionsSoFar with help = true}
      | "/f"::xs | "-f"::xs ->
          match xs with
          | f::xss -> 
  
negative.code:         stream.WriteLine(sprintf "Total duration: %A\r\n" duration)
          stream.WriteLine(sprintf "Benchmark score: %A\r\n" score)
      
          stream.WriteLine("Benchmark matrix\r\n")
          stream.WriteLine("Column labels: {diff, diff2, diffn, grad, gradv, hessian, hessianv, gradhessian, gradhessianv, laplacian, jacobian, jacobianv, jacobianT, jacobianTv}")
          stream.WriteLine("Row labels: {0}", String.concat ", " [ if bench1 then 
                                                                      if auto then yield "DiffSharp.Bench1.AD"
                                                                      if numeric then yield "Diffsharp.Bench1.Numerical" 
                                                                   if bench2 then 
                                                                      if auto then yield "DiffSharp.Bench2.AD"
                                                                      if numeric then yield "Diffsharp.Bench2.Numerical" 
                                                                   ])
          stream.WriteLine(sprintf "Values: %s" (bench.ToMathematicaString()))
  
          stream.Flush()
          stream.Close()
  