
    /j                    f    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
mZ  G d de          ZdS )    )annotationsN)Base)expect)AI_ONNX_PREVIEW_TRAINING_DOMAINONNX_DOMAINc                  >    e Zd Zedd            Zedd            ZdS )GradientreturnNonec                 n   t           j                            dddgdgd          } t           j                            dddgdd	gd
t          ddgd          }t	          j        d                              t          j                  }t	          j        d                              t          j                  }||z   }t	          j        d                              t          j                  }t	          j        d                              t          j                  }t           j                            | |gdt           j        	                    dt           j
        j        g           t           j        	                    dt           j
        j        g           gt           j        	                    dt           j
        j        g           t           j        	                    dt           j
        j        g           t           j        	                    d	t           j
        j        g           g          }t           j                            t          d          t           j                            t          d          g}t           j                            |d|          }	t          |	||g|||gd           d S )NAddabcmy_addnamer	   dc_dadc_dbmy_gradientr   domainxsy      ?       @   GradientOfAddnodesr   inputsoutputs   backend-testproducer_nameopset_importstest_gradient_of_addr!   r"   r   onnxhelper	make_noder   nparrayastypefloat32
make_graphmake_tensor_value_infoTensorProtoFLOATmake_operatorsetidr   make_model_gen_versionr   )
add_nodegradient_noder   r   r   r   r   graphopsetsmodels
             j/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/onnx/backend/test/case/model/gradient.pyexport_gradient_scalar_addz#Gradient.export_gradient_scalar_add   s=   ;((c
SE(QQ--#Jg2Sz . 
 
 HSMM  ,,HSMM  ,,E""2:..""2:..&&]+ 2238H8NPRSS2238H8NPRSS
 2238H8NPRSS227D<L<RTVWW227D<L<RTVWW ' 
 
 K**;;;K**+JANN
 22v 3 
 
 	1a&1eU*;BX	
 	
 	
 	
 	
 	
    c                 P   t           j                            dddgdgd          } t           j                            dddgdgd	          }t           j                            d
ddgddgdt          ddgd          }t	          j        d                              t          j                  }t	          j        d                              t          j                  }||z   }||z  }d|z  |z                       t          j                  }|}t           j                            | ||gdt           j        	                    dt           j
        j        g           t           j        	                    dt           j
        j        g           gt           j        	                    dt           j
        j        g           t           j        	                    dt           j
        j        g           t           j        	                    dt           j
        j        g           g          }	t           j                            t          d          t           j                            t          d          g}
t           j                            |	d|
          }t          |||g|||gd           d S )Nr   r   r   r   r   r   Muldmy_mulr	   dd_dadd_dbr   r   r   r      GradientOfTwoOperatorsr   r#   r   r$   r%   test_gradient_of_add_and_mulr)   r*   )r8   mul_noder9   r   r   r   rB   rD   rE   r:   r;   r<   s               r=   "export_gradient_scalar_add_and_mulz+Gradient.export_gradient_scalar_add_and_mul<   sV   ;((c
SE(QQ;((c
SE(QQ--#Jg2Sz . 
 
 HSMM  ,,HSMM  ,,EEQ""2:..&&X}5)2238H8NPRSS2238H8NPRSS
 2238H8NPRSS227D<L<RTVWW227D<L<RTVWW ' 
 
 K**;;;K**+JANN
 22v 3 
 
 	q6u%/		
 	
 	
 	
 	
 	
r?   N)r
   r   )__name__
__module____qualname__staticmethodr>   rJ    r?   r=   r	   r	      sS        *
 *
 *
 \*
X 1
 1
 1
 \1
 1
 1
r?   r	   )
__future__r   numpyr.   r+   onnx.backend.test.case.baser   onnx.backend.test.case.modelr   	onnx.defsr   r   r	   rO   r?   r=   <module>rU      s    # " " " " "      , , , , , , / / / / / / B B B B B B B B`
 `
 `
 `
 `
t `
 `
 `
 `
 `
r?   