U
    <c_                     @   st   d dl Zd dlZd dlmZmZmZmZ dZdZ	e
dd eeeeeee	d D ZG dd	 d	eZdS )
    N)FuzzerFuzzedParameterParameterAliasFuzzedSparseTensor   i   c                 c   s   | ]}d | V  qdS )   N .0ir   r   R/tmp/pip-unpacked-wheel-gikjz4vx/torch/utils/benchmark/op_fuzzers/sparse_binary.py	<genexpr>	   s     r      c                       s$   e Zd Zejdf fdd	Z  ZS )BinaryOpSparseFuzzerFc                    s   t  jtdddddddtddddddd	d
d tdD dd tdD dd tdD dd tdD tddddddtdddddtdddddg	tdddddddd||d
td d!dddddd||d
g|d" d S )#Ndim_parameterg333333?g?)r   r      T)distributionstrict
sparse_dim皙?namer   r   c                 S   s"   g | ]}t d | ttddqS )k_any_Z
loguniformr   minvalmaxvalr   )r   _MIN_DIM_SIZE_MAX_DIM_SIZEr	   r   r   r   
<listcomp>$   s   z1BinaryOpSparseFuzzer.__init__.<locals>.<listcomp>r   c                 S   s(   g | ] }t d | dd tD dqS )k_pow2_c                 S   s   i | ]}|d t t qS )      ?)len_POW_TWO_SIZES)r
   sizer   r   r   
<dictcomp>/   s      z<BinaryOpSparseFuzzer.__init__.<locals>.<listcomp>.<dictcomp>r   r   )r   r"   r	   r   r   r   r   ,   s
   c              	   S   s<   g | ]4}t d | td| dtd| diddqS )kr   g?r   r   Tr   r   r   r	   r   r   r   r   2   s     c                 S   s.   g | ]&}t d | td| diddqS )Zy_kr&   r    Tr   r'   r	   r   r   r   r   <   s    density)g?g?g{Gz?r%   	coalescedg      ?)TFZrandom_valuer   l    uniformr   x)Zk0Zk1Zk2i   i   )
r   r#   r   r   r(   r)   Zmin_elementsZmax_elementsdtypecuday)Zy_k0Zy_k1Zy_k2)
parametersZtensorsseed)super__init__r   ranger   )selfr0   r,   r-   	__class__r   r   r2      sp    


>zBinaryOpSparseFuzzer.__init__)__name__
__module____qualname__torchZfloat32r2   __classcell__r   r   r5   r   r      s   r   )Znumpynpr:   Ztorch.utils.benchmarkr   r   r   r   r   r   tupler3   intlog2r"   r   r   r   r   r   <module>   s   

