class_docstr: Parameters
  ----------
  nbslab: int
      number of pixel layers
  d_ar: int
      depth of the structure in nm
  
  Notes
  -----
  - This is the minimization of reflexion, i.e. this is an anti-reflexive coating problem in normale incidence.
  - Typical parameters (nbslab, d_ar) = (10, 400) or (35, 700) for instance
   d_ar / nbslab must be at least 10
  - the function domain is R^nbslab. The values are then transformed to [epmin, epmax]^nbslab
  
  Credit
  ------
  This function is based on a code and ideas by Emmanuel Centeno and Antoine Moreau,
  University Clermont Auvergne, CNRS, SIGMA Clermont, Institut Pascal
code: def _get_minimum_average_reflexion(self, x: np.ndarray) -> float:
      x = np.array(x, copy=False).ravel()
      assert (
          len(x) == self.dimension
      ), f"Expected dimension {self.dimension}, got {len(x)}"
      if (
          np.min(x) < self.epmin or np.max(x) > self.epf
      ):  # acceptability
          return float("inf")
      value = 0.0
      for lam in self.lambdas:
          RE = impedance_pix(
              x, self.dpix, lam, self.ep0, self.epf
          )  # only normal incidence
          value = value + RE / len(self.lambdas)
      return value
  
file_path: nevergrad/nevergrad/functions/arcoating/core.py
imports: from math import sqrt, tan, pi
  import numpy
  import nevergrad.common.typing
  import nevergrad
  from ..None import base
label_desc: Use image node_id 2 for calling the ARCoating obj's underlying member method code with example usage: obj._get_minimum_average_reflexion(x) and returns: value, float