
    shmO                     h   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 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       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, 5       rD\S- 5       rE\S. 5       rF\S/ 5       rG\S0 5       rH\S1 5       rI\S2 5       rJ\S3 5       rKg)4zU
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_uint64c                 .    [         R                  " U 5      $ N)nplog1pxs    u/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/np/random/new_distributions.pynp_log1pr"          88A;    c                 V    [         R                  " [         R                  " U 5      5      $ r   )r   r   float32r   s    r!   	np_log1pfr'      s    88BJJqM""r$   c                 L    U[         R                  " S[        U 5      -  5      -  $ N       @)r   sqrtrandom_standard_exponential)bitgenmodes     r!   random_rayleighr/   #   s!    "''# ;F CCDDDr$   c                 .    [         R                  " U 5      $ r   )r   expm1r   s    r!   np_expm1r2   (   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_normalr?   -   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[        R                  " [        R                  " U5      [        U   -  5      nUS-  (       a  U* nU[        U   :  a  U$ US:X  a   [        R                  " [
        * [        [        U 5      * 5      -  5      n[        R                  " [        [        U 5      * 5      * 5      n[        R                  " Xw-   5      [        R                  " Xf-  5      :  aH  US-	  S-  (       a  [        R                  " [        U-   5      * $ [        R                  " [        U-   5      $ M  [        US-
     [        U   -
  [        U 5      -  [        U   -   [        R                  " [        R                  " [        R                  " S5      * U-  U-  5      5      :  a  U$ GM  )Nr4   r5   r6   	   i r         ?)r   r   r&   r   r	   r
   r'   r   r   r   r7   r8   s           r!   random_standard_normal_frC   J   s   
$hQ#~Q+%JJrzz$'(3-783JA8C= H1HZZ!5 5&
6(:':;!< =ZZJv,>+>!? ?@JJrw'"**RW*==c) "

+;b+@ AAA!zz*:R*?@@  37#hsm3z&7II#"$**RVVRZZ_4Dq4H14L-M"NO/ 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  )Nr4      r5   r6   r   )	r   r   r   r   r"   r   r   r   r7   r-   rir:   r    s       r!   r,   r,   f   s    
 
q4i
q33Hax%+f2E1E(FFFS1W%	#6+f:MMC.!#%661":. r$   c           
      6    [        U 5      nUS-  nUS-  nUS-  n[        R                  " [        R                  " U5      [        U   -  5      nU[        U   :  a  U$ US:X  aD  [        R                  " [
        [        R                  " [        [        U 5      * 5      5      -
  5      $ [        US-
     [        U   -
  [        U 5      -  [        U   -   [        R                  " [        R                  " [        R                  " U* 5      5      5      :  a  U$ GM  )Nr4   r5   r6   r   )
r   r   r&   r   r   r   r'   r   r   r7   rF   s       r!   random_standard_exponential_frI   x   s    
 
q4i
qJJrzz"~56#Hqzz"2!zz)Z5G4G*HI#J K KC!G$x}4
68JJ3- "$**RVVBJJrN-C"DE r$   c                 .    [        [        U 5      * 5      * $ r   )r"   r   r-   s    r!   random_standard_exponential_invrL      s    k&))***r$   c                 p    [         R                  " [         R                  " S5      [        U 5      -
  5      * $ N      ?)r   logr&   r   rK   s    r!   !random_standard_exponential_inv_frQ      s&    FF2::c?Z%77888r$   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  )NrO           r4   UUUUUU?rA   m{?rB   )r,   r   powr   rP   r+   r?   )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           
         [         R                  " S5      n[         R                  " U5      nX:X  a  [        U 5      $ U[         R                  " S5      :X  a  [         R                  " S5      $ X:  a   [        U 5      n[        U 5      nX2U-
  ::  a>  [         R                  " [	        U[         R                  " X!-  5      5      5      nXT::  a  U$ O[         R                  " [         R
                  " [         R                  " X#-
  U-  5      5      * 5      n[         R                  " [	        X!-
  [         R                  " X-  5      -   [         R                  " X!-  5      5      5      nXTU-   ::  a  U$ M  X[         R                  " S5      -  -
  n[         R                  " U[         R                  " [         R                  " [         R                  " S5      U-  5      5      -  5      n  [         R                  " [        U 5      5      n[         R                  " X(U-  -   5      nU[         R                  " S5      :  a  OMW  [         R                  " XD-  U-  5      n[        U 5      nX2[         R                  " S5      XU-  -  XU-  -  -
  :  a  [         R                  " Xt-  5      $ [         R
                  " U5      [         R                  " S5      U-  U-  UX$-
  [         R
                  " U5      -   -  -   :  a  [         R                  " Xt-  5      $ GM*  )NrO   rS         @g      "@rU   rB   )r   r&   rI   r   rV   rP   r+   rC   )	r-   rW   f32_onerX   rY   rZ   r[   r\   r]   s	            r!   random_standard_gamma_frb      sQ   jjoGJJuE,V44
2::c?
"zz#
/6"A-f5Au_$JJs1bjj&ABCFH  JJrzz7;%2G'H IIJJJs7?RZZ	5J#JJJw7 9 :a%LH  bjjo--JJwBGGBJJsOa4G,H!IIJJJ7?@JJwQ/

3'	  

1519%A6"Abjj0AE:aeDDDzz!%((q	BJJsOa/!3a[266!9,7. . .zz!%(( r$   c                 &    U[        U 5      -  nX-   $ r   r?   r-   locscalescaled_normals       r!   random_normalri      s    26::Mr$   c                 v    [         R                  " U[        U 5      -  5      n[         R                  " X-   5      $ r   )r   r&   rC   re   s       r!   random_normal_frk      s-    JJu'?'GGHM::c)**r$   c                     U[        U 5      -  $ r   )r,   )r-   rg   s     r!   random_exponentialrm      s    .v666r$   c                 &    U[        U 5      -  nX-   $ r   r   )r-   lowerrangescaled_uniforms       r!   random_uniformrs      s    [00N!!r$   c                     U[        X5      -  $ r   r^   r-   rW   rg   s      r!   random_gammarw      s    (777r$   c                 F    [         R                  " U[        X5      -  5      $ r   )r   r&   rb   rv   s      r!   random_gamma_fry     s    ::e5fDDEEr$   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-   -  $ )NrO   rS   r   )r   rV   r   rP   minr7   r^   )r-   ar\   rX   rY   rZ   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)   ru   )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   rd   rK   s    r!   random_standard_cauchyr   +  s    !&),B6,JJJr$   c                 0    [        [        U 5      U-  5      $ r   )r2   r,   r-   r|   s     r!   random_paretor   0  s    /7!;<<r$   c                 @    US:X  a  g[        [        U 5      SU-  5      $ NrS   rO   )rV   r,   r   s     r!   random_weibullr   5  s#    	S*62BF;;r$   c                 H    [        [        [        U 5      * 5      * SU-  5      $ rN   )rV   r2   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   rB   r*   rS   r   r   rP   r-   rf   rg   rX   s       r!   random_laplacer   A  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   M  sE    FA
s( s(S1W....r$   c                 B    [         R                  " [        XU5      5      $ r   )r   r7   ri   )r-   meansigmas      r!   random_lognormalr   U  s    66-e455r$   c                     [        U 5      n[        XS-  5      n[        R                  " US-  5      U-  [        R                  " U5      -  $ )N   )r?   r^   r   r+   )r-   r   numdenoms       r!   random_standard_tr   Z  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      )r?   r   r+   r   )r-   r   rg   mu_2lr[   rZ   rX   s          r!   random_waldr   a  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$ )Nr4   rO   ro   )r-   prZ   sumprodqrX   s          r!   random_geometric_searchr   n  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      $ )NrT   )r   r   r   s     r!   random_geometricr     s!    	''&v11)&44r$   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  )NrO   r*   g      )rV   r   r   floorr   )r-   r|   am1r\   rX   rY   rZ   Ts           r!   random_zipfr     s    
c'CCA
+f%%HHSD3J'(	MQWcAgs#EQWS)QU2H 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      -
  $ rN   )r   r   r+   )
r-   leftr.   rightbaseleftbaseratioleftprod	rightprodrX   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gGrO   r*   rS   g      @   r   gdg?rA   r6   rB   r4   )intrq   r   rP   )	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   rO   r4   )r   r7   r   )r-   lamenlamrZ   r   rX   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   r4   rB   gQ?gQ?r   g9v?)r   r+   rP   r   fabsr   r   )r-   r   slamloglamr\   r|   invalphavrrX   rY   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      $ )Nr4   )rw   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   r4   r*   r   )r   isnannanr   r?   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           	      t   [        U* 5      n [        U 5      nX1:  a  g[        U 5      n[        R                  " X$-  5      * nX5U-  ::  ah  [        R                  " [        R
                  " S[        R                  " U5      [        R                  " U5      -  -   5      5      nUS:  d  US:X  a  M  U$ X5:  a  gg)Nr4   rS   r   )r"   r   r   r1   int64r   rP   )r-   r   r9   rY   rX   r   results          r!   random_logseriesr     s    !A
FXXae_QJXXbhhq266!9rvvay+@'@ABFzQ#XFr$   c           	      T	   [        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-   5      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ax  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  OUS:X  a  US:  a  UU-
  nU$ GM  )NrO   g(\@gffffff@rB   gx&?g     4@g.@r*   r   r   r4      <      2   (   rS   4   r`   g      ?gUUUUUU?r   g     @g     |@g     `@g     X@g     a@g    MAg     1@)
r{   r   r   r   r+   r   r   rP   absrq   )'r-   r   r   r9   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  1  s   AsQwAaA	
BBHHRLA	RXXebggaeai0037:;cA	BB	
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   "()	) 	* 	* RZCEHA 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$ )NrO   g      $@r4   r   )r   r7   rP   r{   r+   r   )
r-   r   r   r   qn_npboundrZ   pxrX   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   rS   rB   g      >@rO   )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$   )L__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   r"   r'   r/   r2   r?   rC   r,   rI   rL   rQ   r^   rb   ri   rk   rm   rs   rw   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!   <module>r     s  
  1	G 	G 	G 	G 	G 	GF F   # # E E    8  6  "  $ + + 9 9 " "J &) &)R  
 + +
 7 7 " "
 8 8 F F  2 9 9 7 7
 K K = = < < H H   / / 6 6 2 2 	 	 	 	 H H 5 5   6 6  B 
 
  6 0 0 % %
 4 4  9 9
  * t tn  , : :r$   