
      i                         d dl mZ d dlmZmZ d dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d d	lmZmZ  G d
 de      Zy)    )AbstractContextManager)AnyLiteralN)apply_to_collection)Tensor)Module)override)	Precision)_convert_fp_tensor_DtypeContextManagerc                       e Zd ZU dZdZed   ed<   ededefd       Z	ede
fd       Zede
fd       Zede
fd	       Zed
edefd       Zed
edefd       Zy)DoublePrecisionz>Plugin for training with double (``torch.float64``) precision.z64-true	precisionmodulereturnc                 "    |j                         S N)double)selfr   s     ~/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/lightning/fabric/plugins/precision/double.pyconvert_modulezDoublePrecision.convert_module    s    }}    c                 4    t        t        j                        S r   )r   torchr   r   s    r   tensor_init_contextz#DoublePrecision.tensor_init_context$   s    #ELL11r   c                 "    | j                         S r   r   r   s    r   module_init_contextz#DoublePrecision.module_init_context(       ''))r   c                 "    | j                         S r   r   r   s    r   forward_contextzDoublePrecision.forward_context,   r    r   datac                 L    t        |t        t        t        j                        S N)functiondtypedst_type)r   r   r   r   r   r   r#   s     r   convert_inputzDoublePrecision.convert_input0   s    "42DF]b]i]ijjr   c                 T    t        |t        t        t        j                               S r%   )r   r   r   r   get_default_dtyper)   s     r   convert_outputzDoublePrecision.convert_output4   s    "42DF]b]t]t]vwwr   N)__name__
__module____qualname____doc__r   r   __annotations__r	   r   r   r   r   r   r"   r   r*   r-    r   r   r   r      s    H$-Iwy!-V    2%; 2 2 *%; * * *!7 * * k# k# k k x3 x3 x xr   r   )
contextlibr   typingr   r   r   #lightning_utilities.core.apply_funcr   r   torch.nnr   typing_extensionsr	   ,lightning.fabric.plugins.precision.precisionr
   (lightning.fabric.plugins.precision.utilsr   r   r   r3   r   r   <module>r;      s0    .   C   & B ]xi xr   