Ë
   ä‹­}§�â�ã                   óÜ   — d dl Zd dlmc mZ d dlZd dlZd dlm	Z	 de
dedefd„Zddd	œde
d
edede
def
d„Z G d„ dej                  «      Z G d„ de«      Z G d„ de«      Z G d„ d«      Zy)é    N)ÚclampÚdfÚtÚreturnc                 óz  — t        | t        «      }|�sddt        j                  «       v st	        j
                  t         «      rt	        j                  t         «      nddt        j                  «       v st	        j
                  | «      rt	        j                  | «      nddt        j                  «       v st	        j
                  t        «      rt	        j                  t        «      ndt	        j                  |«      dœz  }t        t	        j                  |«      «      ‚d}| dk  rt        d| › �«      ‚|d	k(  ry
t        |«      }d||z  | z  z   }| dz  dk(  rƒ|t        j                  | «      z  }t        j                  |«      }| dkD  r:d}d}	d}
|
| dz
  k  r!|	|
dz
  ||
z  z  z  }	||	z  }|
dz  }
|
| dz
  k  rŒ!|||z  |z  z  }|dt        j                  z  z  }nMd}d}	d}
|
| dz
  k  r!|	|
dz
  ||
z  z  z  }	||	z  }|
dz  }
|
| dz
  k  rŒ!||z  t        j                  || z  «      z  }|dk  rd
d
|z  z
  S d
d
|z  z   S )zxStudent's t CDF for integer df >= 1, evaluated at t.

    Closed-form finite sum from Abramowitz & Stegun 26.7.7-8.
    z5assert %(py4)s
{%(py4)s = %(py0)s(%(py1)s, %(py2)s)
}Ú
isinstancer   Úint)Úpy0Úpy1Úpy2Úpy4Né   z$stdtr requires integer df >= 1, got ç        ç      à?ç      ð?é   é   g       @r   )r   r	   Ú@py_builtinsÚlocalsÚ
@pytest_arÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚ
ValueErrorÚabsÚmathÚsqrtÚatanÚpi)r   r   Ú@py_assert3Ú@py_format5Úabs_tÚzÚuÚpÚfÚtzÚjs              úc/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/hypothesis/internal/statistics.pyÚstdtrr+      s  € ô
 �bœ#ÓÐÒ××××ÕŒ:××ÓŒ:×××××Ò�b××Ó�b×××××Òœ#××Óœ#××ÔÐ×××××ÐØ	ˆA‚vÜÐ?À¸tÐDÓEÐEØˆC‚xØÜ�‹F€EØˆe�e‰m˜bÑ Ñ €AØ	ˆA�v�‚{à”D—I‘I˜b“MÑ!ˆÜ�I‰I�a‹LˆØ�Š6ØˆAØˆBØˆAØ�r˜A‘v’+Ø�q˜1‘u  Q¡Ñ'Ñ'�Ø�R‘�Ø�Q‘�ð �r˜A‘v“+ð ��Q‘˜‘‰NˆAØ	ˆS”4—7‘7‰]Ñ‰ð ˆØˆØˆØ�2˜‘6ŠkØ�1�q‘5˜Q ™UÑ#Ñ#ˆBØ�‰GˆAØ�‰FˆAð �2˜‘6‹kð �‰IœŸ	™	 ! b¡&Ó)Ñ)ˆØ šEˆ3��q‘‰=Ð4 s¨S°1©W¡}Ð4ó    g»½×Ùß|Û=é2   )ÚepsÚmax_iterr&   r.   r/   c                óÊ  — | dk  rt        d| › �«      ‚|dk(  ryd|cxk  rdk  sn t        d|› �«      ‚| dk(  r¦|dkD  rSt        j                  t        j                  d|z
  z  «      t        j                  t        j                  d|z
  z  «      z  S t        j                  t        j                  |z  «       t        j                  t        j                  |z  «      z  S | dk(  r'd|z  dz
  t        j
                  d|z  d|z
  z  «      z  S |dkD  rdnd}|dkD  r|nd|z
  }d	\  }}t        | |«      |k  r|dz  }t        | |«      |k  rŒt        j                  d| dz   z  «      dt        j                  | t        j                  z  «      z  z
  t        j                  d| z  «      z
  }d||z   z  }	t        |«      D ]¢  }
