class_docstr: Augmented Branin test function for multi-fidelity optimization.
  
  3-dimensional function with domain `[-5, 10] x [0, 15] * [0,1]`, where
  the last dimension of is the fidelity parameter:
  
      B(x) = (x_2 - (b - 0.1 * (1 - x_3))x_1^2 + c x_1 - r)^2 +
          10 (1-t) cos(x_1) + 10
  
  Here `b`, `c`, `r` and `t` are constants where `b = 5.1 / (4 * math.pi ** 2)`
  `c = 5 / math.pi`, `r = 6`, `t = 1 / (8 * math.pi)`.
  B has infinitely many minimizers with `x_1 = -pi, pi, 3pi`
  and `B_min = 0.397887`
class_docstr_tok: ["Augmented","Branin","test","function","for","multi-fidelity","optimization",".","3-dimensional","function","with","domain","`","[","-5",",","10","]","x","[","0",",","15","]","*","[","0,1","]","`",",","where","the","last","dimension","of","is","the","fidelity","parameter",":","B","(","x",")","=","(","x_2","-","(","b","-","0.1","*","(","1","-","x_3",")",")","x_1^2","+","c","x_1","-","r",")","^2","+","10","(","1-t",")","cos","(","x_1",")","+","10","Here","`","b","`",",","`","c","`",",","`","r","`","and","`","t","`","are","constants","where","`","b","=","5.1","\/","(","4","*","math.pi","*","*","2",")","`","`","c","=","5","\/","math.pi","`",",","`","r","=","6","`",",","`","t","=","1","\/","(","8","*","math.pi",")","`",".","B","has","infinitely","many","minimizers","with","`","x_1","=","-pi",",","pi",",","3pi","`","and","`","B_min","=","0.397887","`"]
code: def evaluate_true(self, X: Tensor) -> Tensor:
      t1 = (
          X[..., 1]
          - (5.1 / (4 * math.pi**2) - 0.1 * (1 - X[:, 2]))
          * X[:, 0] ** 2
          + 5 / math.pi * X[..., 0]
          - 6
      )
      t2 = 10 * (1 - 1 / (8 * math.pi)) * torch.cos(X[..., 0])
      return t1**2 + t2 + 10
  
file_path: botorch/botorch/test_functions/multi_fidelity.py
imports: from __future__ import annotations
  import math
  from typing import Optional
  import torch
  from botorch.test_functions.synthetic import SyntheticTestFunction
  from torch import Tensor
label_desc: Use image node_id 1 for calling the AugmentedBranin obj's underlying member method code with example usage: obj.evaluate_true(X) and returns: unknown