Ë
    ›¾j,  ã                   óF  — d dl mZmZmZmZmZ ddlmZ ddlm	Z	 ddl
mZmZmZmZmZmZmZ  edee   ee   ee   ee   eeeeeee«      Z ej&                  d«      de	eef   d	e	eef   fd
„«       Zde	eef   deded	eeef   fd„Z	 dde	eef   dee   dee   d	dfd„Zy)é    )ÚCallableÚListÚOptionalÚTupleÚTypeVaré   )Úregistry)ÚModel)ÚFloats1dÚFloats2dÚFloats3dÚFloats4dÚFloatsXdÚPaddedÚRaggedÚInTzresidual.v1ÚlayerÚreturnc           
      óÞ   — t        d| j                  › d�t        t        | g| j	                  d«      r| j                  d«      nd | j	                  d«      r| j                  d«      nd dœ¬«      S )Nz	residual(ú)ÚnOÚnI)r   r   )ÚinitÚlayersÚdims)r
   ÚnameÚforwardr   Úhas_dimÚget_dim)r   s    ú_/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/thinc/layers/residual.pyÚresidualr!      sa   € äØ
�E—J‘J�<˜qÐ!ÜÜØˆwà).¯©°tÔ)<�%—-‘- Ô%À$Ø).¯©°tÔ)<�%—-‘- Ô%À$ñ
ô	ð 	ó    ÚmodelÚXÚis_trainc                 óÔ  ‡‡— dt         dt         fˆˆfd„} | j                  d   ‰|«      \  }Št        ‰t        «      r-t	        t        ‰«      «      D �cg c]  }‰|   ||   z   ‘Œ c}|fS t        ‰t        «      r/t        ‰j                  |j                  z   ‰j                  «      |fS t        ‰t        «      r#|xj                  ‰j                  z  c_        ||fS ‰|z   |fS c c}w )NÚd_outputr   c                 óz  •—  ‰| «      }t        | t        «      r+t        t        | «      «      D �cg c]  }| |   ||   z   ‘Œ c}S t        | t        «      r-t	        | j
                  |j
                  z   |j                  «      S t        ‰t        «      r!|xj
                  | j
                  z  c_        |S | |z   S c c}w )N)Ú
isinstanceÚlistÚrangeÚlenr   ÚdataÚlengthsr   )r'   ÚdXÚir$   Úbackprop_layers      €€r    Úbackpropzforward.<locals>.backprop   s—   ø€ Ù˜HÓ%ˆÜ�h¤Ô%Ü16´s¸8³}Ó1EÖF¨A�H˜Q‘K " Q¡%Ó'ÒFÐFÜ˜¤&Ô)Ü˜(Ÿ-™-¨"¯'©'Ñ1°2·:±:Ó>Ð>Ü˜œ6Ô"Ø�GŠG�x—}‘}Ñ$�GØˆIà˜b‘=Ð ùò Gs   °B8r   )
r   r   r)   r*   r+   r,   r   r-   r.   r   )r#   r$   r%   r2   ÚYr0   r1   s    `    @r    r   r      sÌ   ù€ ð
!œ3ð 
!¤3ö 
!ð (˜Ÿ™ Q™¨¨8Ó4Ñ€A€~Ü�!”TÔÜ%*¬3¨q«6£]Ö3 ��!‘�q˜‘t“Ò3°XÐ=Ð=Ü	�A”vÔ	Ü�a—f‘f˜qŸv™v‘o q§y¡yÓ1°8Ð;Ð;Ü	�A”vÔ	Ø	�Š�!—&‘&Ñ�Ø�(ˆ{Ðà�1‰u�hˆÐùò 4s   ÁC%Nr3   c                 óZ  — | j                   d   }|j                  d«      €|j                  ||¬«       n|j                  |¬«       |j                  d«      r!| j                  d|j	                  d«      «       |j                  d«      r"| j                  d|j	                  d«      «       y y )Nr   r   )r$   r3   )r$   r   )r   r   Ú
initializeÚset_dimr   )r#   r$   r3   Úfirst_layers       r    r   r   5   s™   € ð —,‘,˜q‘/€KØ×Ñ˜4Ó Ð(Ø×Ñ  aÐÕ(à×Ñ ÐÔ#Ø×Ñ˜4Ô Ø�‰�d˜K×/Ñ/°Ó5Ô6Ø×Ñ˜4Ô Ø�‰�d˜K×/Ñ/°Ó5Õ6ð !r"   )NN)Útypingr   r   r   r   r   Úconfigr	   r#   r
   Útypesr   r   r   r   r   r   r   r   r   r!   Úboolr   r   © r"   r    ú<module>r=      sü   ðß ;Õ ;å Ý ß T× TÑ Tñ Ø	ˆ4�‰>˜4 ™>¨4°©>¸4À¹>Ø
ˆF�H˜h¨°(¸HóF€ð €‡��Óð
�E˜#˜s˜(‘Oð 
¨¨c°3¨h©ò 
ó  ð
ð�5˜˜c˜‘?ð  sð °dð ¸uÀSÈ(À]Ñ?Só ð4 IMñ7Ø��c�‰?ð7Ø'¨™}ð7Ø8@À¹ð7à	ô7r"   