






"""simple docstring"""





from __future__ import annotations

import sys



def      __lowercase       (     a			:					Any			)       ->       Dict:
      if n < 0:
            raise ValueError('''Negative arguments are not supported'''			)
      return _fib(SCREAMING_SNAKE_CASE_			)[0]



def      __lowercase       (     a			:					int			)       ->       int:
      if n == 0:  # (F(0), F(1))
            return (0, 1)

      # F(2n) = F(n)[2F(n+1) − F(n)]
      # F(2n+1) = F(n+1)^2+F(n)^2
      __snake_case   :     List[Any]	      =_fib(n // 2			)
      __snake_case   :     Any	      =a * (b * 2 - a)
      __snake_case   :     List[str]	      =a * a + b * b
      return (d, c + d) if n % 2 else (c, d)


if __name__ == "__main__":
    UpperCamelCase_						:					Union[str, Any]      				=			int(sys.argv[1])
    print(F'''fibonacci({n}) is {fibonacci(n)}''')



'''simple docstring'''




from typing import TYPE_CHECKING

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


_A										= {
    'configuration_rwkv': ['RWKV_PRETRAINED_CONFIG_ARCHIVE_MAP', 'RwkvConfig', 'RwkvOnnxConfig'],
}

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _A										= [
     'RWKV_PRETRAINED_MODEL_ARCHIVE_LIST',
     'RwkvForCausalLM',
     'RwkvModel',
     'RwkvPreTrainedModel',
 ]


if TYPE_CHECKING:
 from .configuration_rwkv import RWKV_PRETRAINED_CONFIG_ARCHIVE_MAP, RwkvConfig, RwkvOnnxConfig

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_rwkv import (
      RWKV_PRETRAINED_MODEL_ARCHIVE_LIST,
      RwkvForCausalLM,
      RwkvModel,
      RwkvPreTrainedModel,
  )
else:
 import sys

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




