

# coding=utf-8
# Copyright 2020 The HuggingFace Inc. team.
#
# 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.

# this script dumps information about the environment

import os
import sys

import transformers


lowerCAmelCase							:  Optional[int]   	=						"""3"""

print("""Python version:""", sys.version)
print("""transformers version:""", transformers.__version__)

try:
						import torch

						print("""Torch version:""", torch.__version__)
						print("""Cuda available:""", torch.cuda.is_available())
						print("""Cuda version:""", torch.version.cuda)
						print("""CuDNN version:""", torch.backends.cudnn.version())
						print("""Number of GPUs available:""", torch.cuda.device_count())
						print("""NCCL version:""", torch.cuda.nccl.version())
except ImportError:
						print("""Torch version:""", None)

try:
						import deepspeed

						print("""DeepSpeed version:""", deepspeed.__version__)
except ImportError:
						print("""DeepSpeed version:""", None)

try:
						import tensorflow as tf

						print("""TensorFlow version:""", tf.__version__)
						print("""TF GPUs available:""", bool(tf.config.list_physical_devices("""GPU""")))
						print("""Number of TF GPUs available:""", len(tf.config.list_physical_devices("""GPU""")))
except ImportError:
						print("""TensorFlow version:""", None)









def 			A_      (    _UpperCAmelCase				,	_UpperCAmelCase				,	_UpperCAmelCase				,	_UpperCAmelCase				,	_UpperCAmelCase				,	):
						SCREAMING_SNAKE_CASE_: Optional[int]  		=       [redshift, radiation_density, matter_density, dark_energy]
						if any(p < 0 for p in parameters    ):
												raise ValueError("All input parameters must be positive"    )

						if any(p > 1 for p in parameters[1:4]    ):
												raise ValueError("Relative densities cannot be greater than one"    )
						else:
												SCREAMING_SNAKE_CASE_: int  		=       1 - (matter_density + radiation_density + dark_energy)

												SCREAMING_SNAKE_CASE_: Dict  		=       (
												    radiation_density * (redshift + 1) ** 4
												    + matter_density * (redshift + 1) ** 3
												    + curvature * (redshift + 1) ** 2
												    + dark_energy
												)

												SCREAMING_SNAKE_CASE_: Any  		=       hubble_constant * e_a ** (1 / 2)
												return hubble


if __name__ == "__main__":
						import doctest

						# run doctest
						doctest.testmod()

						# demo LCDM approximation
						lowerCAmelCase							:  List[Any]   	=						0.3

						print(
						    hubble_parameter(
						        hubble_constant=68.3,
						        radiation_density=1E-4,
						        matter_density=matter_density,
						        dark_energy=1 - matter_density,
						        redshift=0,
						    )
						)






