
    ihQ                        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        ZPy)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    _/var/www/html/dev/engine/venv/lib/python3.12/site-packages/numba/np/random/old_distributions.pynp_log1pr%          88A;    c                 >    t        j                  t        |             S r   )r    r!   r   r"   s    r$   	np_log1pfr)       s    88GAJr'   c                 J    |t        j                  dt        |       z        z  S N       @)r    sqrtrandom_standard_exponential)bitgenmodes     r$   random_rayleighr1   %   s!    "''# ;F CC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(  ro	 t         t	        j
                  t        |              z  }t	        j
                  t        |               }||z   ||z  kD  r|dz	  dz  r
t        |z    S t        |z   S nt        |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   /   s6   
$h	a3wQ,,9S>!3JA)C. H!8((288[5H4H+IIhhF 3344Gb2g%c)!/"!455-22  C!G$y~5'(*3C.9FF4!8a<() 1 r'   c                    	 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        kD  r-|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 I)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);(;<<=BG$wrBw'77c) '(82(= >>>&'7"'<==  37#hsm3z&7II#")"&&'#,1BQ1F*G"H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ax%+f2E1E(FFFS1W%	#6+f:MMC.!#%661":. 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GBK(3-/0#Hq/&y*V2D1D'EF G H HC!G$x}4
68JJ3- ")"&&!*=">? r'   c                 .    t        t        |               S r   )r%   r   r/   s    r$   random_standard_exponential_invrN      s    k&))***r'   c                 X    t        j                  t        d      t        |       z
         S N      ?)r    logr   r   rM   s    r$   !random_standard_exponential_inv_frS      s"    FF73<*V"44555r'   c                 v   |dk(  rt        |       S |dk(  ry|dk  rt	 t        |       }t        |       }|d|z
  k  rt        |d|z        }||k  r@|S t        j                  d|z
  |z         }t        d|z
  ||z  z   d|z        }|||z   k  r|S s|dz
  }dt        j
                  d|z        z  }	 	 t        |       }d||z  z   }|dkD  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
3,
#+F#A+F3AS5[ 2:&FHVVQUeO,,eeai/e<!a%LH  GOQ*62!a%KG	  A	AF#AC&AE*a!e444Aq	C!GaK!rAvq	/A*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  r(t        t        |t        ||z                    }||k  rm|S t        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      kD  rn5t        ||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         @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Wu_$C77U?#;<=FHRVVGWq[E,A$BCCDC%'%!)2D D#GeO46 7!a%LH  Ggcl**GgbgggclQ.>&?@@A4V<=Ga!eO,$	  A	"A6"AGgfoQ71q5AAAq1u~%q	GCL1,q01q[266!9,4. . .q1u~% r'   c                 (    |t        |       z  }||z   S r   rA   r/   locscalescaled_normals       r$   random_normalrk      s    26::Mr'   c                 L    t        |t        |       z        }t        ||z         S r   )r   rE   rg   s       r$   random_normal_frm      s'    E$<V$DDEM3&''r'   c                     |t        |       z  S r   )r.   )r/   ri   s     r$   random_exponentialro      s    .v666r'   c                 (    |t        |       z  }||z   S r   r   )r/   lowerrangescaled_uniforms       r$   random_uniformru      s    [00N>!!r'   c                      |t        | |      z  S r   r`   r/   rY   ri   s      r$   random_gammary      s    (777r'   c                 2    t        |t        | |      z        S r   )r   rd   rx   s      r$   random_gamma_fr{     s    5265AABBr'   c           	      .   |dk  r|dk  r	 t        |       }t        |       }t        |d|z        }t        |d|z        }||z   }|dk  r|dkD  r||z   dkD  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   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a%CczcCiEAIs7N66!9q=D66!9q=DtT?DDLDDLD66$trvvd|0K)L"LMM! $ #61-"61-R"W~r'   c                 &    dt        | |dz        z  S r+   rw   )r/   dfs     r$   random_chisquarer   "  s    &vrCx888r'   c                 @    t        | |      |z  t        | |      |z  z  S r   )r   )r/   dfnumdfdens      r$   random_fr   '  s*    fe,u4fe,u46 7r'   c                 0    t        |       t        |       z  S r   rf   rM   s    r$   random_standard_cauchyr   -  s    !&),B6,JJJr'   c                 0    t        t        |       |z        S r   )r4   r.   r/   r~   s     r$   random_paretor   2  s    /7!;<<r'   c                 >    |dk(  ryt        t        |       d|z        S NrU   rQ   )rX   r.   r   s     r$   random_weibullr   7  s#    	S*62BF;;r'   c                 H    t        t        t        |               d|z        S rP   )rX   r4   r.   r   s     r$   random_powerr   >  s$    5f==>>QGGr'   c                     t        |       }|dk  rt        |       }|dk  r|dk\  r#||t        j                  d|z
  |z
        z  z
  }|S |dkD  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--- H c'%"&&Q-''Hr'   c                     t        |       }|dk  rt        |       }|dk  r||t        j                  |d|z
  z        z  z   S r   r   r   s       r$   random_logisticr   O  sG    FA
