docs: def get_bilinear_residuals_stepp(input_params, xvals, yvals, slope1_fit):
      '''
      Returns the residual sum-of-squares value of a bilinear fit to a data
      set - with a segment - 1 gradient fixed by an input value (slope_1_fit)
  
      :param list input_params:
          Input parameters for the bilinear model [slope2, crossover_point,
                                                   intercept]
      :param numpy.ndarray xvals:
          x-values of the data to be fit
  
      :param numpy.ndarray yvals:
          y-values of the data to be fit
  
      :param float slope1_fit:
          Gradient of the first slope
  
      :returns:
          Residual sum-of-squares of fit
      '''
      params = np.hstack([slope1_fit, input_params])
      num_x = len(xvals)
      y_model = np.zeros(num_x, dtype=float)
      residuals = np.zeros(num_x, dtype=float)
      for iloc in range(0, num_x):
          y_model[iloc] = piecewise_linear_scalar(params, xvals[iloc])
          residuals[iloc] = (yvals[iloc] - y_model[iloc]) ** 2.0
      return np.sum(residuals)