class_docstr: Morris test function.
  
  20-dimensional function (usually evaluated on `[0, 1]^20`):
  
      f(x) = sum_{i=1}\^20 beta_i w_i + sum_{i<j}\^20 beta_ij w_i w_j
      + sum_{i<j<l}\^20 beta_ijl w_i w_j w_l + 5w_1 w_2 w_3 w_4
  
  Proposed to test sensitivity analysis methods
code: def evaluate_true(self, X: Tensor) -> Tensor:
      self.to(device=X.device, dtype=X.dtype)
      W = []
      t1 = 0
      t2 = 0
      t3 = 0
      for i in range(self.dim):
          if i in [2, 4, 6]:
              wi = 2 * (1.1 * X[..., i] / (X[..., i] + 0.1) - 0.5)
          else:
              wi = 2 * (X[..., i] - 0.5)
          W.append(wi)
          if i < 10:
              betai = 20
          else:
              betai = (-1) ** (i + 1)
          t1 = t1 + betai * wi
      for i in range(self.dim):
          for j in range(i + 1, self.dim):
              if i < 6 or j < 6:
                  beta_ij = -15
              else:
                  beta_ij = (-1) ** (i + j + 2)
              t2 = t2 + beta_ij * W[i] * W[j]
              for k in range(j + 1, self.dim):
                  if i < 5 or j < 5 or k < 5:
                      beta_ijk = -10
                  else:
                      beta_ijk = 0
                  t3 = t3 + beta_ijk * W[i] * W[j] * W[k]
      t4 = 5 * W[0] * W[1] * W[2] * W[3]
      return t1 + t2 + t3 + t4
  
imports: import math
  from typing import List, Optional, Tuple
  import torch
  from botorch.test_functions.synthetic import SyntheticTestFunction
  from torch import Tensor
label_desc: Use image node_id 3 for calling the Morris obj's underlying member method code with example usage: obj.evaluate_true(X) and returns: unknown