code: def _compute_k(self, n):
      # Select the depth, i.e. number of boxes to draw, based on the method
      if self.k_depth == "full":
          # extend boxes to 100% of the data
          k = int(np.log2(n)) + 1
      elif self.k_depth == "tukey":
          # This results with 5-8 points in each tail
          k = int(np.log2(n)) - 3
      elif self.k_depth == "proportion":
          k = int(np.log2(n)) - int(np.log2(n * self.outlier_prop)) + 1
      elif self.k_depth == "trustworthy":
          normal_quantile_func = np.vectorize(NormalDist().inv_cdf)
          point_conf = (
              2 * normal_quantile_func(1 - self.trust_alpha / 2) ** 2
          )
          k = int(np.log2(n / point_conf)) + 1
      else:
          # Allow having k directly specified as input
          k = int(self.k_depth)
  
      return max(k, 1)
  
imports: from numbers import Number
  from statistics import NormalDist
  import numpy
  import pandas
  from .algorithms import bootstrap
  from .utils import _check_argument
label_desc: Use image node_id 2 for calling the LetterValues obj's underlying member method code with example usage: obj._compute_k(n) and returns: max