t        | |	«      }||k  r|	}n|	}|d| dz   z  t        j                  |	|	z  | z  «      z  z
  }t        j                  |«      }|dk(  r	d||z   z  }	n#|	||z
  |z  z
  }||cxk  r|k  rn n|nd||z   z  }	||z
  |dt        |	«      z   z  k  sŒž ||	z  S  ||	z  S )
uJ  Inverse Student's t CDF (quantile) for integer df >= 1.

    df âˆˆ {1, 2}: closed-form analytic quantile (Shaw 2006, eq 35-36).

    df >= 3: bracketed Newton iteration on stdtr â€” doubling search from t=1
    to bracket the target, then Newton steps with bisection fallback. Always
    converges; ~5-10 iterations typical.
    r   z&stdtrit requires integer df >= 1, got r   r   r   z stdtrit requires 0 < p < 1, got r   g      ð¿)r   r   )r   r   Úcosr    Úsinr   r+   ÚlgammaÚlogÚrangeÚlog1pÚexpr   )r   r&   r.   r/   ÚsignÚqÚloÚhiÚlog_normr   Ú_ÚFÚlog_fr'   Út_newtons                  r*   ÚstdtritrA   ?   sk  € ð 
ˆA‚vÜÐAÀ"ÀÐFÓGÐGØˆC‚xØØ�Œ=�SŒ=ÜÐ;¸A¸3Ð?Ó@Ð@Ø	ˆQ‚wð ˆsŠ7Ü—8‘8œDŸG™G q¨1¡uÑ-Ó.´·±¼$¿'¹'ÀQÈÁUÑ:KÓ1LÑLÐLÜ—‘œŸ™ 1™Ó%Ð%¬¯©´·±¸1±Ó(=Ñ=Ð=Ø	ˆQ‚wØ�A‘˜‘	œTŸY™Y q¨1¡u°°A±¡Ó7Ñ7Ð7à�c’'‰3˜t€DØ�ŠW‰˜!˜a™%€Aà�F€BˆÜ
��B‹-˜!Ò
Ø
ˆa‰ˆô ��B‹-˜!Ó
ô 	�‰�C˜2 ™6‘NÓ#Ø
”—‘˜œdŸg™g™Ó&Ñ
&ñ	'ä
�+‰+�c˜B‘hÓ
ñ	 ð ð
 	ˆr�B‰w‰€AÜ�8‹_ò ˆÜ�"�a‹LˆØˆqŠ5Ø‰BàˆBØ˜3 " q¡&™>¬D¯J©J°q¸1±u¸r±zÓ,BÑBÑBˆÜ�H‰H�U‹OˆØ�Š8Ø�r˜B‘w‘‰Aà˜A ™E Q™;‘ˆHØ (Ô0¨bÕ0‘°c¸RÀ"¹W±oˆAØ�‰7�S˜A¤ A£™JÑ'Ó'ØØ�!‰8€Oðð �!‰8€Or,   c                   ó–   — e Zd Zej                  dedefd„«       Zej                  dedefd„«       Zej                  dedefd„«       Zy)Ú_DistributionÚxr   c                 ó   — t         ‚©N©ÚNotImplementedError©ÚselfrD   s     r*   Úcdfz_Distribution.cdf�   ó   € ä!Ð!r,   r%   c                 ó   — t         ‚rF   rG   ©rJ   r%   s     r*   Úinverse_cdfz_Distribution.inverse_cdf…   rL   r,   c                 ó   — t         ‚rF   rG   rI   s     r*   Úpdfz_Distribution.pdf‰   rL   r,   N)	Ú__name__Ú
__module__Ú__qualname__ÚabcÚabstractmethodÚfloatrK   rO   rQ   © r,   r*   rC   rC   €   sx   „ Ø×Ñð"�Uð "˜uò "ó ð"ð 	×Ñð"˜Uð " uò "ó ð"ð 	×Ñð"�Uð "˜uò "ó ñ"r,   rC   c                   óP   — e Zd ZdZdeddfd„Zdedefd„Zdedefd	„Zdedefd
„Zy)ÚUniformDistributionz2Uniform distribution on [-half_width, half_width].Ú
half_widthr   Nc                ó   — || _         y rF   ©r[   )rJ   r[   s     r*   Ú__init__zUniformDistribution.__init__‘   s	   € Ø$ˆ�r,   rD   c                 ó‚   — || j                    k  ry|| j                   kD  ry|| j                   z   d| j                   z  z  S )Nr   r   r   r]   rI   s     r*   rK   zUniformDistribution.cdf”   s@   € Ø�—‘ÐÒØØˆt�‰ÒØØ�D—O‘OÑ#¨¨D¯O©OÑ(;Ñ<Ð<r,   r%   c                 óB   — | j                    d| j                   z  |z  z   S )Nr   r]   rN   s     r*   rO   zUniformDistribution.inverse_cdf›   s"   € Ø—‘Ð ! d§o¡oÑ"5¸Ñ"9Ñ9Ð9r,   c                 ón   — | j                    |cxk  r| j                   k  rn ydd| j                   z  z  S y)Nr   r   r   r]   rI   s     r*   rQ   zUniformDistribution.pdfž   s6   € Ø�O‰OÐ˜qÔ3 D§O¡OÔ3àð ˜˜DŸO™OÑ+Ñ,Ð,Ør,   )	rR   rS   rT   Ú__doc__rW   r^   rK   rO   rQ   rX   r,   r*   rZ   rZ   Ž   sQ   „ Ù<ð% eð %°ó %ð=�Uð =˜uó =ð:˜Uð : uó :ð�Uð ˜uô r,   rZ   c                   óx   — e Zd ZdZ ej
                  d«      Zdededdfd„Z	dedefd	„Z
