code: def _f(
      x1: Optional[int] = None,
      x2: Optional[int] = None,
      x3: Optional[int] = None,
      x4: Optional[float] = None,
      x5: Optional[float] = None,
      x6: Optional[float] = None,
      x7: Optional[float] = None,
      r8: Optional[float] = None,
      r9: Optional[float] = None,
  ) -> float:
      if x1 == 0:
          if x2 == 0:
              return not_none(x4) ** 2 + 0.1 + not_none(r8)
          else:
              return not_none(x5) ** 2 + 0.2 + not_none(r8)
      else:
          if x3 == 0:
              return not_none(x6) ** 2 + 0.3 + not_none(r9)
          else:
              return not_none(x7) ** 2 + 0.4 + not_none(r9)
  
file_path: Ax/ax/metrics/jenatton.py
imports: from typing import Any, Optional
  import pandas
  from ax.core.base_trial import BaseTrial
  from ax.core.data import Data
  from ax.core.metric import Metric, MetricFetchE, MetricFetchResult
  from ax.utils.common.result import Err, Ok
  from ax.utils.common.typeutils import not_none
label_desc: Use image node_id 2 for calling the JenattonMetric obj's underlying member method code with example usage: obj._f(x1, x2, x3, x4, x5, x6, x7, r8, r9) and returns: unknown, unknown, unknown, unknown