
    J/PhQ                        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 ddlmZm Z  ddl!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             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)k     red*             ZDned+             ZDed,             ZEed-             ZFed.             ZGed/             ZHed0             ZIed1             ZJed2             ZKed3             ZLed4             ZMed5             ZNed6             ZOed7             ZPdS )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                 *    t          j        |           S N)nplog1pxs    a/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/np/random/old_distributions.pynp_log1pr%          8A;;    c                 D    t          j        t          |                     S r   )r    r!   r   r"   s    r$   	np_log1pfr)       s    8GAJJr'   c                 P    |t          j        dt          |           z            z  S N       @)r    sqrtrandom_standard_exponential)bitgenmodes     r$   random_rayleighr1   %   s%    "'# ;F C CCDDDDr'   c                 *    t          j        |           S r   )r    expm1r"   s    r$   np_expm1r4   *   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_normalrA   /   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                 J   	 t          |           }|dz  }|dz	  dz  }|dz	  dz  }t          t          |          t          |         z            }|dz  r| }|t          |         k     r|S |dk    r	 t          t           t          t          |                      z            }t          t          t          |                                 }t          ||z             t          ||z            k    r7|dz	  dz  rt          t          |z              S t          t          |z             S t          |dz
           t          |         z
  t          |           z  t          |         z   t          t          j
        t          d           |z  |z                      k     r|S )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+%GDMMHSM1223J 	A8C=  H1HH>22&
6(:(:':;;< = =iF););(;<<<==BG$$wrBw'7'777c) > '(82(= > >>>&'7"'<===> 37#hsm3z&7I7II#")"&'#,,1BQ1F*G*G"H"HI I/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 )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axx%+f2E2E1E(F(FFFS1W%	#6+f:M:MMC.!#%61"::. .r'   c           
      &   	 t          |           }|dz  }|dz  }|dz  }t          t          |          t          |         z            }|t          |         k     r|S |dk    r?t          t          t          t          t          |                                z
            S t          |dz
           t          |         z
  t          |           z  t          |         z   t          t          j	        t          |                               k     r|S )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GBKK(3-/00#Hq/&y*V2D2D1D'E'EFF G H H HC!G$x}4
68J8JJ3- ")"&!*=*=">">? ?r'   c                 >    t          t          |                       S r   )r%   r   r/   s    r$   random_standard_exponential_invrN      s    k&)))****r'   c                 f    t          j        t          d          t          |           z
             S N      ?)r    logr   r   rM   s    r$   !random_standard_exponential_inv_frS      s(    F73<<*V"4"445555r'   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 )NrQ           r6   UUUUUU?rC   m{?rD   )r.   r   powr    rR   r-   rA   )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          d          }t          |          }||k    rt          |           S |t          d          k    rt          d          S ||k     r	 t          |           }t          |           }|||z
  k    r6t          t          |t          ||z                                }||k    r|S nt          t	          j        t          ||z
  |z                                 }t          t          ||z
  t          ||z            z   t          ||z                                }|||z   k    r|S ||t          d          z  z
  }t          |t          t	          j        t          d          |z                      z            }	 	 t          t          |                     }t          |||z  z             }|t          d          k    rnFt          ||z  |z            }t          |           }||t          d          ||z  z  ||z  z  z
  k     rt          ||z            S t	          j        |          t          d          |z  |z  |||z
  t	          j        |          z   z  z   k     rt          ||z            S )NrQ   rU   r6         @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   cllGENNE,V444
73<<

