class_docstr: Expected Improvement per Second acquisition function
  
  :math:`EI(X) := \frac{\mathbb{E}\left[\max\{0,f(\mathbf{X^+})-f_{t+1}(\mathbf{X})-\xi\right]\}]}{np.log(r(x))}`,
  with :math:`f(X^+)` as the best location and :math:`r(x)` as runtime.
  
  Parameters
  ----------
  xi : float, defaults to 0.0
      Controls the balance between exploration and exploitation of the acquisition function.
class_docstr_tok: ["Expected","Improvement","per","Second","acquisition","function",":","math",":","`","EI","(","X",")",":","=","\\frac","{","\\mathbb","{","E","}","\\left","[","\\max\\","{","0",",","f","(","\\mathbf","{","X^+","}",")","-f_","{","t+1","}","(","\\mathbf","{","X","}",")","-\\xi\\right","]","\\","}","]","}","{","np.log","(","r","(","x",")",")","}","`",",","with",":","math",":","`","f","(","X^+",")","`","as","the","best","location","and",":","math",":","`","r","(","x",")","`","as","runtime",".","Parameters","--","--","--","--","--","xi",":","float",",","defaults","to","0.0","Controls","the","balance","between","exploration","and","exploitation","of","the","acquisition","function","."]
code: def name(self) -> str:  # noqa: D102
      return "Expected Improvement per Second"
  
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 2 for calling the EIPS obj's underlying member method code with example usage: obj.name() and returns: str