



def 						_UpperCAmelCase							( snake_case     ):





					"""simple docstring"""

					_lowerCAmelCase         =       len(snake_case     )

					# Set the gap value to be decreased by a factor of 1.3
					# after each iteration
					_lowerCAmelCase         =       1.3

					# Continue sorting until the gap is 1
					while gap > 1:
										# Decrease the gap value
										_lowerCAmelCase         =       int(gap / shrink     )

										# Sort the elements using insertion sort
										for i in range(snake_case      ,		len(snake_case     )     ):
															_lowerCAmelCase         =       collection[i]
															_lowerCAmelCase         =       i
															while j >= gap and collection[j - gap] > temp:
																				_lowerCAmelCase         =       collection[j - gap]
																				j -= gap
															_lowerCAmelCase         =       temp

					return collection


if __name__ == "__main__":
	import doctest

	doctest.testmod()





from typing import TYPE_CHECKING

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


_A       =					{
    "configuration_splinter": ["SPLINTER_PRETRAINED_CONFIG_ARCHIVE_MAP", "SplinterConfig"],
    "tokenization_splinter": ["SplinterTokenizer"],
}

try:
   if not is_tokenizers_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   _A       =					["SplinterTokenizerFast"]

try:
   if not is_torch_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   _A       =					[
       "SPLINTER_PRETRAINED_MODEL_ARCHIVE_LIST",
       "SplinterForQuestionAnswering",
       "SplinterForPreTraining",
       "SplinterLayer",
       "SplinterModel",
       "SplinterPreTrainedModel",
   ]


if TYPE_CHECKING:
   from .configuration_splinter import SPLINTER_PRETRAINED_CONFIG_ARCHIVE_MAP, SplinterConfig
   from .tokenization_splinter import SplinterTokenizer

   try:
      if not is_tokenizers_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .tokenization_splinter_fast import SplinterTokenizerFast

   try:
      if not is_torch_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .modeling_splinter import (
          SPLINTER_PRETRAINED_MODEL_ARCHIVE_LIST,
          SplinterForPreTraining,
          SplinterForQuestionAnswering,
          SplinterLayer,
          SplinterModel,
          SplinterPreTrainedModel,
      )


else:
   import sys

   _A       =					_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)

