'''simple docstring'''


from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_sentencepiece_available,
    is_torch_available,
)


__snake_case						  =		{
    """configuration_speecht5""": [
        """SPEECHT5_PRETRAINED_CONFIG_ARCHIVE_MAP""",
        """SPEECHT5_PRETRAINED_HIFIGAN_CONFIG_ARCHIVE_MAP""",
        """SpeechT5Config""",
        """SpeechT5HifiGanConfig""",
    ],
    """feature_extraction_speecht5""": ["""SpeechT5FeatureExtractor"""],
    """processing_speecht5""": ["""SpeechT5Processor"""],
}

try:
       if not is_sentencepiece_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       __snake_case						  =		["""SpeechT5Tokenizer"""]

try:
       if not is_torch_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       __snake_case						  =		[
           """SPEECHT5_PRETRAINED_MODEL_ARCHIVE_LIST""",
           """SpeechT5ForSpeechToText""",
           """SpeechT5ForSpeechToSpeech""",
           """SpeechT5ForTextToSpeech""",
           """SpeechT5Model""",
           """SpeechT5PreTrainedModel""",
           """SpeechT5HifiGan""",
       ]

if TYPE_CHECKING:
       from .configuration_speechta import (
           SPEECHT5_PRETRAINED_CONFIG_ARCHIVE_MAP,
           SPEECHT5_PRETRAINED_HIFIGAN_CONFIG_ARCHIVE_MAP,
           SpeechTaConfig,
           SpeechTaHifiGanConfig,
       )
       from .feature_extraction_speechta import SpeechTaFeatureExtractor
       from .processing_speechta import SpeechTaProcessor

       try:
              if not is_sentencepiece_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .tokenization_speechta import SpeechTaTokenizer

       try:
              if not is_torch_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_speechta import (
                  SPEECHT5_PRETRAINED_MODEL_ARCHIVE_LIST,
                  SpeechTaForSpeechToSpeech,
                  SpeechTaForSpeechToText,
                  SpeechTaForTextToSpeech,
                  SpeechTaHifiGan,
                  SpeechTaModel,
                  SpeechTaPreTrainedModel,
              )

else:
       import sys

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


'''simple docstring'''


import math

def   A_      (       SCREAMING_SNAKE_CASE_						)			->int:

  if not isinstance(SCREAMING_SNAKE_CASE_ ,	SCREAMING_SNAKE_CASE_						):
    lowercase_     =       f"""Input value of [number={number}] must be an integer"""
    raise TypeError(SCREAMING_SNAKE_CASE_						)

  if number < 1:
    lowercase_     =       f"""Input value of [number={number}] must be > 0"""
    raise ValueError(SCREAMING_SNAKE_CASE_						)
  elif number == 1:
    return 3
  elif number == 2:
    return 5
  else:
    lowercase_     =       int(math.log(number // 3 ,	2						)						) + 2

    lowercase_     =       [3, 5]
    lowercase_     =       2
    lowercase_     =       3
    for block in range(1 ,	SCREAMING_SNAKE_CASE_						):
      for _ in range(SCREAMING_SNAKE_CASE_						):
        proth_list.append(2 ** (block + 1) + proth_list[proth_index - 1]						)
        proth_index += 1
      increment *= 2

  return proth_list[number - 1]


if __name__ == "__main__":
       import doctest

       doctest.testmod()

       for number in range(11):
              __snake_case						  =		0
              try:
                     __snake_case						  =		proth(number)
              except ValueError:
                     print(f'''ValueError: there is no {number}th Proth number''')
                     continue

              print(f'''The {number}th Proth number: {value}''')

