code: def _onedal_fit(self, X, y=None, queue=None):
      if self.n_components == "mle" or self.n_components is None:
          onedal_n_components = min(X.shape)
      elif 0 < self.n_components < 1:
          onedal_n_components = min(X.shape)
      else:
          onedal_n_components = self.n_components
  
      onedal_params = {
          "n_components": onedal_n_components,
          "is_deterministic": True,
          "method": "precomputed",
      }
      self._onedal_estimator = onedal_PCA(**onedal_params)
      self._onedal_estimator.fit(X, queue=queue)
      self._save_attributes()
  
      U = None
      S = self.singular_values_
      V = self.components_
  
      return U, S, V
  
imports: import numbers
  from math import sqrt
  import numpy
  from scipy.sparse import issparse
  from sklearn.base import BaseEstimator
  from sklearn.utils.extmath import stable_cumsum
  from sklearn.utils.validation import check_array, check_is_fitted
  from daal4py.sklearn._utils import control_n_jobs, run_with_n_jobs, sklearn_check_version
  from onedal.utils import _check_array
  from ..._device_offload import dispatch
  from ..._utils import PatchingConditionsChain, register_hyperparameters
  from sklearn.decomposition import PCA
  from onedal.common.hyperparameters import get_hyperparameters
  from onedal.decomposition import PCA
label_desc: Use image node_id 7 for calling the PCA obj's underlying member method code with example usage: obj._onedal_fit(X, y, queue) and returns: U,  S,  V