
"""simple docstring"""




def 			_lowerCAmelCase		(		_UpperCamelCase    ):






  """simple docstring"""



  if upper_limit < 0:
    raise ValueError('''Limit for the Catalan sequence must be ≥ 0'''    )

  _lowercase:      List[str]   			=  [0] * (upper_limit + 1)

  # Base case: C(0) = C(1) = 1
  _lowercase:      Optional[int]   			=  1
  if upper_limit > 0:
    _lowercase:      Optional[Any]   			=  1

  # Recurrence relation: C(i) = sum(C(j).C(i-j-1)), from j = 0 to i
  for i in range(2			,					upper_limit + 1    ):
    for j in range(_UpperCamelCase    ):
      catalan_list[i] += catalan_list[j] * catalan_list[i - j - 1]

  return catalan_list


if __name__ == "__main__":
  print('\n********* Catalan Numbers Using Dynamic Programming ************\n')
  print('\n*** Enter -1 at any time to quit ***')
  print('\nEnter the upper limit (≥ 0) for the Catalan number sequence: ', end='')
  try:
    while True:
      A__ :       List[str]				= int(input().strip())
      if N < 0:
        print('\n********* Goodbye!! ************')
        break
      else:
        print(f"""The Catalan numbers from 0 through {N} are:""")
        print(catalan_numbers(N))
        print('Try another upper limit for the sequence: ', end='')
  except (NameError, ValueError):
    print('\n********* Invalid input, goodbye! ************\n')

  import doctest

  doctest.testmod()


"""simple docstring"""




from typing import TYPE_CHECKING

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


A__ :       List[str]				= {
    'configuration_biogpt': ['BIOGPT_PRETRAINED_CONFIG_ARCHIVE_MAP', 'BioGptConfig'],
    'tokenization_biogpt': ['BioGptTokenizer'],
}

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  A__ :       Dict				= [
      'BIOGPT_PRETRAINED_MODEL_ARCHIVE_LIST',
      'BioGptForCausalLM',
      'BioGptForTokenClassification',
      'BioGptForSequenceClassification',
      'BioGptModel',
      'BioGptPreTrainedModel',
  ]


if TYPE_CHECKING:
  from .configuration_biogpt import BIOGPT_PRETRAINED_CONFIG_ARCHIVE_MAP, BioGptConfig
  from .tokenization_biogpt import BioGptTokenizer

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_biogpt import (
        BIOGPT_PRETRAINED_MODEL_ARCHIVE_LIST,
        BioGptForCausalLM,
        BioGptForSequenceClassification,
        BioGptForTokenClassification,
        BioGptModel,
        BioGptPreTrainedModel,
    )


else:
  import sys

  A__ :       int				= _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)
