§
    PŠtj¼  ã                  óš   — 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 ddlmZ d d	lmZ d d
lmZ d dlmZ  G d„ de¦  «        ZdS )é    )Úannotations)ÚExpr)Ú
Derivative)ÚInteger)Ú
MatrixBaseé   )Ú	NDimArray)Úderive_by_array)Ú
MatrixExpr)Ú
ZeroMatrix©Ú_matrix_derivativec                  ó  ‡ — e Zd ZdZˆ fd„Zd„ Zed„ ¦   «         Zed„ ¦   «         Z	e
dd„¦   «         Ze
dd„¦   «         Ze
dd„¦   «         Ze
dd„¦   «         Ze
dd„¦   «         Ze
dd„¦   «         Ze
dd„¦   «         Zeˆ fd„¦   «         Zˆ xZS )ÚArrayDerivativeFc                ó    •—  t          ¦   «         j        | |g|¢R i |¤Ž}t          |t          ¦  «        r|                     ¦   «         |_        |S ©N)ÚsuperÚ__new__Ú
isinstancer   Ú
_get_shapeÚ_shape)ÚclsÚexprÚ	variablesÚkwargsÚobjÚ	__class__s        €úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/tensor/array/array_derivatives.pyr   zArrayDerivative.__new__   sR   ø€ Ø�e‰gŒgŒo˜c 4Ð>¨)Ð>Ð>Ð>°vÐ>Ð>ˆÝ�c�?Ñ+Ô+ð 	*ØŸšÑ)Ô)ˆCŒJØˆ
ó    c                óÄ   — d}| j         D ]1\  }}t          |d¦  «        rt          |¦  «        D ]}||j        z  }ŒŒ2t          | j        d¦  «        r|| j        j        z  }|S )N© Úshape)Úvariable_countÚhasattrÚranger"   r   )Úselfr"   ÚvÚcountÚis        r   r   zArrayDerivative._get_shape   sz   € ØˆØÔ+ð 	%ð 	%‰HˆAˆuÝ�q˜'Ñ"Ô"ð %Ý˜u™œð %ð %�AØ˜QœWÑ$�E�EøÝ�4”9˜gÑ&Ô&ð 	%Ø�T”Y”_Ñ$ˆEØˆr   c                ó   — | j         S r   )r   )r&   s    r   r"   zArrayDerivative.shape"   s
   € àŒ{Ðr   c                ó¼   — t          |t          t          f¦  «        r |j        |j        Ž S t          |t
          ¦  «        rt          |j        Ž S t          d¦  «        ‚)Nz.Unable to determine shape of array-derivative.)r   r   r	   Úzerosr"   r   r   ÚRuntimeError)r   r   s     r   Ú_get_zero_with_shape_likez)ArrayDerivative._get_zero_with_shape_like&   sZ   € å�d�Z­Ð3Ñ4Ô4ð 	QØ�4”:˜tœzÐ*Ð*Ý˜�jÑ)Ô)ð 	QÝ˜tœzÐ*Ð*åÐOÑPÔPÐPr   r   r   r'   r   Úreturnc                ó4   ‡ — |                      ˆ fd„¦  «        S )Nc                ó.   •— ‰                      | ¦  «        S r   ©Údiff©Úxr   s    €r   ú<lambda>z?ArrayDerivative._call_derive_scalar_by_matrix.<locals>.<lambda>1   ó   ø€  T§Y¢Y¨q¡\¤\€ r   ©Ú	applyfunc©r   r'   s   ` r   Ú_call_derive_scalar_by_matrixz-ArrayDerivative._call_derive_scalar_by_matrix/   ó   ø€ à�{Š{Ð1Ð1Ð1Ð1Ñ2Ô2Ð2r   r   c                óh   — |                       |¦  «        rt          | |¦  «        S t          |j        Ž S r   )Úhasr   r   r"   r:   s     r   Ú_call_derive_scalar_by_matexprz.ArrayDerivative._call_derive_scalar_by_matexpr3   s1   € à�8Š8�A‰;Œ;ð 	(Ý% d¨AÑ.Ô.Ð.å˜qœwÐ'Ð'r   r	   c                ó4   ‡ — |                      ˆ fd„¦  «        S )Nc                ó.   •— ‰                      | ¦  «        S r   r2   r4   s    €r   r6   z>ArrayDerivative._call_derive_scalar_by_array.<locals>.<lambda><   r7   r   r8   r:   s   ` r   Ú_call_derive_scalar_by_arrayz,ArrayDerivative._call_derive_scalar_by_array:   r<   r   c                ó"   — t          | |¦  «        S r   r   r:   s     r   Ú_call_derive_matrix_by_scalarz-ArrayDerivative._call_derive_matrix_by_scalar>   s   € å! $¨Ñ*Ô*Ð*r   c                ó,   — |                       |¦  «        S r   )Ú_eval_derivativer:   s     r   Ú_call_derive_matexpr_by_scalarz.ArrayDerivative._call_derive_matexpr_by_scalarB   s   € à×$Ò$ QÑ'Ô'Ð'r   c                ó4   ‡— |                       ˆfd„¦  «        S )Nc                ó.   •— |                       ‰¦  «        S r   r2   )r5   r'   s    €r   r6   z>ArrayDerivative._call_derive_array_by_scalar.<locals>.<lambda>H   s   ø€ ¨¯ª¨q©	¬	€ r   r8   r:   s    `r   Ú_call_derive_array_by_scalarz,ArrayDerivative._call_derive_array_by_scalarF   s   ø€ à�~Š~Ð1Ð1Ð1Ð1Ñ2Ô2Ð2r   úExpr | Nonec                óP   — |                       |¦  «        rt          | |¦  «        S d S r   )r>   r   r:   s     r   Ú_call_derive_defaultz$ArrayDerivative._call_derive_defaultJ   s)   € à�8Š8�A‰;Œ;ð 	Ý% d¨AÑ.Ô.Ð.à�4r   c                ó   •— t          |t          t          f¦  «        r
