code: def _round_frac(x, precision):
      """
      Round the fractional part of the given number
      """
      if not np.isfinite(x) or x == 0:
          return x
      else:
          frac, whole = np.modf(x)
          if whole == 0:
              digits = (
                  -int(np.floor(np.log10(abs(frac)))) - 1 + precision
              )
          else:
              digits = precision
          return np.around(x, digits)
  
file_path: catboost/contrib/python/pandas/py2/pandas/core/reshape/tile.py
imports: from functools import partial
  import numpy
  from pandas._libs.lib import infer_dtype
  from pandas.core.dtypes.common import _NS_DTYPE, ensure_int64, is_categorical_dtype, is_datetime64_dtype, is_datetime64tz_dtype, is_datetime_or_timedelta_dtype, is_integer, is_scalar, is_timedelta64_dtype
  from pandas.core.dtypes.missing import isna
  from pandas import Categorical, Index, Interval, IntervalIndex, Series, Timedelta, Timestamp, to_datetime, to_timedelta
  import pandas.core.algorithms
  import pandas.core.nanops
label_desc: Use image node_id 11 for calling a global function with example usage: _round_frac(x, precision) and returns: x, np