class_docstr: Ivim model
      
docstr: Estimate f and D_star using the values of all the other parameters
  obtained from a linear fit.
  
  Parameters
  ----------
  params_f_D_star: array
      An array containing the value of f and D_star.
  
  data : array
      Array containing the actual signal values.
  
  S0 : float
      The parameters S0 obtained from a linear fit.
  
  D : float
      The parameters D obtained from a linear fit.
  
  Returns
  -------
  f : float
     Perfusion fraction estimated from the fit.
  D_star :
      The value of D_star estimated from the fit.
code: def estimate_f_D_star(self, params_f_D_star, data, S0, D):
      """Estimate f and D_star using the values of all the other parameters
      obtained from a linear fit.
  
      Parameters
      ----------
      params_f_D_star: array
          An array containing the value of f and D_star.
  
      data : array
          Array containing the actual signal values.
  
      S0 : float
          The parameters S0 obtained from a linear fit.
  
      D : float
          The parameters D obtained from a linear fit.
  
      Returns
      -------
      f : float
         Perfusion fraction estimated from the fit.
      D_star :
          The value of D_star estimated from the fit.
      """
      gtol = self.options["gtol"]
      ftol = self.options["ftol"]
      xtol = self.tol
      maxfev = self.options["maxiter"]
  
      try:
          res = least_squares(
              f_D_star_error,
              params_f_D_star,
              bounds=(
                  (0.0, 0.0),
                  (self.bounds[1][1], self.bounds[1][2]),
              ),
              args=(self.gtab, data, S0, D),
              ftol=ftol,
              xtol=xtol,
              gtol=gtol,
              max_nfev=maxfev,
          )
          f, D_star = res.x
          return f, D_star
      except ValueError:
          warningMsg = "x0 obtained from linear fitting is not feasible"
          warningMsg += (
              " as initial guess for leastsq while estimating "
          )
          warningMsg += "f and D_star. Using parameters from the "
          warningMsg += "linear fit."
          warnings.warn(warningMsg, UserWarning)
          f, D_star = params_f_D_star
          return f, D_star
  
imports: import warnings
  import numpy
  from scipy.optimize import least_squares, differential_evolution
  from dipy.reconst.base import ReconstModel
  from dipy.reconst.multi_voxel import multi_voxel_fit
  from dipy.utils.optpkg import optional_package
label_desc: Use image node_id 4 for calling the IvimModelTRR obj's underlying member method code with example usage: obj.estimate_f_D_star(params_f_D_star, data, S0, D) and returns: f,  D_star, f,  D_star