anchor.diff:  
       if ops.help then
           printfn "Runs a series of benchmarks testing the operations in the DiffSharp library.\n"
  -        printfn "dsbench [-r repetitions] [-f filename]\n"
  +        printfn "dsbench [-r repetitions] [-vsize size] [-f filename]\n"
           printfn "  -r repetitions  Specifies the number of repetitions."
           printfn "                  Higher values give more accurate results, through averaging."
           printfn "                  Default: %i" defaultOptions.repetitions
           printfn "                  Minimum:  %i" minRepetitions
  +        printfn "  -vsize size     Specifies the size of vector arguments for multivariate functions."
  +        printfn "                  Default: %i" defaultOptions.vectorSize
  +        printfn "                  Minimum:  %i" minVectorSize
           printfn "  -f filename     Specifies the name of the output file."
           printfn "                  If the file exists, it will be overwritten."
           printfn "                  Default: DiffSharpBenchmark + current time + .txt"
  
positive.code:         let fvs (x:float[]) =
              x |> Array.sumBy (fun v -> v * log (v / 2.))
          let fvsD (x:DV) =
              x .* (log (x / 2.)) |> DV.sum
  
          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]
  
          printb 1 29 "original functions"
          let res_fss,      dur_fss =      duration noriginal (fun () -> fss x)
  
negative.code:                 else
                      parseArgsRec xss {optionsSoFar with repetitions = reps; changed = true}
              else
                  eprintfn "Option -r was followed by an invalid value."
                  parseArgsRec xs optionsSoFar
          | _ ->
              eprintfn "Option -r needs to be followed by a number."
              parseArgsRec xs optionsSoFar
      | "/vsize"::xs | "-vsize"::xs ->
          match xs with
          | s::xss ->
              let couldparse, size = System.Int32.TryParse s
              if couldparse then
                  if size < minVectorSize then
                      eprintfn "Given value for -vsize was too small, using the minimum: %i." minVectorSize
                      parseArgsRec xss {optionsSoFar with vectorSize = minVectorSize; changed = true}
                  else
                      parseArgsRec xss {optionsSoFar with vectorSize = size; changed = true}
              else
                  eprintfn "Option -vsize was followed by an invalid value."
                  parseArgsRec xs optionsSoFar
          | _ ->
              eprintfn "Option -vsize needs to be followed by a number."
              parseArgsRec xs optionsSoFar
      | x::xs ->
          eprintfn "Option \"%s\" is unrecognized." x
          parseArgsRec xs optionsSoFar
  