ó
    Ñ]jb  ã                  óZ   • S SK Jr  S SKJr  S SKrS SKJr        SS jr " S S5      r	g)	é    )Úannotations)ÚTYPE_CHECKINGN)Úimport_optional_dependencyc                ó”   ^• [         (       a  SSKmO[        S5      mTR                  XUS9                SU4S jj5       nU$ )a3  
Generate a numba jitted groupby ewma function specified by values
from engine_kwargs.

Parameters
----------
nopython : bool
    nopython to be passed into numba.jit
nogil : bool
    nogil to be passed into numba.jit
parallel : bool
    parallel to be passed into numba.jit

Returns
-------
Numba function
r   NÚnumba)ÚnopythonÚnogilÚparallelc           	     ó¶  >• [         R                  " U R                  5      nU S   R                  5       n	[         R                  " U	5      ) R                  [         R                  5      n
[         R                  " X¢:¬  U	[         R                  5      US'   [        S[        U 5      5       GH*  nX   n[         R                  " U5      ) nX­R                  [         R                  5      -  n
TR                  [        U5      5       H¢  n[         R                  " Xž   5      (       dq  XÞ   (       d  U(       d_  X^==   X1US-
     -  -  ss'   XÞ   (       a@  Xž   XÎ   :w  a  X^   Xž   -  XLU   -  -   X^   U-   -  Xž'   U(       a  X^==   U-  ss'   M‡  SX^'   M�  M�  M‘  XÞ   (       d  Mœ  XÎ   Xž'   M¤     [         R                  " X¢:¬  U	[         R                  5      X‹'   GM-     X…4$ )zÀ
Compute online exponentially weighted mean per column over 2D values.

Takes the first observation as is, then computes the subsequent
exponentially weighted mean accounting minimum periods.
r   é   ç      ð?)ÚnpÚemptyÚshapeÚcopyÚisnanÚastypeÚint64ÚwhereÚnanÚrangeÚlenÚprange)ÚvaluesÚdeltasÚminimum_periodsÚold_wt_factorÚnew_wtÚold_wtÚadjustÚ	ignore_naÚresultÚweighted_avgÚnobsÚiÚcurÚis_observationsÚjr   s                  €ÚV/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pandas/core/window/online.pyÚonline_ewmaÚ4generate_online_numba_ewma_func.<locals>.online_ewma%   s‰  ø€ ô" —’˜&Ÿ,™,Ó'ˆØ˜a‘y—~‘~Ó'ˆÜ—’˜,Ó'Ð'×/Ñ/´·±Ó9ˆÜ—H’H˜TÑ4°lÄBÇFÁFÓKˆˆq‰	ä�qœ#˜f›+×&ˆAØ‘)ˆCÜ!Ÿxšx¨›}˜nˆOØ×*Ñ*¬2¯8©8Ó4Ñ4ˆDØ—\‘\¤# c£(Ö+�Ü—x’x ¡×0Ñ0Ø&×)¶ð ›	 ]¸QÀ¹U±mÑ%CÑC›	Ø*×-à+™°#±&Ó8à%+¡Y°±Ñ%@ÀVÐRSÉfÁ_Ñ$UØ%+¡Y°Ñ%7ñ39 ¡ö  &Ø &£	¨VÑ 3¥	à,/ £	ñ .ñ	 2;ð %×'Ñ'Ø&)¡f�L“Oñ# ,ô& Ÿš Ñ!8¸,ÌÏÉÓOˆFŒIñ/ 'ð2 ˆ~Ðó    )r   ú
np.ndarrayr   r-   r   Úintr   Úfloatr   r/   r   r-   r    Úboolr!   r0   )r   r   r   Újit)r   r	   r
   r*   r   s       @r)   Úgenerate_online_numba_ewma_funcr2   
   sŒ   ø€ ÷, ‚}Üä*¨7Ó3ˆà
‡Y�Y˜¸€YÐAð.Øð.àð.ð ð.ð ð	.ð
 ð.ð ð.ð ð.ð ö.ó Bð.ð` Ðr,   c                  ó.   • \ rS rSrSS jrS rSS jrSrg)ÚEWMMeanStateéY   c                óÊ   • SSU-   -  nX@l         X l        X0l        U(       a  SOUU l        SU-
  U l        [
        R                  " U R                   S   5      U l        S U l        g )Nr   éÿÿÿÿ)	r   r    r!   r   r   r   Úonesr   Úlast_ewm)ÚselfÚcomr    r!   r   Úalphas         r)   Ú__init__ÚEWMMeanState.__init__Z   sU   € Ø�s˜S‘yÑ!ˆØŒ
ØŒØ"ŒÞ#‘c¨ˆŒØ  5™[ˆÔÜ—g’g˜dŸj™j¨™nÓ-ˆŒØˆ�r,   c           
     ó¬   • U" UUUU R                   U R                  U R                  U R                  U R                  5      u  pVX`l        US   U l        U$ ©Nr7   )r   r   r   r    r!   r9   )r:   r#   r   Úmin_periodsÚewm_funcr"   r   s          r)   Úrun_ewmÚEWMMeanState.run_ewmd   sS   € Ù!ØØØØ×ÑØ�K‰KØ�K‰KØ�K‰KØ�N‰Nó	
‰ˆð ŒØ˜r™
ˆŒØˆr,   c                ób   • [         R                  " U R                  S   5      U l        S U l        g r@   )r   r8   r   r   r9   )r:   s    r)   ÚresetÚEWMMeanState.resets   s!   € Ü—g’g˜dŸj™j¨™nÓ-ˆŒØˆ�r,   )r    r!   r9   r   r   r   r   N)ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r=   rC   rF   Ú__static_attributes__© r,   r)   r4   r4   Y   s   † ôò÷r,   r4   )r   r0   r	   r0   r
   r0   )
Ú
__future__r   Útypingr   Únumpyr   Úpandas.compat._optionalr   r2   r4   rO   r,   r)   Ú<module>rT      s?   ðÝ "å  ã å >ðLØðLàðLð ôL÷^ò r,   