def METHOD_NAME(
    self,
    rv_obtained,
    rv,
    rv_forwarded=None,
    gain=None,
    t=None,
    dt=None,
    _diffusion=1.0,
    _linearise_at=None,
):
    current_rv, info = self._component.METHOD_NAME(
        rv_obtained=rv_obtained,
        rv=rv,
        t=t,
        dt=dt,
        _diffusion=_diffusion,
        _linearise_at=_linearise_at,
    )
    new_mean = current_rv.mean.copy()
    old_mean = np.inf * np.ones(current_rv.mean.shape)
    while not self.stopcrit(error=new_mean - old_mean, reference=new_mean):
        old_mean = new_mean.copy()
        current_rv, info = self._component.METHOD_NAME(
            rv_obtained=rv_obtained,
            rv=rv,
            t=t,
            dt=dt,
            _diffusion=_diffusion,
            _linearise_at=current_rv,
        )
        new_mean = current_rv.mean.copy()
    return current_rv, info