|dk    dk    rd S |j        r³t          |t          ¦  «        r|                      ||¦  «        }�nÌt          |t          ¦  «        r|                      ||¦  «        }�nŸt          |t          ¦  «        r|  	                    ||¦  «        }�nr|j        r#t          ¦   «                              |||¦  «        S d S |j        r‡t          |t          ¦  «        r|                      ||¦  «        }�nt          |t          ¦  «        r|                      ||¦  «        }næt          |t          ¦  «        r|                      ||¦  «        }nºd S t          |t          ¦  «        st          |t          ¦  «        rt          ||¦  «        }n}t          |t          ¦  «        r,t          |t          ¦  «        r|                      ||¦  «        }n<t          |t          ¦  «        st          |t          ¦  «        rd S t          ||¦  «        }|€d S |dk    r|S |                      |||dz
  ¦  «        S )Nr   Tr   )r   Úintr   Ú	is_scalarr   r;   r   r?   r	   rB   r   Ú!_dispatch_eval_derivative_n_timesrD   rG   rJ   r
   rM   )r   r   r'   r(   Úresultr   s        €r   rQ   z1ArrayDerivative._dispatch_eval_derivative_n_timesQ   sE  ø€ õ ˜%¥#¥w Ñ0Ô0ð 	°e¸q²jÀTÒ5IÐ5IØ�4ð Œ>ð 	2Ý˜!�ZÑ(Ô(ð 
Ø×:Ò:¸4ÀÑCÔC�‘Ý˜A�zÑ*Ô*ð Ø×;Ò;¸DÀ!ÑDÔD�‘Ý˜A�yÑ)Ô)ð Ø×9Ò9¸$ÀÑBÔB�‘Ø”ð å‘w”w×@Ò@ÀÀqÈ%ÑPÔPÐPà�tØŒ[ð 	2Ý˜$¥
Ñ+Ô+ð Ø×:Ò:¸4ÀÑCÔC�‘Ý˜D¥*Ñ-Ô-ð Ø×;Ò;¸DÀ!ÑDÔD��Ý˜D¥)Ñ,Ô,ð Ø×9Ò9¸$ÀÑBÔB��à�tõ ˜$¥
Ñ+Ô+ð 2­z¸!½ZÑ/HÔ/Hð 2Ý(¨¨qÑ1Ô1��Ý˜D¥*Ñ-Ô-ð 2µ*¸QÅ
Ñ2KÔ2Kð 2Ø×1Ò1°$¸Ñ:Ô:��Ý˜D¥*Ñ-Ô-ð 2µ¸A½zÑ1JÔ1Jð 2à�tå(¨¨qÑ1Ô1�Øˆ>Ø�4Ø�AŠ:ˆ:ØˆMà×8Ò8¸ÀÀEÈAÁIÑNÔNÐNr   )r   r   r'   r   r/   r   )r   r   r'   r   r/   r   )r   r   r'   r	   r/   r   )r   r   r'   r   r/   r   )r   r   r'   r   r/   r   )r   r	   r'   r   r/   r   )r   r   r'   r   r/   rK   )Ú__name__Ú
__module__Ú__qualname__rP   r   r   Úpropertyr"   Úclassmethodr.   Ústaticmethodr;   r?   rB   rD   rG   rJ   rM   rQ   Ú__classcell__)r   s   @r   r   r      s“  ø€ € € € € à€Iðð ð ð ð ðð ð ð ðð ñ „Xðð ðQð Qñ „[ðQð ð3ð 3ð 3ñ „\ð3ð ð(ð (ð (ñ „\ð(ð ð3ð 3ð 3ñ „\ð3ð ð+ð +ð +ñ „\ð+ð ð(ð (ð (ñ „\ð(ð ð3ð 3ð 3ñ „\ð3ð ðð ð ñ „\ðð ð/Oð /Oð /Oð /Oñ „[ð/Oð /Oð /Oð /Oð /Or   r   N)Ú
__future__r   Úsympy.core.exprr   Úsympy.core.functionr   Úsympy.core.numbersr   Úsympy.matrices.matrixbaser   Ú
ndim_arrayr	   Úarrayopr
   Ú"sympy.matrices.expressions.matexprr   Ú"sympy.matrices.expressions.specialr   r   r   r!   r   r   ú<module>rc      s  ðØ "Ð "Ð "Ð "Ð "Ð "à  Ð  Ð  Ð  Ð  Ð  Ø *Ð *Ð *Ð *Ð *Ð *Ø &Ð &Ð &Ð &Ð &Ð &Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø !Ð !Ð !Ð !Ð !Ð !Ø $Ð $Ð $Ð $Ð $Ð $Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø AÐ AÐ AÐ AÐ AÐ AðsOð sOð sOð sOð sO�jñ sOô sOð sOð sOð sOr   