
    `ie              
           d dl mZmZ d dlZ	 	 d	dej        deedf         deej                 deej                 fdZdS )
    )TupleOptionalNq_tensoro_shape.dtypedevicec                   	 |                                  	t          |          }t          t          t	          t          t          	          |                    	fd                    }dg|z  }d}|D ]}|||<   |||         z  }t          j        |t          |          ||n| j        ||n| j	                  S )z
    Create an empty tensor with the given shape that mimics the layout/strides of
    the provided `q_tensor` as closely as possible.
    c                     |          S )N )i	q_stridess    w/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/cudnn/native_sparse_attention/utils.py<lambda>z*make_tensor_strided_like.<locals>.<lambda>   s    YWX\     )keyr      N)r   r   )
stridelentuplesortedrangemintorchempty_stridedr   r   )
r   r   r   r   rank_outorderstridescurrentdimr   s
            @r   make_tensor_strided_liker       s     !!I7||H&s3y>>8<<==CYCYCYCYZZZ[[EcHnGG    73<g(eehn+vv	   r   )NN)	typingr   r   r   Tensorintr   r   r    r   r   r   <module>r$      s    " " " " " " " "  $(%)	 l38_ EK  U\"	     r   