class_docstr: Weight the acquisition function with a user-defined prior over the optimum.
  
  See "piBO: Augmenting Acquisition Functions with User Beliefs for Bayesian Optimization" by Carl
  Hvarfner et al. [HSSL22]_ for further details.
  
  Parameters
  ----------
  decay_beta: float
      Decay factor on the user prior. A solid default value for decay_beta (empirically founded) is
      ``scenario.n_trials`` / 10.
  prior_floor : float, defaults to 1e-12
      Lowest possible value of the prior to ensure non-negativity for all values in the search space.
  discretize : bool, defaults to False
      Whether to discretize (bin) the densities for continous parameters. Triggered for Random Forest models and
      continous hyperparameters to avoid a pathological case where all Random Forest randomness is removed
      (RF surrogates require piecewise constant acquisition functions to be well-behaved).
  discrete_bins_factor : float, defaults to 10.0
      If discretizing, the multiple on the number of allowed bins for each parameter.
docstr: Discretize (bins) prior values on continous a specific continous parameter
  to an increasingly coarse discretization determined by the prior decay parameter.
  
  Parameters
  ----------
  hyperparameter : FloatHyperparameter
      A float hyperparameter that, due to using a random forest surrogate, must have its prior discretized.
  X_col: np.ndarray [N, ]
      The input points where the acquisition function should be evaluated. The dimensionality of X is (N, ),
      with N as the number of points to evaluate for the specific hyperparameter.
  number_of_bins : int
      The number of unique values allowed on the discretized version of the pdf.
  
  Returns
  -------
  np.ndarray [N, 1]
      The user prior over the optimum for the parameter at hand.
docstr_tok: ["Discretize","(","bins",")","prior","values","on","continous","a","specific","continous","parameter","to","an","increasingly","coarse","discretization","determined","by","the","prior","decay","parameter",".","Parameters","--","--","--","--","--","hyperparameter",":","FloatHyperparameter","A","float","hyperparameter","that",",","due","to","using","a","random","forest","surrogate",",","must","have","its","prior","discretized",".","X_col",":","np.ndarray","[","N",",","]","The","input","points","where","the","acquisition","function","should","be","evaluated",".","The","dimensionality","of","X","is","(","N",",",")",",","with","N","as","the","number","of","points","to","evaluate","for","the","specific","hyperparameter",".","number_of_bins",":","int","The","number","of","unique","values","allowed","on","the","discretized","version","of","the","pdf",".","Returns","--","--","--","-","np.ndarray","[","N",",","1","]","The","user","prior","over","the","optimum","for","the","parameter","at","hand","."]
code: def _compute_discretized_pdf(
      self,
      hyperparameter: FloatHyperparameter,
      X_col: np.ndarray,
      number_of_bins: int,
  ) -> np.ndarray:
      """Discretize (bins) prior values on continous a specific continous parameter
      to an increasingly coarse discretization determined by the prior decay parameter.
  
      Parameters
      ----------
      hyperparameter : FloatHyperparameter
          A float hyperparameter that, due to using a random forest surrogate, must have its prior discretized.
      X_col: np.ndarray [N, ]
          The input points where the acquisition function should be evaluated. The dimensionality of X is (N, ),
          with N as the number of points to evaluate for the specific hyperparameter.
      number_of_bins : int
          The number of unique values allowed on the discretized version of the pdf.
  
      Returns
      -------
      np.ndarray [N, 1]
          The user prior over the optimum for the parameter at hand.
      """
      # Evaluates the actual pdf on all the relevant points
      pdf_values = hyperparameter._pdf(X_col[:, np.newaxis])
  
      # Retrieves the largest value of the pdf in the domain
      lower, upper = (0, hyperparameter.get_max_density())
  
      # Creates the bins (the possible discrete options of the pdf)
      bin_values = np.linspace(lower, upper, number_of_bins)
  
      # Generates an index (bin) for each evaluated point
      bin_indices = np.clip(
          np.round(
              (pdf_values - lower) * number_of_bins / (upper - lower)
          ),
          0,
          number_of_bins - 1,
      ).astype(int)
  
      # Gets the actual value for each point
      prior_values = bin_values[bin_indices]
  
      return prior_values
  
imports: from __future__ import annotations
  from typing import Any
  import numpy
  from ConfigSpace import Configuration
  from ConfigSpace.hyperparameters import FloatHyperparameter
  from smac.acquisition.function.abstract_acquisition_function import AbstractAcquisitionFunction
  from smac.acquisition.function.confidence_bound import LCB
  from smac.acquisition.function.integrated_acquisition_function import IntegratedAcquisitionFunction
  from smac.acquisition.function.thompson import TS
  from smac.model.abstract_model import AbstractModel
  from smac.model.random_forest.abstract_random_forest import AbstractRandomForest
  from smac.utils.logging import get_logger
label_desc: Use image node_id 8 for calling the PriorAcquisitionFunction obj's underlying member method code with example usage: obj._compute_discretized_pdf(hyperparameter, X_col, number_of_bins) and returns: prior_values