
    bIg                    `    d dl mZ d dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d Z G d de      Zy)	    )annotationsN)Base)expect)AI_ONNX_PREVIEW_TRAINING_DOMAINc                    | d||z  z   z  }||z  |z   }	||	|	z  z   }
t        j                  |
      |z   }|||	z  |z  z
  }|j                  |j                        |
j                  |j                        fS )N   )npsqrtastypedtype)rtxghnorm_coefficientepsilondecay_factorr_g_regularizedh_newh_sqrtx_news                `/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/backend/test/case/node/adagrad.pyapply_adagradr      s    	
a!l""	#B$q(1,M--EWWU^g%F]"V++ELL!5<<#899    c                  0    e Zd Zedd       Zedd       Zy)Adagradc            
        d} d}d}t         j                  j                  dg dddg| ||t              }t	        j
                  dt        j                  	      }t	        j
                  d
t        j                  	      }t	        j
                  dgt        j                  	      }t	        j
                  dgt        j                  	      }t	        j
                  dgt        j                  	      }t        |||||| ||      \  }	}
t        ||||||g|	|
gdt         j                  j                  t        d      g       y )NMbP?h㈵>皙?r   )RTXGHX_newH_newinputsoutputsr   r   r   domainr   r         ?             @test_adagradr   r+   r,   nameopset_importsonnxhelper	make_noder   r	   arrayfloat32int64r   r   make_opsetid)r   r   r   noder   r   r   r   r   r   r   s              r   export_adagradzAdagrad.export_adagrad   s    ! {{$$,g&-%2 % 
 HHS

+HHQbhh'HHcU"**-HHdV2::.HHcU"**- %q!Q+Wl
u
 	q!Q?EN(()H!L	
r   c                    d} d}d}t         j                  j                  dg dg d| ||t              }t	        j
                  dt        j                        }t	        j
                  d	t        j                        }t	        j
                  d
gt        j                        }t	        j
                  dgt        j                        }t	        j
                  dgt        j                        }t	        j
                  d
dgt        j                        }	t	        j
                  ddgt        j                        }
t	        j
                  dd
gt        j                        }t        |||||| ||      \  }}t        |||	|
|| ||      \  }}t        |||||	||
||g||||gdt         j                  j                  t        d      g       y )Nr    r!   r"   r   )r#   r$   X1X2G1G2H1H2)X1_newX2_newH1_newH2_newr*   r.   r   r/   r0   r1   g      g      @test_adagrad_multipler   r3   r6   )r   r   r   r>   r   r   x1g1h1x2g2h2x1_newh1_newx2_newh2_news                   r   export_adagrad_multiplezAdagrad.export_adagrad_multipleF   s    !{{$$A<-%2 % 
 HHS

+HHQbhh'XXse2::.XXtfBJJ/XXse2::.XXsCj

3XXtTl"**5XXsCj

3 'q"b".
 'q"b".

 	q"b"b"b1VVV4((()H!L	
r   N)returnNone)__name__
__module____qualname__staticmethodr?   rV    r   r   r   r      s)    &
 &
P -
 -
r   r   )
__future__r   numpyr	   r7   onnx.backend.test.case.baser   onnx.backend.test.case.noder   	onnx.defsr   r   r   r]   r   r   <module>rc      s,    #   , . 5:X
d X
r   