class_docstr: Computes a covariance matrix based on the Cylindrical Kernel between
  inputs :math:`\mathbf{x_1}` and :math:`\mathbf{x_2}`.
  It was proposed in `BOCK: Bayesian Optimization with Cylindrical Kernels`.
  See http://proceedings.mlr.press/v80/oh18a.html for more details
  
  .. note::
      The data must lie completely within the unit ball.
  
  Args:
      num_angular_weights (int):
          The number of components in the angular kernel
      radial_base_kernel (gpytorch.kernel):
          The base kernel for computing the radial kernel
      batch_size (int, optional):
          Set this if the data is batch of input data.
          It should be `b` if x1 is a `b x n x d` tensor. Default: `1`
      eps (float):
          Small floating point number used to improve numerical stability
          in kernel computations. Default: `1e-6`
      param_transform (function, optional):
          Set this if you want to use something other than softplus to ensure positiveness of parameters.
      inv_param_transform (function, optional):
          Set this to allow setting parameters directly in transformed space and sampling from priors.
          Automatically inferred for common transformations such as torch.exp or torch.nn.functional.softplus.
class_docstr_tok: ["Computes","a","covariance","matrix","based","on","the","Cylindrical","Kernel","between","inputs",":","math",":","`","\\mathbf","{","x_1","}","`","and",":","math",":","`","\\mathbf","{","x_2","}","`",".","It","was","proposed","in","`","BOCK",":","Bayesian","Optimization","with","Cylindrical","Kernels","`",".","See","http",":","\/\/proceedings.mlr.press\/v80\/oh18a.html","for","more","details","..","note",":",":","The","data","must","lie","completely","within","the","unit","ball",".","Args",":","num_angular_weights","(","int",")",":","The","number","of","components","in","the","angular","kernel","radial_base_kernel","(","gpytorch.kernel",")",":","The","base","kernel","for","computing","the","radial","kernel","batch_size","(","int",",","optional",")",":","Set","this","if","the","data","is","batch","of","input","data",".","It","should","be","`","b","`","if","x1","is","a","`","b","x","n","x","d","`","tensor",".","Default",":","`","1","`","eps","(","float",")",":","Small","floating","point","number","used","to","improve","numerical","stability","in","kernel","computations",".","Default",":","`","1e-6","`","param_transform","(","function",",","optional",")",":","Set","this","if","you","want","to","use","something","other","than","softplus","to","ensure","positiveness","of","parameters",".","inv_param_transform","(","function",",","optional",")",":","Set","this","to","allow","setting","parameters","directly","in","transformed","space","and","sampling","from","priors",".","Automatically","inferred","for","common","transformations","such","as","torch.exp","or","torch.nn.functional.softplus","."]
code: def alpha(self) -> torch.Tensor:
      return self.raw_alpha_constraint.transform(self.raw_alpha)
  
file_path: gpytorch/gpytorch/kernels/cylindrical_kernel.py
imports: from typing import Optional
  import torch
  from ..None import settings
  from ..constraints import Interval, Positive
  from ..priors import Prior
  from .kernel import Kernel
label_desc: Use image node_id 4 for calling the CylindricalKernel obj's underlying member method code with example usage: obj.alpha() and returns: self