o
    * i                     @   s\   d dl Z d dlZd dlZe jdddG dd de jZe jdddG dd	 d	e jZdS )
    NZpd_op_static_reluZumprime)tagc                   @   ,   e Zd Zdd Zdd Zdd Zdd Zd	S )
PdOpReluAccessTopoPassc                 C      t tjd| _d S N0pirZa_f64apZ	DataValueZfloat64zeroself r   j/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/paddle/apy/matmul_pass/umprime.py__init__      zPdOpReluAccessTopoPass.__init__c                 C   sD   | d|_|g |jg | d|_||j|jg|jg d S )N
pd_op.fullpd_op.maximum)ap_native_opfull_opZintermediate
maximum_opinputoutputr   otr   r   r   source_pattern   s   z%PdOpReluAccessTopoPass.source_patternc                 C      |j j| jkS Nr   valuer   r   r   r   r   
constraint      z!PdOpReluAccessTopoPass.constraintc                 C   $   | d|_||jg|jg d S Nz
pd_op.relu)r   	result_opr   r   r   r   r   r   result_pattern"      z%PdOpReluAccessTopoPass.result_patternN__name__
__module____qualname__r   r   r!   r&   r   r   r   r   r      s
    r   Zpd_op_dynamic_reluc                   @   r   )
PdOpDynReluAccessTopoPassc                 C   r   r   r   r   r   r   r   r   )   r   z"PdOpDynReluAccessTopoPass.__init__c                 C   s   | d|_|g |jg | d|_||jg|jg | d|_||j|jg|jg | d|_||j	|jg|j
g d S )Nr   zcinn_op.generate_shapezpd_op.expandr   )r   r   Zintermediate0Zgenerate_shape_opZinput0Zintermediate1Z	expand_opZintermediate2r   input1r   r   r   r   r   r   ,   s   z(PdOpDynReluAccessTopoPass.source_patternc                 C   r   r   r   r   r   r   r   r!   6   r"   z$PdOpDynReluAccessTopoPass.constraintc                 C   r#   r$   )r   r%   r-   r   r   r   r   r   r&   9   r'   z(PdOpDynReluAccessTopoPass.result_patternNr(   r   r   r   r   r,   '   s
    
r,   )Zaccess_topo_drrr
   r	   Zregister_drr_passZDrrPassr   r,   r   r   r   r   <module>   s   