
    PhA                        d dl Z d dlmZ e j                  d        Ze j                  d        Ze j                  d        Ze j                  d        Ze j                  d        Z	e j                  d        Z
e j                  d        Ze j                  d	        Ze j                  d
        Ze j                  d        Ze j                  d        Ze j                  d        Ze j                  d        Ze j                  d        Ze j                  d        Ze j                  d        Ze j                  d        Ze j                  d        Ze j                  d        Ze j                  defd       Zy)    Nc                 P    | t        j                  dt         j                        z   S )N)   )tlzerosint1xs    iC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\torch/_inductor/triton_helpers.pypromote_to_tensorr      s     rxxbgg&&&    c                 H    t        |       j                  j                         S N)r   dtypeis_floatingr   s    r
   r   r      s    Q%%1133r   c                     | |z  S r    abs     r
   _prod_accumulater          q5Lr   c                 8    t        j                  | |t              S r   )r   reducer   )inputaxiss     r
   prodr      s    99UD"233r   c                 `    | |k  }t        |       r|| | k7  z  }t        j                  || |      S r   r   r   wherer   r   masks      r
   minimumr"      2    q5D1~Q88D!Qr   c                 `    | |kD  }t        |       r|| | k7  z  }t        j                  || |      S r   r   r    s      r
   maximumr%   "   r#   r   c                 8    t        j                  | |t              S r   )r   r   r"   r   dims     r
   min2r)   *       99QW%%r   c                 8    t        j                  | |t              S r   )r   r   r%   r'   s     r
   max2r,   /   r*   r   c                     | |k  }| |k(  }t        |       r| | k7  }||k7  }||xr | z  }||xr |z  }||||k  z  z  }t        j                  || |      t        j                  |||      fS r   r   a_valuea_indexb_valueb_indexr!   equala_isnanb_isnans           r
   minimum_with_indexr6   4       WDwE7W$W$'K'$W$ 	EWw&''D88D'7+RXXdGW-MMMr   c                     | |kD  }| |k(  }t        |       r| | k7  }||k7  }||xr | z  }||xr |z  }||||k  z  z  }t        j                  || |      t        j                  |||      fS r   r   r.   s           r
   maximum_with_indexr9   D   r7   r   c                 <    t        j                  | |f|t              S r   )r   r   r6   valueindexr(   s      r
   min_with_indexr>   T       99eU^S*<==r   c                 <    t        j                  | |f|t              S r   )r   r   r9   r;   s      r
   max_with_indexrA   Y   r?   r   c                 B    | |z
  }|dz   }|||z  z   }|||| |z
  z  z   |fS )Nr   r   )r<   meanm2weightdelta
new_weightnew_means          r
   welford_reducerI   ^   sE    DLE!Jej((H
Ueh&'' r   c                     || z
  }||z   }t        j                  |dk(  d||z        }| ||z  z   ||z   ||z  |z  |z  z   |fS )Ng        )r   r   )	mean_1m2_1weight_1mean_2m2_2weight_2rF   rG   	w2_over_ws	            r
   welford_combinerR   j   se    VOEH$Js*CJ1FGI""teemh.:: r   c                 >    t        j                  | ||f|t              S r   )r   r   rR   )rC   rD   rE   r(   s       r
   welfordrT   v   s    99dB'o>>r   c                 2    t        j                  | |       |S r   )r   device_assert)condmsgrs      r
   device_assert_thenrZ   {   s    T3Hr   c                 Z   t        j                  | |      \  }}}}|j                  t         j                        }|j                  t         j                        }||dz  z  }||z
  }	||	j                  t         j                        z  }|j                  t         j                        |z   }|S )N    )r   	randint4xtouint64int64)
seedoffsetlowhighr0r1r2r3resultsizes
             r
   	randint64rk      s    \\$/NBB	ryy	B	ryy	B28_F#:Ddggbii((FYYrxx 3&FMr   c                     | |z  S r   r   r   s     r
   _any_combinerm      r   r   c                 8    t        j                  | |t              S r   )r   r   rm   r'   s     r
   anyro      s    99Q\**r   OFFSETS_SIZEc                 d   t        j                  ||      }t        j                  |||      }|dz   }|dkD  rv||z   dz  }	|	|k  }
t        j                  ||	z   |
      }|r| |k\  }n| |kD  }t        j                  ||
z  |	dz   |      }t        j                  |||	      }|dz   dz  }|dkD  rv|S )z+
    See [Note: Inductor bucketize op]
    )r   r      )r!   )r   r   fullloadr   )valuesoffsets_ptrindexing_dtyperightrp   BLOCK_SHAPErc   rd   
full_rangemidr!   bucket_upper_boundis_aboves                r
   bucketize_binary_searchr~      s     ((;n
5C77;NCD!J
q.cza\!WW[3%6TB!33H 22Hhhx$a5xx$, 1n*
 q. Jr   )tritontriton.languagelanguager   jitr   r   r   r   r"   r%   r)   r,   r6   r9   r>   rA   rI   rR   rT   rZ   rk   rm   ro   intr~   r   r   r
   <module>r      s     ' '
 4 4   4 4         & & & & N N N N > > > >     ? ?  
     + + 
  r   