






"""simple docstring"""




# Copyright 2023 The HuggingFace Team. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from typing import TYPE_CHECKING

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


lowerCamelCase__			=   {
    "configuration_tvlt": ["TVLT_PRETRAINED_CONFIG_ARCHIVE_MAP", "TvltConfig"],
    "feature_extraction_tvlt": ["TvltFeatureExtractor"],
    "processing_tvlt": ["TvltProcessor"],
}

try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      lowerCamelCase__			=   [
          "TVLT_PRETRAINED_MODEL_ARCHIVE_LIST",
          "TvltModel",
          "TvltForPreTraining",
          "TvltForAudioVisualClassification",
          "TvltPreTrainedModel",
      ]

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


if TYPE_CHECKING:
      from .configuration_tvlt import TVLT_PRETRAINED_CONFIG_ARCHIVE_MAP, TvltConfig
      from .processing_tvlt import TvltProcessor
      from .feature_extraction_tvlt import TvltFeatureExtractor

      try:
            if not is_torch_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_tvlt import (
                TVLT_PRETRAINED_MODEL_ARCHIVE_LIST,
                TvltForAudioVisualClassification,
                TvltForPreTraining,
                TvltModel,
                TvltPreTrainedModel,
            )

      try:
            if not is_vision_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .image_processing_tvlt import TvltImageProcessor


else:
      import sys

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












"""simple docstring"""




from .hash_table import HashTable
from .number_theory.prime_numbers import is_prime, next_prime







class 					_UpperCamelCase		( __snake_case):






    def __init__(self						,      *lowerCamelCase__						,      **lowerCamelCase__   ):


      """simple docstring"""
      super().__init__(*lowerCamelCase__						,      **lowerCamelCase__   )






    def  A    (self						,      lowerCamelCase__						,      lowerCamelCase__   ):


      """simple docstring"""
      A__											=							(
          next_prime(value % self.size_table   )
          if not is_prime(value % self.size_table   )
          else value % self.size_table
      )  # gt = bigger than
      return next_prime_gt - (data % next_prime_gt)






    def  A    (self						,      lowerCamelCase__						,      lowerCamelCase__						,      lowerCamelCase__   ):


      """simple docstring"""
      return (increment * self.__hash_function_a(lowerCamelCase__						,      lowerCamelCase__   )) % self.size_table






    def  A    (self						,      lowerCamelCase__						,      lowerCamelCase__=None   ):


      """simple docstring"""
      A__											=							1
      A__											=							self.hash_function(lowerCamelCase__   )

      while self.values[new_key] is not None and self.values[new_key] != key:
        A__											=							(
            self.__hash_double_function(lowerCamelCase__						,      lowerCamelCase__						,      lowerCamelCase__   )
            if self.balanced_factor() >= self.lim_charge
            else None
        )
        if new_key is None:
          break
        else:
          i += 1

      return new_key




