ó
    Ÿ“,jt  ã            
       óò   • S SK JrJrJr  SSKJrJrJrJrJ	r	  SSK
JrJr  S\S\S\S\S	\4
S
 jrS\S\S	\4S jrS\S\S	\4S jrS\4S jr\rS\\   S\S	\\\\   4   4S jrS\S\\   S\S	\\   4S jrg)é    )ÚListÚSequenceÚTupleé   )ÚEinopsErrorÚ	ReductionÚTensorÚ_apply_recipe_array_apiÚ_prepare_transformation_recipe)Úanalyze_patternÚprodÚtensorÚpatternÚ	reductionÚaxes_lengthsÚreturnc                 ó  • [        U [        5      (       a?  [        U 5      S:X  a  [        S5      eU S   R	                  5       nUR                  U 5      n OU R	                  5       n [        UR                  5       5      n[        X[        U5      U R                  S9n[        UUU UUS9$ ! [         aW  nSU SU S3n[        U [        5      (       d  USU R                   S	3-  nOUS
-  nUSU S3-  n[        USU 3-   5      S eS nAff = f)Nr   z(Einops can't be applied to an empty list)Ú
axes_namesÚndim)Úreciper   Úreduction_typer   z Error while processing z-reduction pattern "z".z
 Input tensor shape: z. z
 Input is list. zAdditional info: Ú.z
 )Ú
isinstanceÚlistÚlenÚ	TypeErrorÚ__array_namespace__ÚstackÚtupleÚitemsr   r   r
   r   Úshape)	r   r   r   r   ÚxpÚhashable_axes_lengthsr   ÚeÚmessages	            ÚžC:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\einops/array_api.pyÚreducer'      s)  € Ü�&œ$×ÑÜˆv‹;˜!ÓÜÐFÓGÐGØ�A‰Y×*Ñ*Ó,ˆØ—‘˜&Ó!‰à×'Ñ'Ó)ˆð9Ü % l×&8Ñ&8Ó&:Ó ;ÐÜ/°ÌuÐUaÓObÐio×itÑitÑuˆÜ&ØØØØ$Ø.ñ
ð 	
øô ó 9Ø,¨Y¨KÐ7KÈGÈ9ÐTVÐWˆÜ˜&¤$×'Ñ'ØÐ0°·±°¸bÐAÑA‰GàÐ+Ñ+ˆGØÐ& | n°AÐ6Ñ6ˆÜ˜' c¨!¨ IÑ-Ó.°DÐ8ûð9ús   Á&AB* Â*
DÂ4ADÄDc                 ó   • [        X4SS0UD6$ )Nr   Úrepeat©r'   ©r   r   r   s      r&   r)   r)   #   s   € Ü�&ÑF¨XÐF¸ÑFÐFó    c                 ó   • [        X4SS0UD6$ )Nr   Ú	rearranger*   r+   s      r&   r.   r.   '   s   € Ü�&ÑI¨[ÐI¸LÑIÐIr,   c                 ó,   • SS K nUR                  U 5      $ )Nr   )ÚnumpyÚfrom_dlpack)r   Únps     r&   Úasnumpyr3   +   s   € Ûà�>‰>˜&Ó!Ð!r,   Útensorsc                 óš  • [        US5      u  p#nU S   R                  5       n/ n/ n[        U 5       H†  u  p‰U	R                  n
[	        U
5      U:  a  [        SU SU
 SU SU S3	5      e[	        U
5      U-
  nUR                  X¢U 5        UR                  UR                  U	/ U
S U QSPX«S  Q75      5        Mˆ     UR                  XbS	9U4$ )
NÚpackr   zpacked tensor #z' (enumeration starts with 0) has shape z, while pattern z assumes at least z axeséÿÿÿÿ)Úaxis)	r   r   Ú	enumerater!   r   r   ÚappendÚreshapeÚconcat)r4   r   Ún_axes_beforeÚn_axes_afterÚmin_axesr"   Úreshaped_tensorsÚpacked_shapesÚir   r!   Úaxis_after_packed_axess               r&   r6   r6   4   s   € Ü,;¸GÀVÓ,LÑ)€M Ø	�‰×	'Ñ	'Ó	)€Bà%'ÐØ!#€MÜ˜wÖ'‰	ˆØ—‘ˆÜˆu‹:˜Ó ÜØ! ! Ð$KÈEÈ7ð S!Ø!( 	Ð);¸H¸:ÀUðLóð ô "% U£¨lÑ!:ÐØ×Ñ˜UÐ1GÐHÔIØ×Ñ §
¡
¨6Ð3p°U¸>¸MÐ5JÐ3pÈBÐ3pÐQVÐWnÐQoÑ3pÓ qÖrñ (ð �9‰9Ð%ˆ9Ð:¸MÐIÐIr,   rA   c                 óÔ  • U R                  5       n[        USS9u  pEnU R                  n[        U5      US-   U-   :w  a  [	        SU SU 35      eUnU V	s/ s H  n	SU	;   a  SO
[        U	5      PM     n
n	[        S U
 5       5      nUS:”  a  [	        SU SU S	35      eS
/[        U5      -  Xx   /-   nUS
:X  a$  [        U
S S 5       H  u  pÞXÍ   U-   XÍS-   '   M     OgU
R                  S5      n[        U5       H  nXÍ   X­   -   XÍS-   '   M     [        US-   [        U
5      5      S S S2    H  nUUS-      U
U   -
  UU'   M     US U nXxS-   S  n[        S S 5      4U-  n [        U5       VVs/ s H:  u  nnUR                  U / UQ[        XÍ   XÍS-      5      PSP7   / UQUQUQ75      PM<     snn$ s  sn	f s  snnf ! [         a  n[        SU SUS    SU 35      UeS nAff = f)NÚunpack)Úopnamer   zunpack(..., z)) received input of wrong dim with shape r7   c              3   ó*   #   • U  H	  oS :H  v •  M     g7f)r7   N© )Ú.0Úxs     r&   Ú	<genexpr>Úunpack.<locals>.<genexpr>U   s   é € Ð!LÒ3K¨a r¦'Ò3Kùs   ‚z) received more than one -1 in z and can't infer dimensionsr   .zError during unpack(..., "z!"): could not split axis of size z into requested )r   r   r!   r   r   r   Úsumr9   ÚindexÚrangeÚslicer;   Ú	ExceptionÚRuntimeError)r   rA   r   r"   r=   r>   r?   Úinput_shapeÚunpacked_axisÚp_shapeÚlengths_of_composed_axesÚn_unknown_composed_axesÚsplit_positionsrB   rJ   Úunknown_composed_axisÚjÚshape_startÚ	shape_endÚslice_fillerÚelement_shaper$   s                         r&   rE   rE   H   s›  € Ø	×	#Ñ	#Ó	%€BÜ,;¸GÈHÑ,UÑ)€M ð —,‘,€KÜ
ˆ;Ó˜=¨1Ñ,¨|Ñ;Ó;Ü˜L¨¨	Ð1ZÐ[fÐZgÐhÓiÐià&€MáanÓ*oÒanÐV]°°w³©2ÄDÈÃMÒ+QÑanÐÐ*oä!Ñ!LÑ3KÓ!LÓLÐØ Ó"ÜØ˜7˜)Ð#BÀ=À/ÐQlÐmó
ð 	
ð �cœC Ó.Ñ.°+Ñ2LÐ1MÑM€OØ !Ó#ÜÐ6°s¸Ð;Ö<‰DˆAØ%4Ñ%7¸!Ñ%;ˆO ™EÓ"ò =ð &>×%CÑ%CÀBÓ%GÐÜÐ,Ö-ˆAØ%4Ñ%7Ð:RÑ:UÑ%UˆO ™EÓ"ñ .äÐ,¨qÑ0´#Ð6NÓ2OÓPÑQUÐSUÐQUÔVˆAØ!0°°Q±Ñ!7Ð:RÐSTÑ:UÑ!UˆO˜AÓñ Wð ˜n˜}Ð-€KØ¨AÑ-Ð/Ð0€IÜ˜$ Ó%Ð'¨-Ñ7€Lðô %.¨mÔ$<ô
ò %=Ñ ��=ð �J‰JàÐ^˜Ð^¤u¨_Ñ-?ÀÐUVÑQVÑAWÓ'XÐ^ÐZ]Ñ^Ñ_Ø:�+Ð: Ð:°	Ñ:öñ
 %=ò
ð 	
ùò; +pùó:
øô ó äØ(¨¨	Ð1RÐSbÐceÑSfÐRgØ˜}˜oð/ó
ð ð	ûðús1   ÁF5Å"G  Å0AF:Æ1G  Æ:G  Ç 
G'Ç
G"Ç"G'N)Útypingr   r   r   Úeinopsr   r   r	   r
   r   Úpackingr   r   ÚstrÚintr'   r)   r.   r3   ÚShaper6   rE   rH   r,   r&   Ú<module>re      sæ   ðß (Ñ (ç kÕ kß *ð9�6ð 9 Cð 9°Ið 9Èsð 9ÐW]ô 9ð8G�6ð G Cð G¸Fô GðJ�fð J sð J¸vô Jð"�Fô "ð 	€ðJ�(˜6Ñ"ð J¨Sð J°U¸6À4ÈÁ;Ð;NÑ5Oô Jð(5�6ð 5¨$¨u©+ð 5Àð 5ÈÈVÉõ 5r,   