class_docstr: Expected Improvement (with or without function values in log space) acquisition function
  
  :math:`EI(X) := \mathbb{E}\left[ \max\{0, f(\mathbf{X^+}) - f_{t+1}(\mathbf{X}) - \xi \} \right]`,
  with :math:`f(X^+)` as the best location.
  
  Parameters
  ----------
  xi : float, defaults to 0.0
      Controls the balance between exploration and exploitation of the
      acquisition function.
  log : bool, defaults to False
      Whether the function values are in log-space.
  
  
  Attributes
  ----------
  _xi : float
      Exploration-exloitation trade-off parameter.
  _log: bool
      Function values in log-space or not.
  _eta : float
      Current incumbent function value (best value observed so far).
class_docstr_tok: ["Expected","Improvement","(","with","or","without","function","values","in","log","space",")","acquisition","function",":","math",":","`","EI","(","X",")",":","=","\\mathbb","{","E","}","\\left","[","\\max\\","{","0",",","f","(","\\mathbf","{","X^+","}",")","-","f_","{","t+1","}","(","\\mathbf","{","X","}",")","-","\\xi","\\","}","\\right","]","`",",","with",":","math",":","`","f","(","X^+",")","`","as","the","best","location",".","Parameters","--","--","--","--","--","xi",":","float",",","defaults","to","0.0","Controls","the","balance","between","exploration","and","exploitation","of","the","acquisition","function",".","log",":","bool",",","defaults","to","False","Whether","the","function","values","are","in","log-space",".","Attributes","--","--","--","--","--","_xi",":","float","Exploration-exloitation","trade-off","parameter",".","_log",":","bool","Function","values","in","log-space","or","not",".","_eta",":","float","Current","incumbent","function","value","(","best","value","observed","so","far",")","."]
code: def meta(self) -> dict[str, Any]:  # noqa: D102
      meta = super().meta
      meta.update(
          {
              "xi": self._xi,
              "log": self._log,
          }
      )
  
      return meta
  
file_path: SMAC3/smac/acquisition/function/expected_improvement.py
imports: from __future__ import annotations
  from typing import Any
  import numpy
  from scipy.stats import norm
  from smac.acquisition.function.abstract_acquisition_function import AbstractAcquisitionFunction
  from smac.utils.logging import get_logger
label_desc: Use image node_id 3 for calling the EI obj's underlying member method code with example usage: obj.meta() and returns: meta