U
    •Ê¹j'  ã                   @   s0   d dl mZmZ d dlmZ eedœdd„ZdS )é    )ÚLazyArgumentÚLazyIrSchema)ÚOptionalCType)ÚschemaÚreturnc                    sî   g }t tdœdd„‰ | jD ]4}|jr4| ˆ |ƒ¡ q| d|j› d|j› �¡ qd dd„ |D ƒ¡}‡ fd	d„| jD ƒ}d
d„ | jD ƒ}d dd„ || D ƒ¡}dt	|ƒ› dt	|| ƒ› d|› d|› d| j
› d| j
› dt	| jƒ› d| j
› d�S )N)Úargr   c                 S   s   t | jtƒrd| j› d�S dS )NZhas_z- ? loctx->GetOutputOp(operand(i++)) : nullptrz loctx->GetOutputOp(operand(i++)))Ú
isinstanceZ	lazy_typer   Úname)r   © r
   ú]/var/www/html/bwave/python/venv/lib/python3.8/site-packages/torchgen/dest/lazy_ts_lowering.pyÚ	get_value
   s    z#ts_lowering_body.<locals>.get_valueú"ú", z
    c                 S   s   g | ]}d |› d�‘qS )zarguments.emplace_back(ú);r
   ©Ú.0Úar
   r
   r   Ú
<listcomp>   s     z$ts_lowering_body.<locals>.<listcomp>c                    s"   g | ]}d |j › dˆ |ƒ› �‘qS ©r   r   ©r	   ©r   r   ©r   r
   r   r      s    c                 S   s    g | ]}d |j › d|j › �‘qS r   r   r   r
   r
   r   r      s    c                 S   s   g | ]}d |› d�‘qS )zkwarguments.emplace_back(r   r
   r   r
   r
   r   r      s   ÿz~    std::vector<torch::jit::NamedValue> arguments;
    std::vector<torch::jit::NamedValue> kwarguments;
    arguments.reserve(z);
    kwarguments.reserve(z);
    size_t i = 0;
    z
    torch::lazy::TSOpVector zb_out = torch::lazy::LowerTSBuiltin(function, op().op, arguments, kwarguments);
    TORCH_CHECK_EQ(z_out.size(), z);

    return z_out;
)r   ÚstrZpositional_argsZis_lazy_valueÚappendr	   ÚjoinZkeyword_valuesZkeyword_scalarsÚlenZ	aten_nameZreturns)r   Zemplace_argumentsr   Zemplace_arguments_strZemplace_kwarg_valuesZemplace_kwarg_scalarsZemplace_kwargumentsr
   r   r   Úts_lowering_body   sL    
ÿ
ÿÿþÿý
üúùøø	÷ør   N)Ztorchgen.api.lazyr   r   Ztorchgen.api.typesr   r   r   r
   r
   r
   r   Ú<module>   s   