



'''simple docstring'''





from typing import List, Optional, Tuple, Union

from . import logging
from .import_utils import is_torch_available, is_torch_version


if is_torch_available():
   import torch

_UpperCamelCase							       =		logging.get_logger(__name__)  # pylint: disable=invalid-name

try:
   from torch._dynamo import allow_in_graph as maybe_allow_in_graph
except (ImportError, ModuleNotFoundError):

   def  a_  (							cls )   ->   str:
     return cls

def  a_  (							_lowerCAmelCase ,_lowerCAmelCase = None ,_lowerCAmelCase = None ,_lowerCAmelCase = None ,_lowerCAmelCase = None ,)   ->   List[Any]:
  __lowerCamelCase : Dict					 =				device
  __lowerCamelCase : Tuple					 =				shape[0]

  __lowerCamelCase : Union[str, Any]					 =				layout or torch.strided
  __lowerCamelCase : Dict					 =				device or torch.device('cpu' )

  if generator is not None:
    __lowerCamelCase : Optional[int]					 =				generator.device.type if not isinstance(_lowerCAmelCase ,_lowerCAmelCase ) else generator[0].device.type
    if gen_device_type != device.type and gen_device_type == "cpu":
      __lowerCamelCase : List[str]					 =				"cpu"
      if device != "mps":
        logger.info(
            F'The passed generator was created on \'cpu\' even though a tensor on {device} was expected.'
            F' Tensors will be created on \'cpu\' and then moved to {device}. Note that one can probably'
            F' slighly speed up this function by passing a generator that was created on the {device} device.' )
    elif gen_device_type != device.type and gen_device_type == "cuda":
      raise ValueError(F'Cannot generate a {device} tensor from a generator of type {gen_device_type}.' )

  if isinstance(_lowerCAmelCase ,_lowerCAmelCase ):
    __lowerCamelCase : Tuple					 =				(1,) + shape[1:]
    __lowerCamelCase : str					 =				[
        torch.randn(_lowerCAmelCase ,generator=generator[i] ,device=_lowerCAmelCase ,dtype=_lowerCAmelCase ,layout=_lowerCAmelCase )
        for i in range(_lowerCAmelCase )
    ]
    __lowerCamelCase : Dict					 =				torch.cat(_lowerCAmelCase ,dim=0 ).to(_lowerCAmelCase )
  else:
    __lowerCamelCase : Optional[Any]					 =				torch.randn(_lowerCAmelCase ,generator=_lowerCAmelCase ,device=_lowerCAmelCase ,dtype=_lowerCAmelCase ,layout=_lowerCAmelCase ).to(_lowerCAmelCase )

  return latents


def  a_  (							_lowerCAmelCase )   ->   Optional[Any]:



  if is_torch_version('<' ,'2.0.0' ) or not hasattr(_lowerCAmelCase ,'_dynamo' ):
    return False
  return isinstance(_lowerCAmelCase ,torch._dynamo.eval_frame.OptimizedModule )











'''simple docstring'''





def  a_  (							_lowerCAmelCase = 1000 )   ->   int:
  return sum(i for i in range(_lowerCAmelCase ) if i % 3 == 0 or i % 5 == 0 )


if __name__ == "__main__":
   print(f'''{solution() = }''')






