
    ;i                         S SK Jr  S SKrS SKrSSKJr  SSKJr  S\R                  4S jr	\" S	S
5      S\R                  S\R                  S\
S\S\\
   S\R                  S\R                  4S j5       rg)    )SequenceN   )register_kernel   )GAUDI_SW_VERweightc                 .    U S-  S-	  nU S-  S-  nX-  nU$ )N          )r   out_1out_2outs       m/home/dmtnaga/Documents/work/airagagent/rag_env/lib/python3.13/site-packages/bitsandbytes/backends/hpu/ops.py_reverse_4bit_compress_formatr      s*    d]q Ec\aE
-CJ    zbitsandbytes::dequantize_4bithpuAabsmax	blocksize
quant_typeshapedtypereturnc                   ^ ^ [         R                  " U5        [         R                  " TS:H  U4S j5        [         R                  " T R                  [         R                  [         R
                  4;   U 4S j5        T R                  [         R
                  :w  a  T R                  [         R
                  5      m T R                  S5      m [        (       a3  [        R                  S:  d  [        R                  S:  a  [        T 5      m [         R                  R                  R                  T UR                  U5      U[         R"                  " U5      4US9nUR                  U5      nU$ )Nnf4c                     > ST  3$ )Nzquant_type must be nf4, got r   )r   s   r   <lambda>_.<locals>.<lambda>   s    0LZL.Yr   c                  "   > ST R                    3$ )Nz2quant_storage supports uint8 or bfloat16, but got )r   )r   s   r   r   r        s    DQWWINr         )	out_shape	out_dtype)torch_check_is_size_checkr   bfloat16uint8viewreshaper   majorminorr   opsr   dequantize_nf4tomathprod)r   r   r   r   r   r   out_dqoutputs   `  `    r   _r7      s    
#	LLu$&YZ	LL	ENNEKK00N 	ww%++FF5;;			"A|++a/<3E3E3J)!, YY]]))			%99U#% * F ^^E"FMr   )collections.abcr   r3   r'   _opsr   utilsr   Tensorr   intstrr   r7   r   r   r   <module>r>      s    $   #  
%,,  0%8#||#LL# # 	#
 C=# ;;# \\# 9#r   