
    shQ                        S r SSKrSSKJr  SSKJrJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJrJr  SSKJrJrJrJr  SSKJrJ r   SSK!J"r"  \S 5       r#\S	 5       r$\S
 5       r%\S 5       r&\S 5       r'\S 5       r(\S 5       r)\S 5       r*\S 5       r+\S 5       r,\S 5       r-\S 5       r.\S 5       r/\S 5       r0\S 5       r1\S 5       r2\S 5       r3\S 5       r4\S 5       r5\S 5       r6\S 5       r7\S 5       r8\S 5       r9\S 5       r:\S  5       r;\S! 5       r<\S" 5       r=\S# 5       r>\S$ 5       r?\S% 5       r@\S& 5       rA\S' 5       rB\S( 5       rC\"S):  a	  \S* 5       rDO\S+ 5       rD\S, 5       rE\S- 5       rF\S. 5       rG\S/ 5       rH\S0 5       rI\S1 5       rJ\S2 5       rK\S3 5       rL\S4 5       rM\S5 5       rN\S6 5       rO\S7 5       rPg)8zU
Algorithmic implementations for generating different types
of random distributions.
    N)register_jitable)	wi_double	ki_doubleziggurat_nor_r	fi_doublewi_floatki_floatziggurat_nor_inv_r_fziggurat_nor_r_ffi_float	we_double	ke_doubleziggurat_exp_r	fe_doublewe_floatke_floatziggurat_exp_r_ffe_float	INT64_MAXziggurat_nor_inv_r)next_double
