
     Ti;                    j   S SK Jr  S SKrS SKJrJr  \R                  " S\R                  -  5      r\R                  " S5      r	 " S S\R                  5      r " S S\R                  5      r\R                  5       r\R                  5       r\R                   " \\/5      r\R$                  " \5      rg)	    )annotationsN)_fusion_utilspatterng       @c                       \ rS rSrS rS rSrg)GeluTanhFusion   c                (   UR                  US5      nUR                  SU5      nUR                  X$5      nUR                  [        U5      nUR	                  U5      nUR                  US5      nUR                  SU5      n	UR                  X)5      n
U
$ )N   gHm?         ?)PowMulAdd_SQRT_TWO_OVER_PITanh)selfopxt1t2t3t4t5t6t7results              c/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnxscript/rewriter/ort_fusions/gelu.pyr   GeluTanhFusion.pattern   s|    VVAq\VVHb!VVA]VV%r*WWR[VVB]VVC_    c                "    UR                  USS9$ Nzcom.microsoft)_domain)FastGelur   r   r   s      r   rewriteGeluTanhFusion.rewrite   s    {{1o{66r    N__name__
__module____qualname____firstlineno__r   r%   __static_attributes__r'   r   r   r   r      s    7r   r   c                       \ rS rSrS rS rSrg)GeluErfFusion   c                    UR                  U[        5      nUR                  U5      nUR                  US5      nUR	                  X%5      nUR	                  US5      nU$ )Ng      ?r   )Div	_SQRT_TWOErfr   r   )r   r   r   r   r   r   r   r   s           r   r   GeluErfFusion.pattern    sO    VVAy!VVBZVVB_VVA]Cr   c                "    UR                  USS9$ r!   )Gelur$   s      r   r%   GeluErfFusion.rewrite)   s    wwq/w22r   r'   Nr(   r'   r   r   r/   r/      s    3r   r/   )
__future__r   mathonnxscript.rewriterr   r   sqrtpir   r3   RewriteRuleClassBaser   r/   rule
_tanh_rule	_erf_ruleRewriteRuleSet
gelu_rulesapply_fusion_rules	fuse_gelur'   r   r   <module>rF      s    #  6IIcDGGm, IIcN	7W11 7$3G00 3   "
 	##Z$;<
,,Z8	r   