
    J/PhmO                     ~   d Z ddlZddlmZ ddlmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZmZmZmZ ed             Zed             Zed             Z ed	             Z!ed
             Z"ed             Z#ed             Z$ed             Z%ed             Z&ed             Z'ed             Z(ed             Z)ed             Z*ed             Z+ed             Z,ed             Z-ed             Z.ed             Z/ed             Z0ed             Z1ed             Z2ed             Z3ed             Z4ed             Z5ed             Z6ed             Z7ed              Z8ed!             Z9ed"             Z:ed#             Z;ed$             Z<ed%             Z=ed&             Z>ed'             Z?ed(             Z@ed)             ZAed*             ZBed+             ZCed,             ZDed-             ZEed.             ZFed/             ZGed0             ZHed1             ZIed2             ZJed3             ZKdS )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                 *    t          j        |           S N)nplog1pxs    a/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/np/random/new_distributions.pynp_log1pr"          8A;;    c                 N    t          j        t          j        |                     S r   )r   r   float32r   s    r!   	np_log1pfr'      s    8BJqMM"""r$   c                 P    |t          j        dt          |           z            z  S N       @)r   sqrtrandom_standard_exponential)bitgenmodes     r!   random_rayleighr/   #   s%    "'# ;F C CCDDDDr$   c                 *    t          j        |           S r   )r   expm1r   s    r!   np_expm1r2   (   r#   r$   c                 \   	 t          |           }|dz  }|dz  }|dz  }|dz	  dz  }|t          |         z  }|dz  r| }|t          |         k     r|S |dk    ry	 t           t	          j        t          |                      z  }t	          j        t          |                       }||z   ||z  k    r|dz	  dz  rt          |z    S t          |z   S xt          |dz
           t          |         z
  t          |           z  t          |         z   t	          j	        d|z  |z            k     r|S ,)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?   -   s`   $h	a3wQ,,9S>!3J 	A)C.  H!883((28[5H5H4H+I+IIhF 3 33444Gb2g%%c) 3!/"!455-223 C!G$y~5''(*3C.9F4!8a<(() ) 1r$   c                    	 t          |           }|dz  }|dz	  dz  }|dz	  dz  }t          j        t          j        |          t          |         z            }|dz  r| }|t          |         k     r|S |dk    r	 t          j        t
           t          t          |                      z            }t          j        t          t          |                                 }t          j        ||z             t          j        ||z            k    rA|dz	  dz  rt          j        t          |z              S t          j        t          |z             S t          |dz
           t          |         z
  t          |           z  t          |         z   t          j        t          j
        t          j        d           |z  |z                      k     r|S )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+%Jrz$''(3-7883J 	A8C=  H1HHAZ!5 5&
6(:(:':;;!< = =ZJv,>,>+>!?!? ?@@JrBw''"*R"W*=*===c) A "
+;b+@ A AAA!z*:R*?@@@A 37#hsm3z&7I7II#"$*RVRZ__4Dq4H14L-M-M"N"NO O/r$   c                    	 t          |           }|dz  }|dz  }|dz  }|t          |         z  }|t          |         k     r|S |dk    r%t          t	          t          |                      z
  S t          |dz
           t          |         z
  t          |           z  t          |         z   t          j        |           k     r|S )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axx%+f2E2E1E(F(FFFS1W%	#6+f:M:MMC.!#%61"::. .r$   c           
      b   	 t          |           }|dz  }|dz  }|dz  }t          j        t          j        |          t          |         z            }|t          |         k     r|S |dk    rIt          j        t
          t          j        t          t          |                                z
            S t          |dz
           t          |         z
  t          |           z  t          |         z   t          j        t          j	        t          j        |                               k     r|S /)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Jrz"~~566#Hqz"2!z)Z5G5G4G*H*HII#J K K KC!G$x}4
68J8JJ3- "$*RVBJrNN-C-C"D"DE Er$   c                 >    t          t          |                       S r   )r"   r   r-   s    r!   random_standard_exponential_invrL      s    k&)))****r$   c                 p    t          j        t          j        d          t          |           z
             S N      ?)r   logr&   r   rK   s    r!   !random_standard_exponential_inv_frQ      s*    F2:c??Z%7%778888r$   c                    |dk    rt          |           S |dk    rdS |dk     r	 t          |           }t          |           }|d|z
  k    rt          |d|z            }||k    r|S nBt          j        d|z
  |z             }t          d|z
  ||z  z   d|z            }|||z   k    r|S |dz
  }dt          j        d|z            z  }	 	 t          |           }d||z  z   }|dk    rn||z  |z  }t          |           }|dd||z  z  ||z  z  z
  k     r||z  S t          j        |          d|z  |z  |d|z
  t          j        |          z   z  z   k     r||z  S )NrO           r4   UUUUUU?rA   m{?rB   )r,   r   powr   rP   r+   r?   )r-   shapeUVXYbcs           r!   random_standard_gammar^      s   *6222
3,,s
#++	F##A+F33AS5[  2:&&FFH  VQUeO,,,eeai/e<<!a%LLH	 GOQ	*622!a%KGG	 A	AF##AC&AE*a!e4444Aq		C!GaK!rAvq		/A*BBBBA	r$   c           
         t          j        d          }t          j        |          }||k    rt          |           S |t          j        d          k    rt          j        d          S ||k     r	 t          |           }t          |           }|||z
  k    r@t          j        t	          |t          j        ||z                                }||k    r|S nt          j        t          j        t          j        ||z
  |z                                 }t          j        t	          ||z
  t          j        ||z            z   t          j        ||z                                }|||z   k    r|S ||t          j        d          z  z
  }t          j        |t          j        t          j        t          j        d          |z                      z            }	 	 t          j        t          |                     }t          j        |||z  z             }|t          j        d          k    rnUt          j        ||z  |z            }t          |           }||t          j        d          ||z  z  ||z  z  z
  k     rt          j        ||z            S t          j        |          t          j        d          |z  |z  |||z
  t          j        |          z   z  z   k     rt          j        ||z            S $)NrO   rS   r4         @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      s   jooGJuE,V444
2:c??
"
"z#
'//	6""A-f55AWu_$$Js1bj5&A&ABBCCFFH  Jrz7Q;%2G'H'H I IIJJJs7U?RZ	5J5J#JJw77 9  9 : :!a%LLH	 Gbjoo--JwBGBJsOOa4G,H,H!I!IIJJ	)J7??@@JwQ//
3''	 
1q519%%A6""AGbj00AE:a!eDDDDz!a%(((q		BJsOOa/!3aq[26!99,7. . . .z!a%(((	)r$   c                 0    |t          |           z  }||z   S r   r?   r-   locscalescaled_normals       r!   random_normalri      s     26:::Mr$   c                 x    t          j        |t          |           z            }t          j        ||z             S r   )r   r&   rC   re   s       r!   random_normal_frk      s4    Ju'?'G'GGHHM:cM)***r$   c                 &    |t          |           z  S r   )r,   )r-   rg   s     r!   random_exponentialrm      s    .v6666r$   c                 0    |t          |           z  }||z   S r   r   )r-   lowerrangescaled_uniforms       r!   random_uniformrs      s    [000N>!!r$   c                 (    |t          | |          z  S r   r^   r-   rW   rg   s      r!   random_gammarw      s    (7777r$   c                 L    t          j        |t          | |          z            S r   )r   r&   rb   rv   s      r!   random_gamma_fry     s"    :e5feDDDEEEr$   c           	      f   |dk    r|dk    r	 t          |           }t          |           }t          |d|z            }t          |d|z            }||z   }|dk    r|dk    r||z   dk    r||z  S t          j        |          |z  }t          j        |          |z  }	t	          ||	          }
||
z  }|	|
z  }	t          j        |t          j        t          j        |          t          j        |	          z             z
            S t          | |          }t          | |          }|||z   z  S )NrO   r4   rS   r   )r   rV   r   rP   minr7   r^   )r-   ar\   rX   rY   rZ   r[   XpYlogXlogYlogMGaGbs                r!   random_betar     s.   CxxAHH	NF##AF##AAsQwAAsQwAa%CczzcCiiEAIIs7N6!99q=D6!99q=DtT??DDLDDLD6$trvd||0K)L)L"LMMM!	N$ #61--"61--R"W~r$   c                 .    dt          | |dz            z  S r)   ru   )r-   dfs     r!   random_chisquarer      s    &vrCx8888r$   c                 P    t          | |          |z  t          | |          |z  z  S r   )r   )r-   dfnumdfdens      r!   random_fr   %  s0    fe,,u4fe,,u46 7r$   c                 @    t          |           t          |           z  S r   rd   rK   s    r!   random_standard_cauchyr   +  s    !&)),B6,J,JJJr$   c                 @    t          t          |           |z            S r   )r2   r,   r-   r|   s     r!   random_paretor   0  s    /77!;<<<r$   c                 R    |dk    rdS t          t          |           d|z            S NrS   rO   )rV   r,   r   s     r!   random_weibullr   5  s-    	Ss*622BF;;;r$   c                 `    t          t          t          |                       d|z            S rN   )rV   r2   r,   r   s     r!   random_powerr   <  s-    5f===>>>QGGGr$   c                     t          |           }|dk    rt          |           }|dk    |dk    r!||t          j        d|z
  |z
            z  z
  }n#|dk    r||t          j        ||z             z  z   }|S )Nr   rB   r*   rS   r   r   rP   r-   rf   rg   rX   s       r!   random_laplacer   A  s    FA
