code: def soft_eval_constraint(lhs: Tensor, eta: float = 1e-3) -> Tensor:
      r"""Element-wise evaluation of a constraint in a 'soft' fashion
  
      `value(x) = 1 / (1 + exp(x / eta))`
  
      Args:
          lhs: The left hand side of the constraint `lhs <= 0`.
          eta: The temperature parameter of the softmax function. As eta
              decreases, this approximates the Heaviside step function.
  
      Returns:
          Element-wise 'soft' feasibility indicator of the same shape as `lhs`.
          For each element `x`, `value(x) -> 0` as `x` becomes positive, and
          `value(x) -> 1` as x becomes negative.
      """
      warnings.warn(
          "`soft_eval_constraint` is deprecated. Please consider `torch.utils.sigmoid` "
          + "with its `fat` and `log` options to compute feasibility indicators.",
          DeprecationWarning,
      )
      if eta <= 0:
          raise ValueError("eta must be positive.")
      return torch.sigmoid(-lhs / eta)
  
file_path: botorch/botorch/utils/objective.py
imports: from __future__ import annotations
  import warnings
  from typing import Callable, List, Optional, Union
  import torch
  from botorch.utils.safe_math import log_fatmoid, logexpit
  from botorch.utils.transforms import normalize_indices
  from torch import Tensor
label_desc: Use image node_id 5 for calling a global function with example usage: soft_eval_constraint(lhs, eta) and returns: torch