o
    i                     @   s   dddZ dddZdS )Tc                 C   s"   |r
|   |kr
| S |  |S )N)size
contiguousview)tensorr   check_same_size r   U/home/ubuntu/vllm_env/lib/python3.10/site-packages/torch/autograd/_functions/utils.py
maybe_view   s   r   c                 C   s   |r
|   |kr
| S |  t| }dd tt|   |d  |D }t|D ]	}| jddd} q(|D ]	}| j|dd} q4| S )Nc                 S   s    g | ]\}\}}||kr|qS r   r   ).0dimexpandedoriginalr   r   r   
<listcomp>   s
    
z"maybe_unexpand.<locals>.<listcomp>    F)keepdimT)r   r
   len	enumerateziprangesum)r   old_sizer   num_unsqueezedexpanded_dims_r
   r   r   r   maybe_unexpand
   s   r   N)T)r   r   r   r   r   r   <module>   s   