d
edefd„Zdedefd„Zy)ÚLogStudentTDistributiona�  Student's t distribution, in the transformed domain of log_2(x).

    Y = sign(x) * log_2(1 + |x|) ~ scale_bits * t(df).

    Note that we only support integer df. This is to reduce surface area in the vendored
    mathematical functions, which are simpler when df is an integer. There is no
    fundamental difficulty to supporting float df, other than the necessary due diligence
    for the vendored code.
    r   Ú
scale_bitsr   r   Nc                óà   — || _         || _        t        j                  |dz   dz  «      t        j                  |t        j
                  z  «      t        j                  |dz  «      z  z  | _        y ©Nr   r   )re   r   r   Úgammar   r    Ú_t_coef)rJ   re   r   s      r*   r^   z LogStudentTDistribution.__init__±   sS   € Ø$ˆŒØˆŒÜ—z‘z 2¨¡6¨Q¡,Ó/Ü�I‰I�bœ4Ÿ7™7‘lÓ#¤d§j¡j°°a±Ó&8Ñ8ñ
ˆ�r,   rD   c                 óÄ   — t        j                  t        j                  dt        |«      z   «      |«      | j                  z  }t        t        | j                  |«      «      S )Nr   )r   ÚcopysignÚlog2r   re   rW   r+   r   )rJ   rD   Úys      r*   rK   zLogStudentTDistribution.cdf¸   sB   € Ü�M‰Mœ$Ÿ)™) A¬¨A«¡JÓ/°Ó3°d·o±oÑEˆÜ”U˜4Ÿ7™7 AÓ&Ó'Ð'r,   r%   c                 óò   — | j                   t        t        | j                  |«      «      z  }t	        d|d«      }t        j                  t        j                  t        |«      | j                  z  «      |«      S )Niüÿÿiÿ  )
re   rW   rA   r   r   r   rk   Úexpm1r   ÚLN2)rJ   r%   rm   s      r*   rO   z#LogStudentTDistribution.inverse_cdf¼   sW   € Ø�O‰Oœe¤G¨D¯G©G°QÓ$7Ó8Ñ8ˆô
 �%˜˜DÓ!ˆÜ�}‰}œTŸZ™Z¬¨A«°·±Ñ(9Ó:¸AÓ>Ð>r,   c                 óH  — t        j                  t        j                  dt        |«      z   «      |«      | j                  z  }| j
                  d||z  | j                  z  z   | j                  dz    dz  z  z  }|| j                  dt        |«      z   z  | j                  z  z  S rg   )r   rk   rl   r   re   ri   r   rp   )rJ   rD   rm   Úf_ts       r*   rQ   zLogStudentTDistribution.pdfÅ   s„   € Ü�M‰Mœ$Ÿ)™) A¬¨A«¡JÓ/°Ó3°d·o±oÑEˆØ�l‰l˜a ! a¡%¨$¯'©'¡/Ñ1¸¿¹À1¹°~ÈÑ7IÑJÑJˆØ�d—o‘o¨¬S°«V©Ñ4°t·x±xÑ?Ñ@Ð@r,   )rR   rS   rT   rb   r   r4   rp   rW   r	   r^   rK   rO   rQ   rX   r,   r*   rd   rd   ¤   sn   „ ñð ˆ$�(‰(�1‹+€Cð
 eð 
°ð 
¸ó 
ð(�Uð (˜uó (ð?˜Uð ? uó ?ðA�Uð A˜uô Ar,   rd   c                   óH   — e Zd ZdZdedededdfd„Zdedefd	„Zd
edefd„Zy)ÚPiecewiseDistributionu  Two-region splice: `inner` on (-switchover, switchover),
    `outer` on |x| >= switchover.

    Each region is normalized so that the resulting density is continuous at
    Â±switchover and integrates to 1. Both inner and outer must be symmetric around 0.
    ÚinnerÚouterÚ
switchoverr   Nc                óÈ  — || _         || _        || _        |j                  | «      | _        |j                  |«      | _        |j                  | «      | _        |j                  |«      | _        d| j                  | j                  z
  z
  }| j
                  | j                  z
  }|j                  |«      }|j                  |«      }d}||k7  }	|	s³t        j                  d|	fd||f«      dt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      dœz  }