q&& q&&	S%"&q1----
c''%"&Q--''Hr$   c                     t          |           }|dk    rt          |           }|dk    ||t          j        |d|z
  z            z  z   S r   r   r   s       r!   random_logisticr   M  sR    FA
s(( s((S1W.....r$   c                 H    t          j        t          | ||                    S r   )r   r7   ri   )r-   meansigmas      r!   random_lognormalr   U  s    6-e44555r$   c                     t          |           }t          | |dz            }t          j        |dz            |z  t          j        |          z  S )N   )r?   r^   r   r+   )r-   r   numdenoms       r!   random_standard_tr   Z  sF    
 
(
(C!&"q&11E726??S 275>>11r$   c                     |d|z  z  }t          |           }||z  |z  }|||t          j        d|z  |z  ||z  z             z
  z  z   }t          |           }||||z   z  k    r|S ||z  |z  S )Nr      )r?   r   r+   r   )r-   r   rg   mu_2lr[   rZ   rX   s          r!   random_waldr   a  s    AIEv&&Aq1AuBGAIMAE$9:::;;AFA	TTAXd{Qr$   c                 p    d}|x}}d|z
  }t          |           }||k    r||z  }||z  }|dz   }||k    |S )Nr4   rO   ro   )r-   prZ   sumprodqrX   s          r!   random_geometric_searchr   n  s\    	ANC$aAFAs77	tE s77 Hr$   c                 r    t          j        t          |            t          j        |           z            S r   )r   ceilr,   r   r-   r   s     r!   random_geometric_inversionr   {  s-    7/777"(A2,,FGGGr$   c                 N    |dk    rt          | |          S t          | |          S )NrT   )r   r   r   s     r!   random_geometricr     s.    	'''&vq111)&!444r$   c                 @   |dz
  }t          d|          }	 dt          |           z
  }t          |           }t          j        t          |d|z                      }|t          k    s|dk     rYt          dd|z  z   |          }||z  |dz
  z  |dz
  z  ||z  k    r|S )NrO   r*   r4   g      )rV   r   r   floorr   )r-   r|   am1r\   rX   rY   rZ   Ts           r!   random_zipfr     s    
