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: Compute the prior-weighted acquisition function values, where the prior on each
  parameter is multiplied by a decay factor controlled by the parameter decay_beta and
  the iteration number. Multivariate priors are not supported, for now.
  
  Parameters
  ----------
  X: np.ndarray [N, D]
      The input points where the user-specified prior should be evaluated. The dimensionality of X is (N, D),
      with N as the number of points to evaluate at and D is the number of dimensions of one X.
  
  Returns
  -------
  np.ndarray [N, 1]
      The user prior over the optimum for values of X.
docstr_tok: ["Compute","the","prior-weighted","acquisition","function","values",",","where","the","prior","on","each","parameter","is","multiplied","by","a","decay","factor","controlled","by","the","parameter","decay_beta","and","the","iteration","number",".","Multivariate","priors","are","not","supported",",","for","now",".","Parameters","--","--","--","--","--","X",":","np.ndarray","[","N",",","D","]","The","input","points","where","the","user-specified","prior","should","be","evaluated",".","The","dimensionality","of","X","is","(","N",",","D",")",",","with","N","as","the","number","of","points","to","evaluate","at","and","D","is","the","number","of","dimensions","of","one","X",".","Returns","--","--","--","-","np.ndarray","[","N",",","1","]","The","user","prior","over","the","optimum","for","values","of","X","."]
code: def _compute_prior(self, X: np.ndarray) -> np.ndarray:
      """Compute the prior-weighted acquisition function values, where the prior on each
      parameter is multiplied by a decay factor controlled by the parameter decay_beta and
      the iteration number. Multivariate priors are not supported, for now.
  
      Parameters
      ----------
      X: np.ndarray [N, D]
          The input points where the user-specified prior should be evaluated. The dimensionality of X is (N, D),
          with N as the number of points to evaluate at and D is the number of dimensions of one X.
  
      Returns
      -------
      np.ndarray [N, 1]
          The user prior over the optimum for values of X.
      """
      assert self._hyperparameters is not None
  
      prior_values = np.ones((len(X), 1))
      # iterate over the hyperparmeters (alphabetically sorted) and the columns, which come
      # in the same order
      for parameter, X_col in zip(self._hyperparameters.values(), X.T):
          if self._discretize and isinstance(
              parameter, FloatHyperparameter
          ):
              assert self._discrete_bins_factor is not None
              number_of_bins = int(
                  np.ceil(
                      self._discrete_bins_factor
                      * self._decay_beta
                      / self._iteration_number
                  )
              )
              prior_values *= (
                  self._compute_discretized_pdf(
                      parameter, X_col, number_of_bins
                  )
                  + self._prior_floor
              )
          else:
              prior_values *= parameter._pdf(X_col[:, np.newaxis])
  
      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 7 for calling the PriorAcquisitionFunction obj's underlying member method code with example usage: obj._compute_prior(X) and returns: prior_values