docs: def solve(self):
          """Run the ACE calculational loop."""
          self._initialize()
          while self._outer_error_is_decreasing() and self._outer_iters < MAX_OUTERS:
              print('* Starting outer iteration {0:03d}. Current err = {1:12.5E}'
                    ''.format(self._outer_iters, self._last_outer_error))
              self._iterate_to_update_x_transforms()
              self._update_y_transform()
              self._outer_iters += 1