o
     ¢iÂ  ã                
   @   sž   d dl mZmZmZ ddlmZ ddlmZ ddlm	Z	m
Z
 ddlmZ e
Ze	Ze d¡deeef fd	d
„ƒZdeeef dededeeef fdd„ZdS )é    )ÚCallableÚTupleÚcasté   )Úregistry)ÚModel)ÚFloats2dÚRagged)Ú	ArrayInfozreduce_sum.v1Úreturnc                   C   s
   t dtƒS )NÚ
reduce_sum)r   Úforward© r   r   úK/home/ubuntu/.local/lib/python3.10/site-packages/thinc/layers/reduce_sum.pyr      s   
r   ÚmodelÚXrÚis_trainc                    sJ   ˆj  tt|jƒ|j¡}|j‰t |¡‰ dtdt	f‡ ‡‡fdd„}||fS )NÚdYr   c                    s   ˆ   | ¡ tˆj | ˆ¡ˆƒS )N)Úcheck_consistencyr	   ÚopsÚbackprop_reduce_sum)r   ©Ú
array_infoÚlengthsr   r   r   Úbackprop   s   
zforward.<locals>.backprop)
r   r   r   r   Údatar   r
   Ú
from_arrayÚOutTÚInT)r   r   r   ÚYr   r   r   r   r      s
   
r   N)Útypingr   r   r   Úconfigr   r   r   Útypesr   r	   Úutilr
   r   r   Úlayersr   Úboolr   r   r   r   r   Ú<module>   s    .