c'CCA	+f%%%HSD3J''((	MMQWWcAgs##EQWS)QU22H	r$   c                     ||z
  }||z
  }||z  }||z  }||z
  |z  }t          |           }	|	|k    r|t          j        |	|z            z   S |t          j        d|	z
  |z            z
  S rN   )r   r   r+   )
r-   leftr.   rightbaseleftbaseratioleftprod	rightprodrX   s
             r!   random_triangularr     s     4<Dd{HtOE$H%IFA	U

bga(l++++rwa945555r$   c                    g d}| dk    s| dk    rdS | dk     rt          d| z
            }nd}| |z   }d|z  d|z  z  }d}|d	         }t          dd	          D ]}||z  }||d
|z
           z  }||z  d|z  z   |dz
  t          j        |          z  z   |z
  }| dk     r5t          d|dz             D ]!}|t          j        |dz
            z
  }|dz
  }"|S )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   	7 	7 	7A 
cqCxxs
c''AJJ	
QB
(sRx	 B"E
A$C1a[[  r	qQx	rC%K	28rvbzz"9	9B	>B	Cq!a% 	 	AbfR#X&&&BcBBIr$   c                 |    t          j        |           }d}d}	 t          |           }||z  }||k    r|dz  }n|S #)Nr   rO   r4   )r   r7   r   )r-   lamenlamrZ   r   rX   s         r!   random_poisson_multr     sT    FC4LLE	AD	5LLFAAHr$   c                 d   t          j        |          }t          j        |          }dd|z  z   }dd|z  z   }dd|dz
  z  z   }dd	|d
z
  z  z
  }	 t          |           dz
  }t          |           }	dt          j        |          z
  }