s( s(S1W....r'   c                 B    t        j                  t        | ||            S r   )r    r9   rk   )r/   meansigmas      r$   random_lognormalr   W  s    66-e4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   \  s@    
 
(C!&"q&1E7726?S 2775>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BGGAIMAE$9::;;AFA	TTAXd{Qr'   c                 f    d}|x}}d|z
  }t        |       }||kD  r||z  }||z  }|dz   }||kD  r|S )Nr6   rQ   rq   )r/   pr\   sumprodqrZ   s          r$   random_geometric_searchr   p  sU    	ANC$aAFAs7	tE s7 Hr'   c                 n    t        j                  t        |        t        j                  |       z        S r   )r    ceilr.   r!   r/   r   s     r$   random_geometric_inversionr   }  s)    77/77"((A2,FGGr'   c                 <    |dk\  rt        | |      S t        | |      S )NrV   )r   r   r   s     r$   random_geometricr     s%    	''&vq11)&!44r'   )r   r6   c                    |dz
  }t        d|      }	 dt        |       z
  }t        |       }t        j                  t        |d|z              }|t        kD  s|dk  rKt        dd|z  z   |      }||z  |dz
  z  |dz
  z  ||z  k  r|S v)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AS!QW-Q6 r'   c                 D   |dz
  }t        d|      }t        t        |       }	 t        |       }||z  d|z
  z   }t        |       }t        j                  t        |d|z              }|t        kD  s|dk  rSt        dd|z  z   |      }	||z  |	dz
  z  |dz
  z  |	|z  k  r|S ~)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d
a#g&AF#AQs
+,AISC#'M3'AAS!QW-Q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
bgga(l+++rwwa94555r'   c                    g d}| dk(  s| dk(  ry| 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  r4t        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   	7A 
cqCx
c'AJ	
QB
(sRx	 B"E
A$C1a[ r	qQx 
rC%K	28rvvbz"9	9B	>B	Cq!a% 	AbffR#X&&BcB	 Ir'   c                 t    t        j                  |       }d}d}	 t        |       }||z  }||kD  r|dz  }n|S )Nr   rQ   r6   )r    r9   r   )r/   lamenlamr\   r   rZ   s         r$   random_poisson_multr     sK    FFC4LE	AD	5LFA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|	|
kD  rkt        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<    773<DVVC[FtA1A!c'**H	&AE"	"B#%2771:Qa1$s*T124Za2gHUe!b& VVAY))BFF1R=13D,EED1v:a!e 446H r'   c                 H    |dk\  rt        | |      S |dk(  ryt        | |      S )N
   r   )r   r   )r/   r   s     r$   random_poissonr     s-    r	"63//
("63//r'   c                 @    t        | |d|z
  |z        }t        | |      S )Nr6   )ry   r   )r/   r   r   r]   s       r$   random_negative_binomialr     s%    VQQ!,A&!$$r'   c                 *   t        j                  |      rt         j                  S |dk(  rt        | |      S d|k  r8t        | |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    	xx~vvqy++2vQ/"6*RWWT]:a!e|64#:.QU
33r'   c                 F    t        | ||      |z  }|t        | |      |z  z  S r   )r   r   )r/   r   r   r   ts        r$   random_noncentral_fr   (  s-    #FE485@A /%788r'   c           	      R   t        |       }	 t        |       }||k\  ryt        |       }t        j                  ||z         }|||z  k  rWt	        t        j
                  dt        j                  |      t        j                  |      z  z               }|dk  s|dk(  r|S ||k\  ryy)Nr6   rU   r   )r%   r   r    r3   r   r   rR   )r/   r   r;   r[   rZ   r   results          r$   random_logseriesr   .  s    !A
FXXa!e_QJ288Aq	BFF1I(=$=>?FzQ#XFr'   c                    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(  rS||z  |z  }t        |       |z  }t        |       }||kD  rd}/t        t        j                  |||z  z
  |z               }d}Y|dk(  rc|kD  rd}f|	||z
  |z  z   }|z  dz   t        j                  ||z
  dz         |z  z
  }|dkD  rd	}t        t        j                  |            }d}|dk(  r\|kD  rd}t        t        j                  |	t        j                        |z  z               }|d
k  s|dk(  rd	}|||z
  z  |z  }d}"|dk(  rTt        t        j                  |
t        j                        |z  z
              }||kD  s|dk(  rd	}l||z
  z  |z  }d}{|dk(  rt        ||z
        }|dkD  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'||kD  r"t        |dz   |dz         D ]  }|||z  |z
  z  } |kD  rd	}	d}|dk(  rr|z  ||dz  dz   z  dz   |z  dz   z  }| |z  d|z  z  }t        j                        }|||z
  k  rd}Z|||z   kD  rd	}f|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   kD  rd	}d}|dk(  r|dkD  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  s   AsQwAaA	
QBBHHRLA	%"''!a%!),,sQw6	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
2:a%!)CF#b(AF#ABBHHR"q&[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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/)QUS[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           	      `   d|z
  }t        j                  |t        j                  |      z        }||z  }t        ||dt        j                  ||z  dz         z  z         }d}|}t        |       }	|	|kD  r9|dz   }||kD  rd}|}t        |       }	n|	|z  }	||z
  dz   |z  |z  ||z  z  }|	|kD  r9|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	BFF1I	B
a%C3a! 4445E	A	BFAr6EIABF#AGAq519/B&1q51B r6 Hr'   c                     |dk(  s|dk(  ry|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#X	SETM,VQ::'155!GETM0A>>>+FAq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'   