
    9i:              (          S SK Jr  S SKJr  S SKJr  S SKrSr\" \R                  S5      (       a/  Sr\R                  R                  r
\R                  R                  rO,\R                  R                  r
\R                  R                  r\R                  R                  SS	5        \
" S5        SjS
\R                  S\R                  S\R                  S\R                  S\R                  S\\R                     S\\R                     S\\R                  \\R                     4   4S jj5       r\R                  R                  SS5        \
" S5        SjS
\R                  S\R                  S\R                  S\R                  S\\R                     S\\R$                     S\R                  4S jj5       r\R                  R                  SS5        \
" S5      S
\R                  S\R                  4S j5       r\R                  R                  SS5        \
" S5      S
\R                  S\R                  S\R                  4S  j5       r\R                  R                  S!S"5        \
" S!5      SkS
\R                  4S# jj5       r\R                  R                  S$S%5        \
" S$5      S
\R                  S&\R                  S\R                  4S' j5       r\" S$S(5      S
\R                  S&\R                  4S) j5       r\R                  R                  S*S+5        \
" S*5        SjS
\R                  S\R                  S\R                  S\\R$                     S\\R                     S\R                  4S, jj5       r\R                  R                  S-S.5        \
" S-5       SkS
\R                  S\\R                  \R                  \R                  \R                  \\R                     4   4S/ jj5       r\R                  R                  S0S15        \
" S05      S
\R                  S2\R                  S3\S4\S5\\   S\R$                  S\R                  4S6 j5       r\R                  R                  S7S85        \
" S75      S
\R                  S2\R                  S3\S4\S5\\   S\R$                  S\R                  SS4S9 j5       r\R                  R                  S:S;5        \
" S:5      S
\R                  S3\S4\S<\R$                  S\\R                  \R                  4   4
S= j5       r\R                  R                  S>S?5        \
" S>5      S
\R                  S2\R                  S@\R                  S3\S\R$                  S\R                  4SA j5       r\R                  R                  SBSC5        \
" SB5      S
\R                  S2\R                  S@\R                  S3\S\R$                  S\R                  4SD j5       r\R                  R                  SESF5        \
" SE5      S
\R                  S@\R                  S3\S\\R                  \R                  4   4SG j5       r\R                  R                  SHSI5        \
" SH5      S
\R                  S\R                  SJ\\   S2\R                  S@\R                  S3\S\R                  4SK j5       r\R                  R                  SLSM5        \
" SL5      S
\R                  S\R                  SJ\\   S2\R                  S@\R                  S3\S\R                  SS4SN j5       r\R                  R                  SOSP5        \
" SO5       SlSQ\SR\R                  SS\R                  ST\R                  SU\\R                     SV\\R                     SW\SX\SY\SZ\S[\S\\S]\S^\S_\S`\Sa\SS4$Sb jj5       r\R                  R                  ScSd5        \
" Sc5       SlSQ\SR\R                  SS\R                  ST\R                  SU\\R                     SY\SZ\S[\S\\S]\S_\S`\Se\R                  Sf\\R                     Sg\R                  Sh\\R                     S^\Sa\SS4&Si jj5       rg)m    )Sequence)prod)OptionalNFregister_fakeTz"bitsandbytes::int8_mixed_scaled_mmz{(Tensor A, Tensor CA, Tensor CB, Tensor SCA, Tensor SCB, Tensor? outlier_cols=None, Tensor? bias=None) -> (Tensor, Tensor?)ACACBSCASCBoutlier_colsbiasreturnc                 0   / UR                   S S QUR                   S   P7n[        R                  " XpR                  U R                  S9n[        R
                  R                  5       R                  5       nU R                  U[        R                  S9n	X4$ )Nr   devicedtyper   )
shapetorchemptyr   r   libraryget_ctxnew_dynamic_size	new_emptyint64)
r   r   r	   r
   r   r   r   shapeCoutsubAs
             a/home/dmtnaga/Documents/work/airagagent/rag_env/lib/python3.13/site-packages/bitsandbytes/_ops.py_r!      sv     +rxx}*bhhqk*F
++fXXQWW
=C==((*;;=L;;|5;;;7D9    zbitsandbytes::int8_scaled_mmzm(Tensor A, Tensor B, Tensor row_stats, Tensor col_stats, Tensor? bias=None, ScalarType? dtype=None) -> TensorB	row_stats	col_statsr   c                     / U R                   S S QUR                   S   P7n[        R                  " X`R                  U=(       d    [        R                  S9$ )Nr   r   r   )r   r   r   r   float16)r   r#   r$   r%   r   r   r   s          r    r!   r!   4   sC     )qwws|(QWWQZ(F;;vhhe6Lu}}MMr"   z bitsandbytes::int8_linear_matmulz(Tensor A, Tensor B) -> Tensorc                 j   [         R                  " U R                  [         R                  :H  S 5        [         R                  " UR                  [         R                  :H  S 5        / U R                  S S QUR                  S   P7n[         R
                  " X R                  [         R                  S9$ )Nc                      gNzA must be int8 r+   r"   r    <lambda>_.<locals>.<lambda>I       0@r"   c                      gNzB must be int8r+   r+   r"   r    r,   r-   J   r.   r"   r   r   r   )r   _checkr   int8r   r   r   int32)r   r#   r   s      r    r!   r!   G   st    	LLEJJ&(@A	LLEJJ&(@A(qwws|(QWWQZ(F;;vhhekkBBr"   z$bitsandbytes::int8_linear_matmul.outz'(Tensor A, Tensor B, Tensor! out) -> ()r   c                 <  ^ ^^ / T R                   S S QUR                   S   P7m[        R                  " T R                  [        R                  :H  S 5        [        R                  " UR                  [        R                  :H  S 5        [        R                  " TR                   T:H  UU4S j5        [        R                  " TR
                  T R
                  :H  U U4S j5        [        R                  " TR                  [        R                  :H  U4S j5        g )Nr   r   c                      gr*   r+   r+   r"   r    r,   r-   [   r.   r"   c                      gr0   r+   r+   r"   r    r,   r-   \   r.   r"   c                  (   > ST ST R                    3$ NExpected out.shape == , got r   )r   r   s   r    r,   r-   ]   s    0FvhfUXU^U^T_.`r"   c                  <   > ST R                    STR                    3$ NzExpected out.device == r:   r   r   r   s   r    r,   r-   ^        3J188*TZ[^[e[eZf1gr"   c                  "   > ST R                    3$ )Nz!Expected out.dtype == int32, got r   )r   s   r    r,   r-   _   s    5VWZW`W`Va3br"   )r   r   r1   r   r2   r   r3   )r   r#   r   r   s   ` `@r    r!   r!   W   s    (qwws|(QWWQZ(F	LLEJJ&(@A	LLEJJ&(@A	LLf$&`a	LLqxx')gh	LLekk)+bcr"   z#bitsandbytes::int8_vectorwise_quantz<(Tensor A, float threshold=0.0) -> (Tensor, Tensor, Tensor?)c                    [         R                  " U R                  U R                  [         R                  S9n[         R                  " [        U R                  S S 5      U R                  [         R                  S9nUS:X  a  X#S 4$ [         R                  R                  5       R                  5       nX#U R                  U[         R                  S94$ )Nr   r           r   )r   r   r   r   r2   r   float32r   r   r   r   r   )r   	thresholdout_rowr$   r   s        r    r!   r!   h   s    kk!''!((%**EGD".qxxu}}UIC4''==((*;;=Lq{{<u{{{KKKr"   z%bitsandbytes::int8_vectorwise_dequantz"(Tensor A, Tensor stats) -> Tensorstatsc                     [         R                  " U R                  [         R                  :H  S 5        [         R                  " U [         R
                  S9$ )Nc                      gr*   r+   r+   r"   r    r,   r-   z   r.   r"   r   )r   r1   r   r2   
empty_likerD   r   rG   s     r    r!   r!   x   s5    	LLEJJ&(@AAU]]33r"   defaultc                 0    XR                  SS5      -  S-  $ )Nr      g   @ ?)viewrK   s     r    r!   r!      s     zz"a  #777r"   zbitsandbytes::int8_mm_dequantzc(Tensor A, Tensor row_stats, Tensor col_stats, ScalarType? dtype=None, Tensor? bias=None) -> Tensorc                     [         R                  " U R                  [         R                  :H  S 5        [         R                  " X=(       d    [         R
                  S9$ )Nc                      g)NzA must be int32r+   r+   r"   r    r,   r-      s    1Br"   r   )r   r1   r   r3   rJ   r'   )r   r$   r%   r   r   s        r    r!   r!      s:     