t          d
|z  |
z  |z   |z  |z   dz             }|
dk    r|	|k    r|S |dk     s|
dk     r|	|
k    r{t          j        |	          t          j        |          z   t          j        ||
|
z  z  |z             z
  | ||z  z   t          |dz             z
  k    r|S )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     s[    73<<DVC[[FtA1A!c'**H	&AE"	"B#%271::Qa1$s*T1224ZZa2ggHUUe!b&& VAYY)))BF1R=13D,E,EED1v:a!e 4 446 6Hr$   c                 ^    |dk    rt          | |          S |dk    rdS t          | |          S )N
   r   )r   r   )r-   r   s     r!   random_poissonr     s9    r		"63///
((q"63///r$   c                 P    t          | |d|z
  |z            }t          | |          S )Nr4   )rw   r   )r-   r   r   r[   s       r!   random_negative_binomialr     s+    VQQ!,,A&!$$$r$   c                 J   t          j        |          rt           j        S |dk    rt          | |          S d|k     r?t          | |dz
            }t	          |           t          j        |          z   }|||z  z   S t          | |dz            }t          | |d|z  z             S )Nr   r4   r*   r   )r   isnannanr   r?   r+   r   )r-   r   noncChi2r   is         r!   random_noncentral_chisquarer     s    	x~~ vqyy+++2vvQ//"6**RWT]]:a!e|64#:..QU
333r$   c                 V    t          | ||          |z  }|t          | |          |z  z  S r   )r   r   )r-   r   r   r   ts        r!   random_noncentral_fr     s3    #FE4885@A //%788r$   c           	         t          |           }	 t          |           }||k    rdS t          |           }t          j        ||z             }|||z  k    r_t          j        t          j        dt          j        |          t          j        |          z  z                       }|dk     s|dk    r|S ||k    rdS dS )Nr4   rS   r   )r"   r   r   r1   int64r   rP   )r-   r   r9   rY   rX   r   results          r!   random_logseriesr     s    !AFF1Xa!e__QJJXbhq26!99rvayy+@'@AABBFzzQ#XXFF11r$   c           	      f	   t          |d|z
            }d|z
  }||z  |z   }t          t          j        |                    }t          t          j        dt          j        ||z  |z            z  d|z  z
            dz             }|dz   }||z
  }	||z   }
ddd|z   z  z   }||	z
  ||	|z  z
  z  }|d|dz  z   z  }|
|z
  |