t        j                  d|› d�«      d	z   d
|
iz  }t!        t        j"                  |«      «      ‚d x}	}d||z  |z  |z   z  | _        | j$                  |z  |z  | _        | j&                  |z  | _        | j$                  | j                  z  | _        y )Nr   r   )ú!=)z%(py0)s != %(py3)sÚ	inner_pdf)r
   Úpy3zinner.pdf(switchover=zF) == 0; cannot density-match. inner must have support at the boundary.z
>assert %(py5)sÚpy5)ru   rv   rw   rK   Ú_inner_g_negÚ_inner_g_posÚ_outer_g_negÚ_outer_g_posrQ   r   Ú_call_reprcomparer   r   r   r   Ú_format_assertmsgr   r   Ú_alphaÚ_betaÚ_inner_massÚ
_left_mass)rJ   ru   rv   rw   Úouter_outer_massÚinner_inner_massrz   Ú	outer_pdfÚ@py_assert2Ú@py_assert1Ú@py_format4Ú@py_format6s               r*   r^   zPiecewiseDistribution.__init__Ó   s¼  € ð ˆŒ
ØˆŒ
Ø$ˆŒØ!ŸI™I z kÓ2ˆÔØ!ŸI™I jÓ1ˆÔØ!ŸI™I z kÓ2ˆÔØ!ŸI™I jÓ1ˆÔØ × 1Ñ 1°D×4EÑ4EÑ EÑFÐØ×,Ñ,¨t×/@Ñ/@Ñ@Ðð —I‘I˜jÓ)ˆ	Ø—I‘I˜jÓ)ˆ	Øð 	
ˆy˜A‰~÷ 	
ïé ó	
ˆy˜A÷ 	
ò 	
÷ 
�6÷	
ò 	
ïé ð ÷ 	
ñ 	
÷ 
�	ð ÷ 	
ò 	
÷ 
�	ð ÷ 	
õ 	
ïé ð $ J <ð 01ð 1÷	
÷ 	
ö 	
ïé ÷	
õ 	
ð ˜9Ð'7Ñ7¸)ÑCÐFVÑVÑWˆŒØ—[‘[ 9Ñ,¨yÑ8ˆŒ
ØŸ:™:Ð(8Ñ8ˆÔØŸ+™+¨×(9Ñ(9Ñ9ˆ�r,   rD   c                 ó²  — || j                    k  r(| j                  | j                  j                  |«      z  S || j                   k  rB| j                  | j
                  | j                  j                  |«      | j                  z
  z  z   S | j                  | j                  z   | j                  | j                  j                  |«      | j                  z
  z  z   S rF   )
rw   rƒ   rv   rK   r†   r„   ru   r}   r…   r€   rI   s     r*   rK   zPiecewiseDistribution.cdfï   s¶   € Ø�—‘Ð Ò Ø—;‘; §¡§¡°Ó!2Ñ2Ð2Øˆt�‰ÒØ—?‘? T§Z¡ZØ—
‘
—‘˜qÓ! D×$5Ñ$5Ñ5ñ&ñ ð ð �O‰OØ×Ññà�k‰k˜TŸZ™ZŸ^™^¨AÓ.°×1BÑ1BÑBÑCñDð	
r,   r%   c                 óÎ  — || j                   k  r(| j                  j                  || j                  z  «      S || j                   | j                  z   k  rD| j
                  || j                   z
  | j                  z  z   }| j                  j                  |«      S | j                  j                  || j                   z
  | j                  z
  | j                  z  | j                  z   «      S rF   )	r†   rv   rO   rƒ   r…   r}   r„   ru   r€   )rJ   r%   Útargets      r*   rO   z!PiecewiseDistribution.inverse_cdfü   s»   € Ø�—‘ÒØ—:‘:×)Ñ)¨!¨d¯k©k©/Ó:Ð:Øˆt�‰ ×!1Ñ!1Ñ1Ò1Ø×&Ñ&¨!¨d¯o©oÑ*=ÀÇÁÑ)KÑKˆFØ—:‘:×)Ñ)¨&Ó1Ð1Ø�z‰z×%Ñ%Ø�—‘Ñ  4×#3Ñ#3Ñ3°t·{±{ÑBÀT×EVÑEVÑVó
ð 	
r,   )	rR   rS   rT   rb   rC   rW   r^   rK   rO   rX   r,   r*   rt   rt   Ë   sR   „ ñð:Ø%ð:Ø.;ð:ØINð:à	ó:ð8
�Uð 
˜uó 
ð
˜Uð 
 uô 
r,   rt   )Úbuiltinsr   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter   rU   r   Úhypothesis.internal.floatsr   r	   rW   r+   rA   ÚABCrC   rZ   rd   rt   rX   r,   r*   ú<module>r—      s™   ð÷ „ ƒ
Û å ,ð$5ˆcð $5�eð $5 ó $5ðP (-¸bò6Øð6Øð6Ø$ð6Ø8;ð6à
ó6ôB"�C—G‘Gô "ô˜-ô ô,$A˜mô $A÷N9
ò 9
r,   