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FuzzedTensor   i   c                 c   s   | ]}d | V  qdS )   N .0ir   r   K/tmp/pip-unpacked-wheel-gikjz4vx/torch/utils/benchmark/op_fuzzers/binary.py	<genexpr>	   s     r      c                       s$   e Zd Zejdf fdd	Z  ZS )BinaryOpFuzzerFc                    s   t  j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 dd t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g|d d S )NZdimg333333?g?)r   r      T)distributionstrictc                 S   s"   g | ]}t d | ttddqS )k_any_Z
loguniformnameminvalmaxvalr   )r   _MIN_DIM_SIZE_MAX_DIM_SIZEr	   r   r   r   
<listcomp>    s   z+BinaryOpFuzzer.__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 )g      ?)len_POW_TWO_SIZES)r
   sizer   r   r   
<dictcomp>+   s      z6BinaryOpFuzzer.__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   皙?r   皙?Tr   r   r   r   r   r	   r   r   r   r   .   s     c                 S   s2   g | ]*}t d | td| dddiddqS )Zy_kr!   r"   r   r#   Tr$   r%   r	   r   r   r   r   9   s     c                 S   s8   g | ]0}d D ]&}t | d| dddddddqqS ))xyZ_step_r"   gQ?g{Gz?)r   r         r   r    )r   )r
   r   r   r   r   r   r   E   s    Zrandom_valuer   l    uniformr   r&   )Zk0Zk1Zk2)Zx_step_0Zx_step_1Zx_step_2g      ?i   i   l        )
r   r   stepsprobability_contiguousZmin_elementsZmax_elementsmax_allocation_bytesdim_parameterdtypecudar'   )Zy_k0Zy_k1Zy_k2)r   r   r+   r,   r-   r.   r/   r0   )
parametersZtensorsseed)super__init__r   ranger   )selfr2   r/   r0   	__class__r   r   r4      sX    
@zBinaryOpFuzzer.__init__)__name__
__module____qualname__torchZfloat32r4   __classcell__r   r   r7   r   r      s   r   )Znumpynpr<   Ztorch.utils.benchmarkr   r   r   r   r   r   tupler5   intlog2r   r   r   r   r   r   <module>   s   