s||
'//	6""A-f55AWu_$$C77U?#;#;<<==FFH  RVGWq[E,A$B$BCCCDDC%'%!)2D2D D#GeO446 6 7 7!a%LLH	 Ggcll**GgbggcllQ.>&?&?@@@AA	&4V<<==Ga!eO,,$$	 A	""A6""AGgfooQ71q5AAAAq1u~~%q		GCLL1,q01q[26!99,4. . . .q1u~~%	&r'   c                 0    |t          |           z  }||z   S r   rA   r/   locscalescaled_normals       r$   random_normalrk      s     26:::Mr'   c                 d    t          |t          |           z            }t          ||z             S r   )r   rE   rg   s       r$   random_normal_frm      s0    E$<V$D$DDEEM3&'''r'   c                 &    |t          |           z  S r   )r.   )r/   ri   s     r$   random_exponentialro      s    .v6666r'   c                 0    |t          |           z  }||z   S r   r   )r/   lowerrangescaled_uniforms       r$   random_uniformru      s    [000N>!!r'   c                 (    |t          | |          z  S r   r`   r/   rY   ri   s      r$   random_gammary      s    (7777r'   c                 B    t          |t          | |          z            S r   )r   rd   rx   s      r$   random_gamma_fr{     s     5265AAABBBr'   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 )NrQ   r6   rU   r   )r   rX   r    rR   minr9   r`   )r/   ar^   rZ   r[   r\   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+   rw   )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   rf   rM   s    r$   random_standard_cauchyr   -  s    !&)),B6,J,JJJr'   c                 @    t          t          |           |z            S r   )r4   r.   r/   r~   s     r$   random_paretor   2  s    /77!;<<<r'   c                 R    |dk    rdS t          t          |           d|z            S NrU   rQ   )rX   r.   r   s     r$   random_weibullr   7  s-    	Ss*622BF;;;r'   c                 `    t          t          t          |                       d|z            S rP   )rX   r4   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   rD   r,   rU   r   r    rR   r/   rh   ri   rZ   s       r$   random_laplacer   C  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   O  sR    FA
s(( s((S1W.....r'   c                 H    t          j        t          | ||                    S r   )r    r9   rk   )r/   meansigmas      r$   random_lognormalr   W  s    6-e44555r'   c                     t          |           }t          | |dz            }t          j        |dz            |z  t          j        |          z  S )N   )rA   r`   r    r-   )r/   r   numdenoms       r$   random_standard_tr   \  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      )rA   r    r-   r   )r/   r   ri   mu_2lr]   r\   rZ   s          r$   random_waldr   c  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 )Nr6   rQ   rq   )r/   pr\   sumprodqrZ   s          r$   random_geometric_searchr   p  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 )NrV   )r   r   r   s     r$   random_geometricr     s.    	'''&vq111)&!444r'   )r   r6   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 NrQ   r,   r6   g      )rX   r   r    floorr   )r/   r~   am1r^   rZ   r[   r\   Ts           r$   random_zipfr     s    #gSMM	k&)))AF##AQs
++,,AISC#'M3''AAS!QW-Q66	r'   c                 |   |dz
  }t          d|          }t          t          |           }	 t          |           }||z  d|z
  z   }t          |           }t          j        t          |d|z                      }|t          k    s|dk     rat          dd|z  z   |          }	||z  |	dz
  z  |dz
  z  |	|z  k    r|S r   )rX   r   r   r    r   )
r/   r~   r   r^   UminU01rZ   r[   r\   r   s
             r$   r   r     s    #gSMM9sd##
	f%%Cd
a#g&AF##AQs
++,,AISC#'M3''AAS!QW-Q66
	r'   c                     ||z
  }||z
  }||z  }||z  }||z
  |z  }t          |           }	|	|k    r|t          j        |	|z            z   S |t          j        d|	z
  |z            z
  S rP   )r   r    r-   )
r/   leftr0   rightbaseleftbaseratioleftprod	rightprodrZ   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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   	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   rQ   r6   )r    r9   r   )r/   lamenlamr\   r   rZ   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   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     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 )Nr6   )ry   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   r6   r,   r   )r    isnannanr   rA   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           	      z   t          |           }	 t          |           }||k    rdS t          |           }t          j        ||z             }|||z  k    rZt	          t          j        dt          j        |          t          j        |          z  z                       }|dk     s|dk    r|S ||k    rdS dS )Nr6   rU   r   )r%   r   r    r3   r   r   rR   )r/   r   r;   r[   rZ   r   results          r$   random_logseriesr   .  s    !AFF1Xa!e__QJJ28Aq		BF1II(=$=>>??FzzQ#XXFF11r'   c                 R	   t          |d|z
            }d|z
  }||z  |z   }t          t          j        |                    }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    rq||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	}d}|dk    r|dk    r||z
  }|S )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  st   AsQwAaA	
QBBHRLLA	%"'!a%!),,,sQw6	7	7#	=B	
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b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   "()	) 	* 	* DRZZCEHEb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 )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	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   rU   rD   g      >@rQ   )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'   )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 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                 0 0 0 0 0 0
          E E E      8   6   "   $ + + + 6 6 6 " " "J && && &&R   
 ( ( (
 7 7 7 " " "
 8 8 8 C C C   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 6   B 
 
 
   6 0 0 0 % % %
 4 4 4  9 9 9
   * v v vr   , : : : : :r'   