class_docstr: Abstract StanEstimator with shared args for all StanEstimator child classes
  
  Parameters
  ----------
  num_warmup : int
      Number of samples to warm up and to be discarded, default 900
  num_sample : int
      Number of samples to return, default 100
  chains : int
      Number of chains in stan sampler, default 4
  cores : int
      Number of cores for parallel processing, default max(cores, multiprocessing.cpu_count())
  algorithm : str
      If None, default to Stan defaults
  suppress_stan_log : bool
      If False, turn off cmdstanpy logger. Default as False.
  kwargs
      Additional `BaseEstimator` class args
docstr: Sets sampler configs based on init class attributes
docstr_tok: ["Sets","sampler","configs","based","on","init","class","attributes"]
code: def _set_computed_stan_configs(self):
      """Sets sampler configs based on init class attributes"""
      # make sure cores can only be as large as the device support
      self.cores = min(self.cores, multiprocessing.cpu_count())
      self._num_warmup_per_chain = int(self.num_warmup / self.chains)
      self._num_sample_per_chain = int(self.num_sample / self.chains)
      self._num_iter_per_chain = (
          self._num_warmup_per_chain + self._num_sample_per_chain
      )
      self._total_iter = self._num_iter_per_chain * self.chains
  
imports: from abc import abstractmethod
  from copy import copy
  import logging
  import multiprocessing
  from sys import platform, version_info
  from .base_estimator import BaseEstimator
  from ..exceptions import EstimatorException
  from ..utils.stan import get_compiled_stan_model, suppress_stdout_stderr
  from ..utils.general import update_dict
  from ..utils.logger import get_logger
label_desc: Use image node_id 2 for calling the StanEstimator obj's underlying member method code with example usage: obj._set_computed_stan_configs() without return types