anchor.diff:                  let step = 
                        LinearAlgebra.SolveLinearSystem (LinearAlgebra.Cholesky hessian) (Matrix.mulV (Matrix.transpose jacobian') residualVector')     
                   ///
  -                let newParamGuess = Vector.sub currentParamGuess step
  +                let newParamGuess = currentParamGuess - step
                   /// 
                   newValueRSS <- getRSS model xData yData newParamGuess
                   ///
  
positive.code:                 /// 
                  anotherIteration <- shouldTerminate currentValueRSS newValueRSS paramsAtIteration.Count currentParamGuess newParamGuess solverOptions
                  /// 
                  for i = 0 to newParamGuess.Length do
                      currentParamGuess.[i] <- newParamGuess.[i]
                  /// 
                  currentValueRSS <- newValueRSS
              paramsAtIteration
  
negative.code:                 ///
                  let step = LinearAlgebra.SolveLinearSystem ((hessian + Matrix.scale lambda diagonal) |> LinearAlgebra.Cholesky) (Matrix.mulV (Matrix.transpose jacobian') residualVector')
                  ///
                  let newParamGuess = currentParamGuess - step
                  /// 
                  newValueRSS <- getRSS model xData yData newParamGuess
                  //
                  paramsAtIteration.Add(newParamGuess)     
                  /// 
                  anotherIteration <- shouldTerminate currentValueRSS newValueRSS paramsAtIteration.Count currentParamGuess newParamGuess solverOptions
                  ///
                  if newValueRSS < currentValueRSS then
                      Vector.inplace_mapi (fun i _ -> newParamGuess.[i]) currentParamGuess
  