LLEKK')BCA%;emm<<r"   zbitsandbytes::int8_double_quantzL(Tensor A, float threshold=0.0) -> (Tensor, Tensor, Tensor, Tensor, Tensor?)c                 *   [         R                  " U [         R                  S9n[         R                  " U [         R                  S9n[         R                  " [	        U R
                  S S 5      U R                  [         R                  S9n[         R                  " U R
                  S   U R                  [         R                  S9n[         R                  R                  5       R                  5       nU R                  U[         R                  S9nX#XEU4$ )Nr   r   r   )r   rJ   r2   r   r   r   r   rD   r   r   r   r   r   )r   rE   rF   out_colr$   r%   	outlier_nr   s           r    r!   r!      s    
 q

3Gq

3GD".qxxu}}UIAGGBKNI%%'88:I;;y;<LY<??r"   zbitsandbytes::dequantize_4bitza(Tensor A, Tensor absmax, int blocksize, str quant_type, int[] shape, ScalarType dtype) -> Tensorabsmax	blocksize
quant_typer   c                 l    [         R                  " U5        [         R                  " XEU R                  S9$ )N)r   r   )r   _check_is_sizer   r   )r   rU   rV   rW   r   r   s         r    r!   r!      s'     
#;;u!((;;r"   z!bitsandbytes::dequantize_4bit.outzj(Tensor A, Tensor absmax, int blocksize, str quant_type, int[] shape, ScalarType dtype, Tensor! out) -> ()c                 B  ^ ^^^ [         R                  " U5        [         R                  " TR                  T:H  UU4S j5        [         R                  " TR                  T R                  :H  U U4S j5        [         R                  " TR
                  T:H  UU4S j5        g )Nc                  (   > ST ST R                    3$ r8   r;   )r   r   s   r    r,   r-          /EeWFSVS\S\R]-^r"   c                  <   > ST R                    STR                    3$ r=   r>   r?   s   r    r,   r-      r@   r"   c                  (   > ST  STR                    3$ NzExpected out.dtype == r:   r   r   r   s   r    r,   r-      r\   r"   )r   rY   r1   r   r   r   )r   rU   rV   rW   r   r   r   s   `   ```r    r!   r!      s_     
#	LLe#%^_	LLqxx')gh	LLe#%^_r"   zbitsandbytes::quantize_4bitzW(Tensor A, int blocksize, str quant_type, ScalarType quant_storage) -> (Tensor, Tensor)quant_storagec                 (   [         R                  " U5        U R                  5       nXA* -  * n[         R                  " U4U R                  [         R
                  S9n[         R                  " US-   UR                  S-  -  S4U R                  US9nXv4$ )Nr   rN      )r   rY   numelr   r   rD   itemsize)r   rV   rW   ra   nblocksrU   r   s           r    r!   r!      s}     
#		AJF[[&1885==IF
++A=#9#9A#=>B188[h
iC;r"   z"bitsandbytes::dequantize_blockwisezQ(Tensor A, Tensor absmax, Tensor code, int blocksize, ScalarType dtype) -> Tensorcodec                    ^  [         R                  " U5        [         R                  " T R                  [         R                  :H  U 4S j5        [         R
                  " T US9$ )Nc                  "   > ST R                    3$ NzA must be uint8, got r   r   s   r    r,   r-          3H	1Rr"   r   )r   rY   r1   r   uint8rJ   )r   rU   rh   rV   r   s   `    r    r!   r!      s@    	#	LLEKK')RSAU++r"   z&bitsandbytes::dequantize_blockwise.outzZ(Tensor A, Tensor absmax, Tensor code, int blocksize, ScalarType dtype, Tensor! out) -> ()c                   ^ ^^ [         R                  " U5        [         R                  " T R                  [         R                  :H  U 4S j5        [         R                  " TR
                  T R
                  :H  U U4S j5        [         R                  " TR                  T R                  :H  U U4S j5        [         R                  " TR                  T:H  UU4S j5        g )Nc                  "   > ST R                    3$ rk   r   rl   s   r    r,   r-      rm   r"   c                  <   > ST R                    STR                    3$ r8   r;   r?   s   r    r,   r-           1GyPVWZW`W`Va/br"   c                  <   > ST R                    STR                    3$ r=   r>   r?   s   r    r,   r-     r@   r"   c                  (   > ST  STR                    3$ r_   r   r`   s   r    r,   r-     r\   r"   )r   rY   r1   r   rn   r   r   )r   rU   rh   rV   r   r   s   `   ``r    r!   r!      s     
#	LLEKK')RS	LLagg%'bc	LLqxx')gh	LLe#%^_r"   z bitsandbytes::quantize_blockwisez:(Tensor A, Tensor code, int blocksize) -> (Tensor, Tensor)c                    [         R                  " U5        U R                  5       nX2* -  * n[         R                  " U4U R                  [         R
                  S9n[         R                  " U [         R                  S9nXe4$ )Nr   r   )r   rY   rd   r   r   rD   rJ   rn   )r   rh   rV   rf   rg   rU   r   s          r    r!   r!     sa    	#		AJF[[&1885==IF


1EKK
0C;r"   zbitsandbytes::gemv_4bitzW(Tensor A, Tensor B, int[] shapeB, Tensor absmax, Tensor code, int blocksize) -> TensorshapeBc                   ^ ^ [         R                  " U5        [         R                  " T R                  5       T R	                  S5      :H  U 4S j5        [         R                  " T R
                  [         R                  [         R                  [         R                  4;   U 4S j5        [         R                  " TR
                  [         R                  [         R                  [         R                  [         R                  4;   U4S j5        / T R                  S S QUS   P7n[         R                  " UT R                  T R
                  S9$ )Nr   c                  "   > ST R                    3$ Nz5A must be a vector with leading dimensions of 1, got r;   rl   s   r    r,   r-         4ijkjqjqir2sr"   c                  "   > ST R                    3$ Nz-A must be float16, bfloat16, or float32, got r   rl   s   r    r,   r-          ?yIr"   c                  "   > ST R                    3$ NzNB must be backed by storage of type uint8, bfloat16, float16, or float32, got r   r#   s   r    r,   r-   $      `abahah`ijr"   r   r   )r   rY   r1   rd   sizer   r'   bfloat16rD   rn   r   r   r   )r   r#   rv   rU   rh   rV   r   s   ``     r    r!   r!     s     
#	LLaffRj(*st	LL	EMM5>>5==AAI 
LL	EKKNNj 'aggcrl&F1I&E;;uQXXQWW==r"   zbitsandbytes::gemv_4bit.outz`(Tensor A, Tensor B, int[] shapeB, Tensor absmax, Tensor code, int blocksize, Tensor! out) -> ()c                 j  ^ ^^^ [         R                  " U5        [         R                  " T R                  5       T R	                  S5      :H  U 4S j5        [         R                  " T R
                  [         R                  [         R                  [         R                  4;   U 4S j5        [         R                  " TR
                  [         R                  [         R                  [         R                  [         R                  4;   U4S j5        [         R                  " TR                  / T R                  S S QTS   P7:H  U UU4S j5        [         R                  " TR                  T R                  :H  U U4S j5        [         R                  " TR
                  T R
                  :H  U U4S j5        g )	Nr   c                  "   > ST R                    3$ ry   r;   rl   s   r    r,   r-   ;  rz   r"   c                  "   > ST R                    3$ r|   r   rl   s   r    r,   r-   >  r}   r"   c                  "   > ST R                    3$ r   r   r   s   r    r,   r-   B  r   r"   r   c                  R   > S/ T R                   S S QTS   P7 STR                    3$ )Nr9   r   r   r:   r;   )r   r   rv   s   r    r,   r-   F  s1    ()C1773B<)C)C(DF399+Vr"   c                  <   > ST R                    STR                    3$ r=   r>   r?   s   r    r,   r-   H  r@   r"   c                  <   > ST R                    STR                    3$ r_   r   r?   s   r    r,   r-   I  rr   r"   )r   rY   r1   rd   r   r   r'   r   rD   rn   r   r   )r   r#   rv   rU   rh   rV   r   s   ```   `r    r!   r!   0  s	    
#	LLaffRj(*st	LL	EMM5>>5==AAI 
LL	EKKNNj 
LL		/qwws|/VAY//V 
LLqxx')gh	LLagg%'bcr"   z$bitsandbytes::optimizer_update_32bita-  (str optimizer_name, Tensor(a0!) g, Tensor(a1!) p, Tensor(a2!) state1, Tensor(a3!)? state2, Tensor(a4!)? unorm_vec, float max_unorm, float param_norm, float beta1, float beta2, float beta3, float alpha, float eps, float weight_decay, int step, float lr, float gnorm_scale, bool skip_zeros=False) -> ()optimizer_namegpstate1state2	unorm_vec	max_unorm
param_normbeta1beta2beta3alphaepsweight_decaysteplrgnorm_scalec                   ^^ [         R                  " TR                  5       TR                  5       :H  UU4S j5        [         R                  [         R                  [         R
                  /n[         R                  " TR                  U;   U4S j5        [         R                  " TR                  TR                  :H  UU4S j5        g )Nc                  L   > ST R                  5        STR                  5        3$ Nz3g and p must have the same number of elements, got z and rd   r   r   s   r    r,   r-   i  %    Eaggi[PUVWV]V]V_U`ar"   c                  "   > ST R                    3$ Nz-g must be bfloat16, float16, or float32, got r   r   s   r    r,   r-   o  r}   r"   c                  <   > ST R                    STR                    3$ Nz9Expected all tensors to have the same dtype, got g.dtype=z
, p.dtype=r   r   s   r    r,   r-   s       KAGG9T^_`_f_f^ghr"   )r   r1   rd   r'   r   rD   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   
skip_zeroscompute_dtypess    ``                r    r!   r!   R  s~    * 
LL		QWWYa mmU^^U]]CN	LL	>!I 
LL	177hr"   z-bitsandbytes::optimizer_update_8bit_blockwiseaD  (str optimizer_name, Tensor(a0!) g, Tensor(a1!) p, Tensor(a2!) state1, Tensor(a3!)? state2, float beta1, float beta2, float beta3, float alpha, float eps, int step, float lr, Tensor(a4!) qmap1, Tensor(a5!)? qmap2, Tensor(a6!) absmax1, Tensor(a7!)? absmax2, float weight_decay, float gnorm_scale, bool skip_zeros=False) -> ()qmap1qmap2absmax1absmax2c                   ^^^^^^^^ [         R                  " TR                  5       TR                  5       :H  UU4S j5        [         R                  [         R                  [         R
                  /n[         R                  " TR                  U;   U4S j5        [         R                  " TR                  TR                  :H  UU4S j5        [         R                  " TR                  [         R                  :H  U4S j5        [         R                  " TR                  TR                  s=:H  =(       a    [         R
                  :H  Os  UU4S j5        Tb  [         R                  " TR                  [         R                  :H  U4S j5        [         R                  " TR                  TR                  s=:H  =(       a    [         R
                  :H  Os  UU4S j5        g g )Nc                  L   > ST R                  5        STR                  5        3$ r   r   r   s   r    r,   r-     r   r"   c                  "   > ST R                    3$ r   r   r   s   r    r,   r-     r}   r"   c                  <   > ST R                    STR                    3$ r   r   r   s   r    r,   r-     r   r"   c                  "   > ST R                    3$ )Nzstate1 must be uint8, got r   )r   s   r    r,   r-     s    ,V\\N;r"   c                  <   > STR                    ST R                    3$ )Nz:Expected qmap1 and absmax1 to be float32, got qmap1.dtype=z, absmax1.dtype=r   )r   r   s   r    r,   r-     s     LU[[MYijqjwjwixyr"   c                  "   > ST R                    3$ )Nzstate2 must be uint8, got r   )r   s   r    r,   r-     s    0?r"   c                  <   > STR                    ST R                    3$ )Nz:Expected qmap2 and absmax2 to be float32, got qmap2.dtype=z, absmax2.dtype=r   )r   r   s   r    r,   r-     s$    PQVQ\Q\P]]mnun{n{m|}r"   )r   r1   rd   r'   r   rD   r   rn   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s    ````       ````    r    r!   r!   }  s%   , 
LL		QWWYa mmU^^U]]CN	LL	>!I 
LL	177h 
LL#; 
LLw}}555y LLEKK'?	
 	KK7==99EMM9}	
 r"   )NN)rC   )F)collections.abcr   mathr   typingr   r   _IS_TORCH_GTE_24hasattrr   r   register_kernelimpl_abstractimpldefineTensortupler!   r   intstrfloatr+   r"   r    <module>r      s
   $    
5==/**MM//Mmm33O MM//Mmm((O   ( B 34 ,0#'|| 	 
	
 
 5<<( 5<<
  5<<%,,//0 5(   "s -. $(#'	N||	N||	N ||	N ||		N
 5<<
 	N EKK 	N \\	N /	N   &$ 12C C%,, C 3C   *- 56d d%,, dU\\ d 7d   )B 45	L 	L 6	L   <>b c 674 4ell 4u|| 4 84 8)D8 8ell 8 E8
   #i ./
 $(#'=||=||= ||= EKK 	=
 5<<
 = \\= 0=   %R 01 
@||
@ 5<<u||U\\8ELLCYYZ
@ 2
@   #g ./	<||	<LL	< 	< 		<
 C=	< ;;	< \\	< 0	<   'p 23`||`LL` ` 	`
 C=` ;;` 
` 
` 4`   !] ,-	||	 #	14	EJ[[	
5<<%&	 .	   (W 34, ,u|| ,5<< ,C ,X]XcXc ,hmhtht , 5,   ,` 78`||`"\\`16`JM`V[VaVa`hmhtht` 9`   79u v 12 U\\ c eELLRWR^R^D^>_  3   ] ()>||>>.6sm>EJ\\>Y^YeYe>ru>
\\> *>"   !f ,-d||d||d SMd LL	d
 ,,d d 
d 
d .d6   * t 56& %!!||! ||! LL	!
 U\\"! %! ! ! ! ! ! ! 
! ! !  	!!" #!& 
'! 7!H   3 K >?( '3
3
||3
 ||3
 LL	3

 U\\"3
 3
 3
 3
 3
 
3
 3
 	3
 <<3
 ELL!3
 \\3
  ell#!3
" #3
$ %3
( 
)3
 @3
r"   