|z  z  }|d|dz  z   z  }|dd|z  z   z  }|||z  z   }|||z  z   }d	}d
x}}	 |d	k    r_||z  |z  }t          |           |z  }t          |           }||k    rd}9t          t          j        |||z  z
  |z                       }d}f|dk    rg||k    rd}u|	||z
  |z  z   }||z  dz   t          j        ||z
  dz             |z  z
  }|dk    rd	}t          t          j        |                    }d}|dk    ra||k    rd}t          t          j        |	t          j        |          |z  z                       }|d
k     s|dk    rd	}+|||z
  z  |z  }d}:|dk    rXt          t          j        |
t          j        |          |z  z
                      }||k    s|dk    rd	}|||z
  z  |z  }d}|dk    rt          ||z
            }|dk    r||dz  dz
  k     rd}||z  }||dz   z  }d}||k     r%t          |dz   |dz             D ]}|||z  |z
  z  }n*||k    r$t          |dz   |dz             D ]}|||z  |z
  z  }||k    rd	}4d}8|dk    rn||z  ||dz  dz   z  dz   |z  dz   z  }| |z  d|z  z  }t          j        |          }|||z
  k     rd}|||z   k    rd	}|dz   }|dz   } |dz   |z
  }!||z
  dz   }"||z  }#| | z  }$|!|!z  }%|"|"z  }&||t          j        | |z            z  ||z
  dz   t          j        |!|"z            z  z   ||z
  t          j        |"|z  ||z  z            z  z   ddddd|$z  z
  |$z  z
  |$z  z
  |$z  z
  | z  dz  z   ddddd|%z  z
  |%z  z
  |%z  z
  |%z  z
  |!z  dz  z   ddddd|#z  z
  |#z  z
  |#z  z
  |#z  z
  |z  dz  z   ddddd|&z  z
  |&z  z
  |&z  z
  |&z  z
  |"z  dz  z   k    rd	}n|dk    r|dk    r||z
  }|S )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	
QBBHRLLA	RXebga!eai00037:;;cA	B	BB	
SB	bB	bBq!!A	bR"q&[!Aa#gD	bR!VAa#gD	sS1W}	B	a$hB	a$hBDIA`2::a%!)CF##b(AF##ABBHR"q&[1_--..ADRZZBa"f\!AAbga!eck22R77ACBHQKK  ADRZZBBHR"&))d"223344AQAHHQVt#ADRZZBHR"&))d"223344AQAHHQVt#ADRZZAE

ARaC3;?33AAQUAAAq1ua!e,, ( (AQUQYAA(a%%q1ua!e,, ( (AQUQYAAADRZZ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//)QUS[BF1q5MM,II!erva!erAv&67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   "()	) 	* 	* 	* RZZCEHA`r$   c           	      v   d|z
  }t          j        |t          j        |          z            }||z  }t          ||dt          j        ||z  dz             z  z             }d}|}t          |           }	|	|k    r>|dz   }||k    rd}|}t          |           }	n|	|z  }	||z
  dz   |z  |z  ||z  z  }|	|k    >|S )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	BF1II		B
a%C3a! 4 44455E	A	BFAr66EIIABF##AAGAq519/B&1q51B r66 Hr$   c                     |dk    s|dk    rdS |dk    r+||z  dk    rt          | ||          S t          | ||          S d|z
  }||z  dk    r|t          | ||          z
  S |t          | ||          z
  S )Nr   rS   rB   g      >@rO   )r  r  )r-   r   r   r   s       r!   random_binomialr    s    	
aQ#XXq	SETMM,VQ:::'1555!GETMM0A>>>>+FAq9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 1 1 1 1 1	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	GF F F F F F F F F F F F    # # # E E E      8   6   "   $ + + + 9 9 9 " " "J &) &) &)R   
 + + +
 7 7 7 " " "
 8 8 8 F F F   2 9 9 9 7 7 7
 K K K = = = < < < H H H    / / / 6 6 6 2 2 2 	 	 	 	 	 	 H H H 5 5 5    6 6 6   B 
 
 
   6 0 0 0 % % %
 4 4 4  9 9 9
   * t t tn   , : : : : :r$   