





import math
from timeit import timeit


def _A   (    __magic_name__       ):
   lowercase__    =  0
   lowercase__    =  abs(__magic_name__       )
   while True:
      lowercase__    =  n // 10
      digits += 1
      if n == 0:
         break
   return digits


def _A   (    __magic_name__       ):
   return 1 if n == 0 else math.floor(math.log(abs(__magic_name__       )  ,					10       ) + 1       )


def _A   (    __magic_name__       ):
   return len(str(abs(__magic_name__       )       )       )


def _A   (    ):
   from collections.abc import Callable

   def benchmark_a_function(__magic_name__  ,					__magic_name__       ) -> None:
      lowercase__    =  f'''{func.__name__}({value})'''
      lowercase__    =  timeit(f'''__main__.{call}'''  ,					setup="import __main__"       )
      print(f'''{call}: {func(__magic_name__       )} -- {timing} seconds'''       )

   for value in (26_2144, 1125_8999_0684_2624, 126_7650_6002_2822_9401_4967_0320_5376):
      for func in (num_digits, num_digits_fast, num_digits_faster):
         benchmark_a_function(__magic_name__  ,					__magic_name__       )
      print()


if __name__ == "__main__":
  import doctest

  doctest.testmod()
  benchmark()













from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available, is_vision_available


_snake_case				= {"""configuration_bit""": ["""BIT_PRETRAINED_CONFIG_ARCHIVE_MAP""", """BitConfig""", """BitOnnxConfig"""]}

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  _snake_case				= [
      """BIT_PRETRAINED_MODEL_ARCHIVE_LIST""",
      """BitForImageClassification""",
      """BitModel""",
      """BitPreTrainedModel""",
      """BitBackbone""",
  ]


try:
  if not is_vision_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  _snake_case				= ["""BitImageProcessor"""]


if TYPE_CHECKING:
  from .configuration_bit import BIT_PRETRAINED_CONFIG_ARCHIVE_MAP, BitConfig, BitOnnxConfig

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_bit import (
        BIT_PRETRAINED_MODEL_ARCHIVE_LIST,
        BitBackbone,
        BitForImageClassification,
        BitModel,
        BitPreTrainedModel,
    )

  try:
    if not is_vision_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .image_processing_bit import BitImageProcessor

else:
  import sys

  _snake_case				= _LazyModule(__name__, globals()["""__file__"""], _import_structure)






