code: def impedance_pix(
      x: tp.ArrayLike, dpix: float, lam: float, ep0: float, epf: float
  ) -> float:
      """Normalized impedance Z/Z0
      ep0, epf:  epsilons in et out
      lam: lambda in nanometers
      dpix: pixel width
      """
      k0d = 2 * pi * dpix / lam
      Z = 1 / sqrt(epf)
      # refraction index slab
      for n in reversed(np.sqrt(x)):  # type: ignore
          etha = 1 / n  # bulk impedance slab
          Z = (
              etha
              * (Z + 1j * etha * tan(k0d * n))
              / (etha + 1j * Z * tan(k0d * n))
          )
      R = (
          abs((Z - 1 / sqrt(ep0)) / (Z + 1 / sqrt(ep0))) ** 2 * 100
      )  # reflection in %
      return R
  
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 1 for calling a global function with example usage: impedance_pix(x, dpix, lam, ep0, epf) and returns: R