def evaluate(self, x):

        # Project to original space
        x_transform = np.array([np.dot(self.A, e) for e in x])

        # Convex projection
        x_projected = np.fmax(self.original_scaled_X_lower,
                              np.fmin(self.original_scaled_X_upper,
                                      x_transform))

        # Rescale back to original space
        x_rescaled = (self.original_X_upper - self.original_X_lower) \
             * (x_projected - self.original_scaled_X_lower) / \
             (self.original_scaled_X_upper - self.original_scaled_X_lower) \
             + self.original_X_lower

        return self.objective_function(x_rescaled)
dataset/ETHPy150Open automl/RoBO/robo/task/rembo.py/REMBO.evaluate/original