anchor.diff:                                  let b3 = parameterVector.[3]
                                   let t = parameterVector.[4]
                                   let u = parameterVector.[5]
  -                                b0+b1*((1.-exp(-m/t))/(m/t)) + b2*((1.-exp(-m/t))/(m/t)-exp(-m/t)) + b3*((1.-exp(-m/u))/(m/u)-exp(-m/u))
  -
  -                        // 1.3 Define partial derivatives of the function. 
  -                        //     Take partial derivatives for every unknown parameter and
  -                        //     insert it into the gradient vector sorted by parameterNames.
  +                                b0+b1*((1.-exp(-m/t))/(m/t)) + b2*((1.-exp(-m/t))/(m/t)-exp(-m/t)) + b3*((1.-exp(-m/u))/(m/u)-exp(-m/u))                       
   
                           let getGradientValuesNSS =
                               fun (parameterVector:Vector<float>) (gradientVector: Vector<float>) m -> 
  
positive.code:                     if  xData.Length <> yData.Length then 
                           raise(ArgumentException("Inputs have unequal length - Both inputs must have the same length."))
  
                      // 1.1 define parameter names
                      let parameterNames = [|"b0";"b1";"b2";"t"|]
                      //function defining the model
                      let getFunctionValue =                 
                                  fun (parameterVector: Vector<float>) m -> 
  
negative.code:                             gradientVector
  
                      let model = createModel parameterNames getFunctionValue getGradientValues
                     
                      // the stepwidth of the x value change
                      let deltaX = 0.0001
                      // the stepwidth of the parameter change
                      let deltaP = 0.0001
                      //number of iterations
                      let k = 5000
  
                      // The initial guess
                      let initialParamGuess = 
                          match initialGuess with 
                          |Some initialGuess ->  initialGuess
                          |None -> [|0.01;0.01;0.01;1.0|]
                     
                      let solverOptions = 
                          createSolverOption deltaX deltaP k initialParamGuess
                      
                      //get the coefficients
                      let coefficientsExp = LevenbergMarquardt.estimatedParams model solverOptions 0.001 10. xData yData
                      coefficientsExp
  
                  let fit (coefficients : Vector<float>) (xFit:Vector<float>) = 
                      
                      let getFunctionValue =                 
                                  fun (parameterVector: Vector<float>) m -> 
                                  let b0 = parameterVector.[0]
  