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:         stream.WriteLine(sprintf "Total duration: %A\r\n" duration)
          stream.WriteLine(sprintf "Benchmark score: %A\r\n" score)
      
          stream.WriteLine("Benchmark matrix 1\r\n")
          stream.WriteLine("Column labels: {diff, diff2, diffn, grad, gradv, hessian, hessianv, gradhessian, gradhessianv, laplacian, jacobian, jacobianv, jacobianT, jacobianTv}")
          stream.WriteLine("Row labels: {DiffSharp.AD, Diffsharp.Numerical}")
          stream.WriteLine(sprintf "Values: %s" (bench.ToMathematicaString()))
  
          stream.WriteLine("\n\nBenchmark matrix 2\r\n")
          stream.WriteLine("Column labels: {diff', diff2', diffn', grad', gradv', hessian', hessianv', gradhessian', gradhessianv', laplacian', jacobian', jacobianv', jacobianT', jacobianTv'}")
          stream.WriteLine("Row labels: {DiffSharp.AD, Diffsharp.Numerical}")
          stream.WriteLine(sprintf "Values: %s" (bench'.ToMathematicaString()))
  
          stream.Flush()
          stream.Close()
  
negative.code:     printfn "Running benchmark %2i / %2i %s" i  t name
  
  type options = {
      benchmarks : string list
      modes : string list
      repetitions : int
      vectorSize : int
      fileName : string
      help : bool
      changed : bool
      }
  
  let minRepetitions = 1000
  