next_floatnext_uint32next_uint64)float32int64)numpy_versionc                 .    [         R                  " U 5      $ N)nplog1pxs    u/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/np/random/old_distributions.pynp_log1pr%          88A;    c                 @    [         R                  " [        U 5      5      $ r   )r    r!   r   r"   s    r$   	np_log1pfr)       s    88GAJr'   c                 L    U[         R                  " S[        U 5      -  5      -  $ N       @)r    sqrtrandom_standard_exponential)bitgenmodes     r$   random_rayleighr1   %   s!    "''# ;F CCDDDr'   c                 .    [         R                  " U 5      $ r   )r    expm1r"   s    r$   np_expm1r4   *   r&   r'   c                 .    [        U 5      nUS-  nUS-  nUS-  nUS-	  S-  nU[        U   -  nUS-  (       a  U* nU[        U   :  a  U$ US:X  av   [        * [        R
                  " [        U 5      * 5      -  n[        R
                  " [        U 5      * 5      * nXw-   Xf-  :  a   US-	  S-  (       a
  [        U-   * $ [        U-   $ Mu  [        US-
     [        U   -
  [        U 5      -  [        U   -   [        R                  " SU-  U-  5      :  a  U$ GM  )N         l    r   g      )
r   r   r   r   r    r!   r   r   r   expr/   ridxsignrabsr#   xxyys           r$   random_standard_normalrA   /   s2   
$h	a3wQ,,9S>!3JA)C. H!8((288[5H4H+IIhhF 3344Gbg%c)!/"!455-22  C!G$y~5'(*3C.9FF4!8a<() 1 r'   c                     [        U 5      nUS-  nUS-	  S-  nUS-	  S-  n[        [        U5      [        U   -  5      nUS-  (       a  U* nU[        U   :  a  U$ US:X  a   [        [        * [        [        U 5      * 5      -  5      n[        [        [        U 5      * 5      * 5      n[        Xw-   5      [        Xf-  5      :  a2  US-	  S-  (       a  [        [        U-   5      * $ [        [        U-   5      $ M  [        US-
     [        U   -
  [        U 5      -  [        U   -   [        [        R                  " [        S5      * U-  U-  5      5      :  a  U$ GMX  )Nr6   r7   r8   	   i r         ?)r   r   r   r	   r
   r)   r   r   r   r    r9   r:   s           r$   random_standard_normal_frE   L   s\   
$hQ#~Q+%GDMHSM123JA8C= H1H22&
6(:':;< =iF);(;<<=BG$wrw'77c) '(82(= >>>&'7"'<==  37#hsm3z&7II#")"&&'#,1BQ1F*G"HI/ r'   c                 D    [        U 5      nUS-  nUS-  nUS-  nU[        U   -  nU[        U   :  a  U$ US:X  a  [        [	        [        U 5      * 5      -
  $ [        US-
     [        U   -
  [        U 5      -  [        U   -   [        R                  " U* 5      :  a  U$ M  )Nr6      r7   r8   r   )	r   r   r   r   r%   r   r   r    r9   r/   rir<   r#   s       r$   r.   r.   h   s    
 
q4i
q33Hax%+f2E1E(FFFS1W%	#6+f:MMC.!#%661":. r'   c           
          [        U 5      nUS-  nUS-  nUS-  n[        [        U5      [        U   -  5      nU[        U   :  a  U$ US:X  a.  [        [        [        [        [        U 5      * 5      5      -
  5      $ [        US-
     [        U   -
  [        U 5      -  [        U   -   [        [        R                  " [        U* 5      5      5      :  a  U$ M  )Nr6   r7   r8   r   )
r   r   r   r   r   r)   r   r   r    r9   rH   s       r$   random_standard_exponential_frK   z   s    
 
q4i
qGBK(3-/0#Hq/&y*V2D1D'EF G H HC!G$x}4
68JJ3- ")"&&!*=">? r'   c                 .    [        [        U 5      * 5      * $ r   )r%   r   r/   s    r$   random_standard_exponential_invrN      s    k&))***r'   c                 Z    [         R                  " [        S5      [        U 5      -
  5      * $ N      ?)r    logr   r   rM   s    r$   !random_standard_exponential_inv_frS      s"    FF73<*V"44555r'   c                    US:X  a  [        U 5      $ US:X  a  gUS:  aw   [        U 5      n[        U 5      nUSU-
  ::  a  [        USU-  5      nXC::  a  U$ O>[        R                  " SU-
  U-  5      * n[        SU-
  X-  -   SU-  5      nXCU-   ::  a  U$ Mv  US-
  nS[        R
                  " SU-  5      -  n  [        U 5      nSXt-  -   nUS:  a  OM  X3-  U-  n[        U 5      nUSSXD-  -  XD-  -  -
  :  a  Xc-  $ [        R                  " U5      SU-  U-  USU-
  [        R                  " U5      -   -  -   :  a  Xc-  $ M  )NrQ           r6   UUUUUU?rC   m{?rD   )r.   r   powr    rR   r-   rA   )r/   shapeUVXYbcs           r$   random_standard_gammar`      ss   *622
3,
#+F#A+F3AS5[ 2:&FH  VVQUeO,,eei/e<a%LH  GOQ*62!%KG	  	AF#AC&AE*ae444q	C!GaK!rAvq	/A*BBB r'   c           
          [        S5      n[        U5      nX:X  a  [        U 5      $ U[        S5      :X  a  [        S5      $ X:  a   [        U 5      n[        U 5      nX2U-
  ::  a(  [        [        U[        X!-  5      5      5      nXT::  a  U$ Oh[        [        R
                  " [        X#-
  U-  5      5      * 5      n[        [        X!-
  [        X-  5      -   [        X!-  5      5      5      nXTU-   ::  a  U$ M  X[        S5      -  -
  n[        U[        [        R                  " [        S5      U-  5      5      -  5      n  [        [        U 5      5      n[        X(U-  -   5      nU[        S5      :  a  OM6  [        XD-  U-  5      n[        U 5      nX2[        S5      XU-  -  XU-  -  -
  :  a  [        Xt-  5      $ [        R
                  " U5      [        S5      U-  U-  UX$-
  [        R
                  " U5      -   -  -   :  a  [        Xt-  5      $ M  )NrQ   rU         @g      "@rW   rD   )r   rK   r   rX   r    rR   r-   rE   )	r/   rY   f32_onerZ   r[   r\   r]   r^   r_   s	            r$   random_standard_gamma_frd      s   clGENE,V44
73<
s|
/6"A-f5Au_$C77?#;<=FH  RVVGW[E,A$BCCDC'%)2D D#GO46 7a%LH  gcl**GgbgggclQ.>&?@@A4V<=G!eO,$	  	"A6"Agfo715AAAqu~%q	GCL1,q01[266!9,4. . .qu~% r'   c                 &    U[        U 5      -  nX-   $ r   rA   r/   locscalescaled_normals       r$   random_normalrk      s    26::Mr'   c                 J    [        U[        U 5      -  5      n[        X-   5      $ r   )r   rE   rg   s       r$   random_normal_frm      s%    E$<V$DDEM3&''r'   c                     U[        U 5      -  $ r   )r.   )r/   ri   s     r$   random_exponentialro      s    .v666r'   c                 &    U[        U 5      -  nX-   $ r   r   )r/   lowerrangescaled_uniforms       r$   random_uniformru      s    [00N!!r'   c                     U[        X5      -  $ r   r`   r/   rY   ri   s      r$   random_gammary      s    (777r'   c                 0    [        U[        X5      -  5      $ r   )r   rd   rx   s      r$   random_gamma_fr{     s    526AABBr'   c           	      4   US::  a  US::  a   [        U 5      n[        U 5      n[        USU-  5      n[        USU-  5      nXV-   nUS::  a  US:  a  XV-   S:  a  XW-  $ [        R                  " U5      U-  n[        R                  " U5      U-  n	[	        X5      n
X-  nX-  n	[        R
                  " U[        R                  " [        R
                  " U5      [        R
                  " U	5      -   5      -
  5      $ M  [        X5      n[        X5      nXU-   -  $ )NrQ   rU   r   )r   rX   r    rR   minr9   r`   )r/   ar^   rZ   r[   r\   r]   XpYlogXlogYlogMGaGbs                r$   random_betar     s    CxAHF#AF#AAsQwAAsQwA%CczcCiEAI7N66!9q=D66!9q=Dt?DLDLD66$trvvd|0K)L"LMM! $ #6-"6-"W~r'   c                 $    S[        XS-  5      -  $ r+   rw   )r/   dfs     r$   random_chisquarer   "  s    &vCx888r'   c                 <    [        X5      U-  [        X5      U-  -  $ r   )r   )r/   dfnumdfdens      r$   random_fr   '  s&    f,u4f,u46 7r'   c                 0    [        U 5      [        U 5      -  $ r   rf   rM   s    r$   random_standard_cauchyr   -  s    !&),B6,JJJr'   c                 0    [        [        U 5      U-  5      $ r   )r4   r.   r/   r~   s     r$   random_paretor   2  s    /7!;<<r'   c                 @    US:X  a  g[        [        U 5      SU-  5      $ NrU   rQ   )rX   r.   r   s     r$   random_weibullr   7  s#    	S*62BF;;r'   c                 H    [        [        [        U 5      * 5      * SU-  5      $ rP   )rX   r4   r.   r   s     r$   random_powerr   >  s$    5f==>>QGGr'   c                     [        U 5      nUS::  a  [        U 5      nUS::  a  M  US:  a#  X[        R                  " SU-
  U-
  5      -  -
  nU$ US:  a  X[        R                  " X3-   5      -  -   nU$ )Nr   rD   r,   rU   r   r    rR   r/   rh   ri   rZ   s       r$   random_laplacer   C  sw    FA
q& q&	S"&&q1--- H c'"&&-''Hr'   c                     [        U 5      nUS::  a  [        U 5      nUS::  a  M  X[        R                  " USU-
  -  5      -  -   $ r   r   r   s       r$   random_logisticr   O  sE    FA
s( s(S1W....r'   c                 B    [         R                  " [        XU5      5      $ r   )r    r9   rk   )r/   meansigmas      r$   random_lognormalr   W  s    66-e455r'   c                     [        U 5      n[        XS-  5      n[        R                  " US-  5      U-  [        R                  " U5      -  $ )N   )rA   r`   r    r-   )r/   r   numdenoms       r$   random_standard_tr   \  s>    
 
(C!&q&1E7726?S 2775>11r'   c                     USU-  -  n[        U 5      nX-  U-  nXU[        R                  " SU-  U-  XD-  -   5      -
  -  -   n[        U 5      nXaX-   -  ::  a  U$ X-  U-  $ )Nr      )rA   r    r-   r   )r/   r   ri   mu_2lr]   r\   rZ   s          r$   random_waldr   c  sw    AIEv&A1ABGGAIMAE$9::;;AFA	TX{Qr'   c                 b    SnU=p4SU-
  n[        U 5      nXc:  a  XE-  nX4-  nUS-   nXc:  a  M  U$ )Nr6   rQ   rq   )r/   pr\   sumprodqrZ   s          r$   random_geometric_searchr   p  sK    	ANCaAFA7	E 7 Hr'   c                 r    [         R                  " [        U 5      * [         R                  " U* 5      -  5      $ r   )r    ceilr.   r!   r/   r   s     r$   random_geometric_inversionr   }  s)    77/77"((A2,FGGr'   c                 :    US:  a  [        X5      $ [        X5      $ )NrV   )r   r   r   s     r$   random_geometricr     s!    	''&v11)&44r'   )r   r6   c                    US-
  n[        SU5      n S[        U 5      -
  n[        U 5      n[        R                  " [        USU-  5      5      nU[        :  d  US:  a  MO  [        SSU-  -   U5      nXV-  US-
  -  US-
  -  Xs-  ::  a  U$ Mz  )NrQ   r,         )rX   r   r    floorr   )r/   r~   am1r^   rZ   r[   r\   Ts           r$   random_zipfr     s    #gSMk&))AF#AQs
+,AISC#'M3'AS!QW-6 r'   c                 J   US-
  n[        SU5      n[        [        U* 5      n [        U 5      nXT-  SU-
  -   n[        U 5      n[        R                  " [        USU-  5      5      nU[        :  d  US:  a  MV  [        SSU-  -   U5      n	Xx-  U	S-
  -  US-
  -  X-  ::  a  U$ M  )NrQ   r,   r6   r   )rX   r   r   r    r   )
r/   r~   r   r^   UminU01rZ   r[   r\   r   s
             r$   r   r     s    #gSM9sd#f%C
a#g&AF#AQs
+,AISC#'M3'AS!QW-6 r'   c                     X1-
  nX!-
  nXT-  nXT-  nX2-
  U-  n[        U 5      n	X::  a  U[        R                  " X-  5      -   $ U[        R                  " SU	-
  U-  5      -
  $ rP   )r   r    r-   )
r/   leftr0   rightbaseleftbaseratioleftprod	rightprodrZ   s
             r$   random_triangularr     sn     <D{HOEH%IFA	
bggal+++rwwa94555r'   c                    / SQnU S:X  d  U S:X  a  gU S:  a  [        SU -
  5      nOSnX-   nSU-  SU-  -  nSnUS	   n[        SS	5       H  nXd-  nXaS
U-
     -  nM     Xc-  SU-  -   US-
  [        R                  " U5      -  -   U-
  nU S:  a7  [        SUS-   5       H$  nU[        R                  " US-
  5      -
  nUS-
  nM&     U$ )N)
gUUUUUU?gllfgJ?g88Cg$+K?g<ٰj_gAAz?gSˆBg8?g5gGrQ   r,   rU   g      @   r   gdg?rC   r8   rD   r6   )intrs   r    rR   )	r#   r~   nx0x2lg2pigl0kgls	            r$   random_loggamr     s    	7A 
cqCx
c'AJ	
B
(sRx	 B"E
A$C1a[	Qx  
C%K	28rvvbz"9	9B	>B	Cq!a%AbffR#X&&BcB ! Ir'   c                 v    [         R                  " U* 5      nSnSn [        U 5      nXE-  nXB:  a  US-  nOU$ M  )Nr   rQ   r6   )r    r9   r   )r/   lamenlamr\   r   rZ   s         r$   random_poisson_multr     sG    FFC4LE	AD	LFAH r'   c                 X   [         R                  " U5      n[         R                  " U5      nSSU-  -   nSSU-  -   nSSUS-
  -  -   nSS	US
-
  -  -
  n [        U 5      S-
  n[        U 5      n	S[         R                  " U5      -
  n
[        S
U-  U
-  U-   U-  U-   S-   5      nU
S:  a  X::  a  U$ US:  d  U
S:  a  X:  a  Mp  [         R                  " U	5      [         R                  " U5      -   [         R                  " XZU
-  -  U-   5      -
  U* X-  -   [        US-   5      -
  ::  a  U$ M  )Ngn?g=
ףp=@gh|?5g[	m?g$~?gr?g333333@gr鷯?gB>٬@r   r6   rD   gQ?gQ?r   g9v?)r    r-   rR   r   fabsr   r   )r/   r   slamloglamr^   r~   invalphavrrZ   r[   usr   s               r$   random_poisson_ptrsr     s4    773<DVVC[FtA1A!c'**H	&AE"	"B#%2771:Qa1$s*T124ZagHUe!& VVAY))BFF1R=13D,EED1:a!e 446H r'   c                 H    US:  a  [        X5      $ US:X  a  g[        X5      $ )N
   r   )r   r   )r/   r   s     r$   random_poissonr     s)    r	"6//
("6//r'   c                 <    [        XSU-
  U-  5      n[        X5      $ )Nr6   )ry   r   )r/   r   r   r]   s       r$   random_negative_binomialr     s!    VQ!,A&$$r'   c                 2   [         R                  " U5      (       a  [         R                  $ US:X  a  [        X5      $ SU:  a7  [        XS-
  5      n[	        U 5      [         R
                  " U5      -   nX4U-  -   $ [        XS-  5      n[        XSU-  -   5      $ )Nr   r6   r,   r   )r    isnannanr   rA   r-   r   )r/   r   noncChi2r   is         r$   random_noncentral_chisquarer     s    	xx~~vvqy++2vQ/"6*RWWT]:!e|6#:.QU
33r'   c                 B    [        XU5      U-  nU[        X5      U-  -  $ r   )r   r   )r/   r   r   r   ts        r$   random_noncentral_fr   (  s)    #F485@A /%788r'   c           	      ^   [        U* 5      n [        U 5      nX1:  a  g[        U 5      n[        R                  " X$-  5      * nX5U-  ::  a]  [	        [        R
                  " S[        R                  " U5      [        R                  " U5      -  -   5      5      nUS:  d  US:X  a  M  U$ X5:  a  gg)Nr6   rU   r   )r%   r   r    r3   r   r   rR   )r/   r   r;   r[   rZ   r   results          r$   random_logseriesr   .  s    !A
FXXae_QJ288Aq	BFF1I(=$=>?FzQ#XFr'   c                 J	   [        USU-
  5      nSU-
  nX-  U-   n[        [        R                  " U5      5      n[        R                  " S[        R                  " X-  U-  5      -  SU-  -
  5      S-   nUS-   nX-
  n	X-   n
SSSU-   -  -   nXY-
  XYU-  -
  -  nUSUS-  -   -  nX-
  X-  -  nUSUS-  -   -  nUSSU-  -   -  nXU-  -   nUX-  -   nS	nS
=nn US	:X  aU  X-  U-  n[        U 5      U-  n[        U 5      nUU:  a  SnM1  [        [        R                  " XU-  -
  U-   5      5      nSnM\  US:X  aj  WU:  a  SnMl  U	UU-
  U-  -   nWU-  S-   [        R                  " UU-
  S-   5      U-  -
  nUS:  a  S	nM  [        [        R                  " U5      5      nSnM  US:X  ad  WU:  a  SnM  [        [        R                  " U	[        R                  " W5      U-  -   5      5      nUS
:  d  US:X  a  S	nGM&  UUU-
  -  U-  nSnGM6  US:X  aZ  [        [        R                  " U
[        R                  " W5      U-  -
  5      5      nUU:  d  US:X  a  S	nGM  UWU-
  -  U-  nSnGM  US:X  a  [        UU-
  5      nUS:  a  UWS-  S-
  :  a  SnGM  X4-  nUUS-   -  nSnUU:  a%  [        US-   US-   5       H  nUUU-  U-
  -  nM     O*UU:  a$  [        US-   US-   5       H  nUUU-  U-
  -  nM     WU:  a  S	nGM/  SnGM4  US:X  Ga|  UW-  UUS-  S-   -  S-   U-  S-   -  nU* U-  SU-  -  n[        R                  " W5      nUUU-
  :  a  SnGM  UUU-   :  a  S	nGM  US-   nUS-   n US-   U-
  n!UU-
  S-   n"UU-  n#U U -  n$U!U!-  n%U"U"-  n&UU[        R                  " U U-  5      -  X-
  S-   [        R                  " U!U"-  5      -  -   UU-
  [        R                  " U"U-  UU-  -  5      -  -   SSSSSU$-  -
  U$-  -
  U$-  -
  U$-  -
  U -  S-  -   SSSSSU%-  -
  U%-  -
  U%-  -
  U%-  -
  U!-  S-  -   SSSSSU#-  -
  U#-  -
  U#-  -
  U#-  -
  U-  S-  -   SSSSSU&-  -
  U&-  -
  U&-  -
  U&-  -
  U"-  S-  -   :  a  S	nGM  SnGM  US:X  a  US:  a  UU-
  nU$ GM  )NrQ   g(\@gffffff@rD   gx&?g     4@g.@r,   r   r   r6      <      2   (   rU   4   rb   g      ?gUUUUUU?r   g     @g     |@g     `@g     X@g     a@g    MAg     1@)
r}   r   r    r   r-   r   r   rR   absrs   )'r/   r   r   r;   r   fmmp1xmxlxrr_   r~   lamllamrp2p3p4caseyr   nrquvr#   sFr   rhor   Ax1f1zwr   f2z2w2s'                                          r$   random_binomial_btper  D  s   AsQwAaA	
BBHHRLA	%"''!%!),,sQw6	7#	=B	
SB	B	Bq!!A	Rq&[!Aa#gD	RVAa#gD	sS1W}	B	$hB	ahBDIA
2:%!)CF#b(AF#ABBHHRq&[1_-.ADRZBa"f\!AAbgga!eck2R77ACBHHQK ADRZBBHHR"&&)d"2234AQAHQVt#ADRZBHHR"&&)d"2234AQAHQVt#ADRZAE
ARaC3;?3AQUAAAq1ua!e,AQUQYA -a%q1ua!e,AQUQYA -ADRZ9S5),??C Q!c'"Aq	AQWQWQBQBA	AA	AbBbBQBQBR"&&b/)QUS[BFF1q5M,II!ervva!erAv&6778dRi2/E(E'K K   !#*++ dRi2/E(E'K K   ")*	* dRi2/E(E'K K   !#*++ dRi2/E(E'K K   "()	) 	* DRZCEHE r'   c           	      \   SU-
  n[         R                  " U[         R                  " U5      -  5      nX-  n[        XS[         R                  " XS-  S-   5      -  -   5      nSnUn[        U 5      n	X:  a7  US-   nXv:  a  SnUn[        U 5      n	OX-  n	X-
  S-   U-  U-  Xs-  -  nX:  a  M7  U$ )NrQ   g      $@r6   r   )r    r9   rR   r}   r-   r   )
r/   r   r   r   qn_npboundr\   pxrZ   s
             r$   random_binomial_inversionr    s    aA	BFF1I	B
%C! 4445E	A	BFA6EIABF#AGA519/B&151B 6 Hr'   c                     US:X  d  US:X  a  gUS::  a   X!-  S::  a  [        XU5      $ [        XU5      $ SU-
  nX1-  S::  a  U[        XU5      -
  $ U[        XU5      -
  $ )Nr   rU   rD   g      >@rQ   )r  r  )r/   r   r   r   s       r$   random_binomialr    st    	
aQ#X	SETM,V::'155!GETM0A>>>+Fq999r'   )Q__doc__numpyr    numba.core.extendingr   numba.np.random._constantsr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   numba.np.random.generator_corer   r   r   r   numbar   r   numba.np.numpy_supportr   r%   r)   r1   r4   rA   rE   r.   rK   rN   rS   r`   rd   rk   rm   ro   ru   ry   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$   <module>r%     s  
  1	G 	G 	G 	G 	G 	GF F   0
       E E    8  6  "  $ + + 6 6 " "J && &&R  
 ( (
 7 7 " "
 8 8 C C  2 9 9 7 7
 K K = = < < H H   / / 6 6 2 2 	 	 	 	 H H 5 5 6   " 6 6  B 
 
  6 0 0 % %
 4 4  9 9
  * v vr  , : :r'   