+
    &jQ                     l    ^ RI t ^ RI Ht ^ RIHt ^ RIHt ^ RIHtHtH	t	H
t
 R.tR t ! R R]4      tR# )	    NTensor)constraints)Distribution)broadcast_alllazy_propertylogits_to_probsprobs_to_logitsBinomialc                 p    V P                  ^ R7      V ,           V P                  ^ R7      ,
          ^,          # )r   )minmax)clamp)xs   &t/Users/jameslopez/projects/CWCArchive/cwc-podcast/.venv/lib/python3.14/site-packages/torch/distributions/binomial.py_clamp_by_zeror      s+    GGGNQQ/144    c                     a a ] tR t^t oRtR]P                  R]P                  R]P                  /t	Rt
RV3R lV 3R llltRV 3R lltR	 t]P                  ! R^ R
7      R 4       t]V3R lR l4       t]V3R lR l4       t]V3R lR l4       t]V3R lR l4       t]V3R lR l4       t]V3R lR l4       t]P2                  ! 4       3R ltR tR tRR ltRtVtV ;t # ) r   a  
Creates a Binomial distribution parameterized by :attr:`total_count` and
either :attr:`probs` or :attr:`logits` (but not both). :attr:`total_count` must be
broadcastable with :attr:`probs`/:attr:`logits`.

Example::

    >>> # xdoctest: +IGNORE_WANT("non-deterministic")
    >>> m = Binomial(100, torch.tensor([0 , .2, .8, 1]))
    >>> x = m.sample()
    tensor([   0.,   22.,   71.,  100.])

    >>> m = Binomial(torch.tensor([[5.], [10.]]), torch.tensor([0.5, 0.8]))
    >>> x = m.sample()
    tensor([[ 4.,  5.],
            [ 7.,  6.]])

Args:
    total_count (int or Tensor): number of Bernoulli trials
    probs (Tensor): Event probabilities
    logits (Tensor): Event log-odds
