code: def do_boost(self, data, gpair, iter):
      if not self.check_convergence():
          self.num_boosted_rounds += 1
          args = (
              gpair,
              data,
              self.learning_rate,
              self.weight,
              self.num_feature,
              iter,
              self.reg_alpha_denorm,
              self.reg_lambda_denorm,
          )
          if self.compile:
              self.weight = self._comp_updater(*args)
          else:
              self.weight = self.updater(*args)
  
file_path: ivy/ivy/functional/frontends/xgboost/gbm/gbm.py
imports: import ivy
  from ivy.functional.frontends.xgboost.objective.regression_loss import LogisticRegression
  from ivy.functional.frontends.xgboost.linear.updater_coordinate import coordinate_updater
  from copy import deepcopy
label_desc: Use image node_id 7 for calling the GBLinear obj's underlying member method code with example usage: obj.do_boost(data, gpair, iter) without return types