o
    0h(                     @   s   d dl Z d dlZd dlmZ d dlmZmZmZ dgZdZ	dZ
dd Zg Zee
d	D ]'Zee
e d
D ]Zee Zee
e dD ]Zee Zee	krOee q@q3q*e  G dd dejZdS )    N)	benchmark)FuzzedParameterFuzzedTensorParameterAliasSpectralOpFuzzer   i @  c                    s&    fddt tt|  d D S )Nc                 3   s    | ]} | V  qd S )N .0ibaser   ]/var/www/vscode/kcb/lib/python3.10/site-packages/torch/utils/benchmark/op_fuzzers/spectral.py	<genexpr>   s    zpower_range.<locals>.<genexpr>   )rangeintmathlog)upper_boundr   r   r   r   power_range   s   &r            c                       s6   e Zd Zejddddededef fddZ  Z	S )	r   F      ?)dtypecudaprobability_regularseedr   r   c                   s   t  jtddddddddd td	D d
d td	D  fddtd	D dd td	D gtdddddddd||d
g|d d S )Nndimg333333?g?)r   r   r   T)distributionstrictc                 S   s"   g | ]}t d | ttddqS )k_any_
loguniform)nameminvalmaxvalr    )r   MIN_DIM_SIZEMAX_DIM_SIZEr	   r   r   r   
<listcomp>.   s    z-SpectralOpFuzzer.__init__.<locals>.<listcomp>r   c                 S   s(   g | ]}t d | dd tD dqS )
k_regular_c                 S   s   i | ]	}|d t t qS )r   )lenREGULAR_SIZES)r
   sizer   r   r   
<dictcomp>9   s    z8SpectralOpFuzzer.__init__.<locals>.<listcomp>.<dictcomp>r$   r    )r   r,   r	   r   r   r   r)   6   s    c              	      s@   g | ]}t d | td|  td| d  iddqS )kr*   r"   r   T)r$   r    r!   )r   r   r	   r   r   r   r)   <   s    c              
   S   s*   g | ]}t d | dddddddqS )step_g?gQ?g{Gz?)r   r         r   r/   )r   r	   r   r   r   r)   H   s    x)k0k1k2)step_0step_1step_2g      ?i   i   l        )
r$   r-   stepsprobability_contiguousmin_elementsmax_elementsmax_allocation_bytesdim_parameterr   r   )
parameterstensorsr   )super__init__r   r   r   )selfr   r   r   r   	__class__r1   r   rE      s<   

.
zSpectralOpFuzzer.__init__)
__name__
__module____qualname__torchfloat64r   boolfloatrE   __classcell__r   r   rG   r   r      s    
)r   rL   torch.utilsr   torch.utils.benchmarkr   r   r   __all__r'   r(   r   r,   r   jijr0   ijkappendsortFuzzerr   r   r   r   r   <module>   s*   