total_countprobslogitsTc          
      p   < V ^8  d   QhRS[ S[,          RS[ R,          RS[ R,          RS[R,          RR/# )   r   r   Nr   validate_argsreturn)r   intbool)format__classdict__s   "r   __annotate__Binomial.__annotate__7   sT     C Cc\C }C 	C
 d{C 
Cr   c                  < VR J VR J 8X  d   \        R4      hVeD   \        W4      w  V n        V n        V P                  P	                  V P                  4      V n        MQVf   \        R4      h\        W4      w  V n        V n        V P                  P	                  V P                  4      V n        Ve   V P                  MV P                  V n        V P                  P                  4       p\        SV `)  WTR7       R # )Nz;Either `probs` or `logits` must be specified, but not both.zlogits is unexpectedly Noner   )
ValueErrorr   r   r   type_asAssertionErrorr   _paramsizesuper__init__)selfr   r   r   r   batch_shape	__class__s   &&&&& r   r+   Binomial.__init__7   s     TMv~.M  
 k1	 
#//77

CD~$%BCC
 k2	 #//77DD$)$5djj4;;kk&&(Br   c                  < V P                  \        V4      p\        P                  ! V4      pV P                  P                  V4      Vn        R V P                  9   d2   V P                  P                  V4      Vn        VP                  Vn        RV P                  9   d2   V P                  P                  V4      Vn	        VP                  Vn        \        \        V`/  VRR7       V P                  Vn        V# )r   r   Fr$   )_get_checked_instancer   torchSizer   expand__dict__r   r(   r   r*   r+   _validate_args)r,   r-   	_instancenewr.   s   &&& r   r4   Binomial.expandW   s    ((9=jj-**11+>dmm#

))+6CICJt}}$++K8CJCJh%k%G!00
r   c                :    V P                   P                  ! V/ VB # N)r(   r8   )r,   argskwargss   &*,r   _newBinomial._newe   s    {{///r   )is_discrete	event_dimc                D    \         P                  ! ^ V P                  4      # )r   )r   integer_intervalr   r,   s   &r   supportBinomial.supporth   s     ++At/?/?@@r   c                    < V ^8  d   QhRS[ /# r   r   r   )r   r    s   "r   r!   r"   n   s     - -f -r   c                <    V P                   V P                  ,          # r;   r   r   rD   s   &r   meanBinomial.meanm   s    $**,,r   c                    < V ^8  d   QhRS[ /# rH   r   )r   r    s   "r   r!   r"   r   s     Y Yf Yr   c                    V P                   ^,           V P                  ,          P                  4       P                  V P                   R7      # )   r   )r   r   floorr   rD   s   &r   modeBinomial.modeq   s9    !!A%3::<BBtGWGWBXXr   c                    < V ^8  d   QhRS[ /# rH   r   )r   r    s   "r   r!   r"   v   s     @ @& @r   c                l    V P                   V P                  ,          ^V P                  ,
          ,          # rO   rJ   rD   s   &r   varianceBinomial.varianceu   s$    $**,DJJ??r   c                    < V ^8  d   QhRS[ /# rH   r   )r   r    s   "r   r!   r"   z   s     ; ; ;r   c                0    \        V P                  R R7      # T)	is_binary)r
   r   rD   s   &r   r   Binomial.logitsy   s    tzzT::r   c                    < V ^8  d   QhRS[ /# rH   r   )r   r    s   "r   r!   r"   ~   s     < <v <r   c                0    \        V P                  R R7      # rZ   )r	   r   rD   s   &r   r   Binomial.probs}   s    t{{d;;r   c                4   < V ^8  d   QhRS[ P                  /# rH   )r2   r3   )r   r    s   "r   r!   r"      s     " "UZZ "r   c                6    V P                   P                  4       # r;   )r(   r)   rD   s   &r   param_shapeBinomial.param_shape   s    {{!!r   c                .   V P                  V4      p\        P                  ! 4       ;_uu_ 4        \        P                  ! V P                  P                  V4      V P                  P                  V4      4      uuR R R 4       #   + '       g   i     R # ; ir;   )_extended_shaper2   no_gradbinomialr   r4   r   )r,   sample_shapeshapes   && r   sampleBinomial.sample   sZ    $$\2]]__>>  ''.

0A0A%0H ___s   A	BB	c           	        V P                   '       d   V P                  V4       \        P                  ! V P                  ^,           4      p\        P                  ! V^,           4      p\        P                  ! V P                  V,
          ^,           4      pV P                  \        V P                  4      ,          V P                  \        P                  ! \        P                  ! \        P                  ! V P                  4      ) 4      4      ,          ,           V,
          pWP                  ,          V,
          V,
          V,
          # rU   )
r6   _validate_sampler2   lgammar   r   r   log1pexpabs)r,   valuelog_factorial_nlog_factorial_klog_factorial_nmknormalize_terms   &&    r   log_probBinomial.log_prob   s    !!%(,,t'7'7!';<,,uqy1!LL)9)9E)AA)EF ~dkk::UYY		$++8N7N-O!PPQ 	 KK/14EEV	
r   c                6   \        V P                  P                  4       4      pV P                  P                  4       V8X  g   \	        R 4      hV P                  V P                  R4      4      p\        P                  ! V4      V,          P                  ^ 4      ) # )z5Inhomogeneous total count not supported by `entropy`.F)
r   r   r   r   NotImplementedErrorrw   enumerate_supportr2   rp   sum)r,   r   rw   s   &  r   entropyBinomial.entropy   s    $**..01##%4%G  ==!7!7!>?8$x/44Q777r   c                   \        V P                  P                  4       4      pV P                  P                  4       V8X  g   \	        R 4      h\
        P                  ! ^V,           V P                  P                  V P                  P                  R7      pVP                  RR\        V P                  4      ,          ,           4      pV'       d#   VP                  RV P                  ,           4      pV# )z?Inhomogeneous total count not supported by `enumerate_support`.)dtypedevice)rU   )r   r   r   r   rz   r2   aranger(   r   r   viewlen_batch_shaper4   )r,   r4   r   valuess   &&  r   r{   Binomial.enumerate_support   s    $**..01##%4%Q  O4;;#4#4T[[=O=O
 UTC0A0A,B%BBC]]54+<+<#<=Fr   )r(   r   r   r   )rO   NNNr;   )T)!__name__
__module____qualname____firstlineno____doc__r   nonnegative_integerunit_intervalrealarg_constraintshas_enumerate_supportr+   r4   r>   dependent_propertyrE   propertyrK   rQ   rV   r   r   r   rb   r2   r3   rj   rw   r}   r{   __static_attributes____classdictcell____classcell__)r.   r    s   @@r   r   r      s    2 	{66**+""O
 !C C@0 ##BA CA - - Y Y @ @ ; ; < < " " #(**, 
(8 r   )r2   r   torch.distributionsr    torch.distributions.distributionr   torch.distributions.utilsr   r   r	   r
   __all__r   r    r   r   <module>r      s9      + 9  ,5
_| _r   