






def      UpperCAmelCase						( lowerCAmelCase__					,     lowerCAmelCase__					,     lowerCAmelCase__					,     lowerCAmelCase__	):


		'''simple docstring'''

		__A    =							int((lower_bound + upper_bound) // 2	)
		if array[r] == value:
				return r
		if lower_bound >= upper_bound:
				return -1
		if array[r] < value:
				return binary_search(lowerCAmelCase__					,     r + 1					,     lowerCAmelCase__					,     lowerCAmelCase__	)
		else:
				return binary_search(lowerCAmelCase__					,     lowerCAmelCase__					,     r - 1					,     lowerCAmelCase__	)



def      UpperCAmelCase						( lowerCAmelCase__					,     lowerCAmelCase__	):


		'''simple docstring'''

		__A    =							0
		if matrix[index][0] == value:
				return [index, 0]
		while index < len(lowerCAmelCase__	) and matrix[index][0] < value:
				__A    =							binary_search(matrix[index]					,     0					,     len(matrix[index]	) - 1					,     lowerCAmelCase__	)
				if r != -1:
						return [index, r]
				index += 1
		return [-1, -1]


if __name__ == "__main__":
					import doctest

					doctest.testmod()









from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tf_available,
    is_torch_available,
)


snake_case_   :	Union[str, Any]							      ={'''configuration_gptj''': ['''GPTJ_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''GPTJConfig''', '''GPTJOnnxConfig''']}

try:
					if not is_torch_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					snake_case_   :	int							      =[
					    '''GPTJ_PRETRAINED_MODEL_ARCHIVE_LIST''',
					    '''GPTJForCausalLM''',
					    '''GPTJForQuestionAnswering''',
					    '''GPTJForSequenceClassification''',
					    '''GPTJModel''',
					    '''GPTJPreTrainedModel''',
					]

try:
					if not is_tf_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					snake_case_   :	str							      =[
					    '''TFGPTJForCausalLM''',
					    '''TFGPTJForQuestionAnswering''',
					    '''TFGPTJForSequenceClassification''',
					    '''TFGPTJModel''',
					    '''TFGPTJPreTrainedModel''',
					]

try:
					if not is_flax_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					snake_case_   :	List[Any]							      =[
					    '''FlaxGPTJForCausalLM''',
					    '''FlaxGPTJModel''',
					    '''FlaxGPTJPreTrainedModel''',
					]


if TYPE_CHECKING:
					from .configuration_gptj import GPTJ_PRETRAINED_CONFIG_ARCHIVE_MAP, GPTJConfig, GPTJOnnxConfig

					try:
										if not is_torch_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_gptj import (
										    GPTJ_PRETRAINED_MODEL_ARCHIVE_LIST,
										    GPTJForCausalLM,
										    GPTJForQuestionAnswering,
										    GPTJForSequenceClassification,
										    GPTJModel,
										    GPTJPreTrainedModel,
										)

					try:
										if not is_tf_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_tf_gptj import (
										    TFGPTJForCausalLM,
										    TFGPTJForQuestionAnswering,
										    TFGPTJForSequenceClassification,
										    TFGPTJModel,
										    TFGPTJPreTrainedModel,
										)

					try:
										if not is_flax_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_flax_gptj import FlaxGPTJForCausalLM, FlaxGPTJModel, FlaxGPTJPreTrainedModel

else:
					import sys

					snake_case_   :	List[str]							      =_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)

