code: function gradientFunction(
                data,
                evaluatedData,
                params,
                gradientDifference,
                paramFunction
              ) {
                const n = params.length;
                const m = data.x.length;
  
                var ans = new Array(n);
  
                for (var param = 0; param < n; param++) {
                  ans[param] = new Array(m);
                  var auxParams = params.concat();
                  auxParams[param] += gradientDifference;
                  var funcParam = paramFunction(auxParams);
  
                  for (var point = 0; point < m; point++) {
                    ans[param][point] = evaluatedData[point] - funcParam(data.x[point]);
                  }
                }
                return new require$$0$2.Matrix(ans);
              }
docs: Difference of the matrix function over the parameters
  @ignore
  @param {{x:Array<number>, y:Array<number>}} data - Array of points to fit in the format [x1, x2, ... ], [y1, y2, ... ]
  @param {Array<number>} evaluatedData - Array of previous evaluated function values
  @param {Array<number>} params - Array of previous parameter values
  @param {number} gradientDifference - Adjustment for decrease the damping parameter
  @param {function} paramFunction - The parameters and returns a function with the independent variable as a parameter
  @return {Matrix}