
    2Vh1                        d dl Zd dlmc mZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d Zd Zd Zd Zd ZddZddZddZddZ d Z!d Z"ddZ#d Z$ddZ%ddZ&ddZ'ddZ(ddZ)d  Z*d! Z+d" Z,d# Z-d$ Z.d% Z/d& Z0dd'Z1dd(Z2dd)Z3dd*Z4dd+Z5d, Z6d- Z7dd.Z8d/ Z9d0 Z:d1 Z;d2 Z<dd3Z=d4 Z>d5 Z?d6 Z@d7 ZAd8 ZBdd9ZCdd:ZDdd;ZEdd<ZFdd=ZGdd>ZHdd?ZId@ ZJdA ZKddBZLdC ZMdD ZNdE ZOdF ZPddGZQdH ZRddIZSddJZTdK ZUdL ZVdM ZWddNZXdO ZYddPZZdQ Z[dR Z\dS Z]dT Z^dU Z_	 ddVZ`dW ZadX ZbdY ZcdZ Zdd[ Zed\ Zfd] Zgd^ Zhdd_Zid` ZjddaZkdbdcddZlddeZmdf Zndg Zodh ZpddiZqdj Zrdk Zsdl ZtddmZuddnZvdo ZwddpZxddqZyddrZzds Z{dt Z|du Z}ddvZ~dw ZddxZdy Zdz Zd{ Zd| Zd} Zdd~ZddZddZddZd ZddZddZd Zd ZddZddZd ZddZddZddZddZd Zd ZddddZd Zd Zd Zd Zd Zd Zd Zd ZddZddZddZddZddZd Zd ZddZddZd ZddZy)    N)Type)config)dtypes)standardize_dtype)
DTYPES_MAX)
DTYPES_MIN)OPENVINO_DTYPES)OpenVINOKerasTensor)align_operand_types)convert_to_tensor)get_ov_output)ov_to_keras_typec                 Z   d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nzadd()r   )
isinstancer
   outputget_element_typer   _align_operand_typesov_opsetaddx1x2element_types      P/home/dcms/DCMS/lib/python3.12/site-packages/keras/src/backend/openvino/numpy.pyr   r      s    L")*yy113")*yy113	r<	(B	r<	(B!"b'2FBx||B3::1=>>    c                     g }|D ]  }t        |      }|j                  |         t        t        j                  ||       j                  d            S Nr   )r   appendr
   r   einsumr   )
subscriptsoperandskwargsinputsoperands        r   r   r       sO    F (g xvzBII!LMMr   c                 Z   d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nz
subtract()r   )r   r
   r   r   r   r   r   subtractr   s      r   r&   r&   (       L")*yy113")*yy113	r<	(B	r<	(B!"b,7FBx00R8??BCCr   c                 ^   d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | |d      \  } }t        t        j                  | |dd      j                  d            S )Nzmatmul()Fr   )r   r
   r   r   r   r   r   matmulr   s      r   r)   r)   4   s    L")*yy113")*yy113	r<	(B	r<	(B!"b*5FBxr2ueDKKANOOr   c                 Z   d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | |d      \  } }t        t        j                  | |      j                  d            S )N
multiply()r   )r   r
   r   r   r   r   r   multiplyr   s      r   r,   r,   @   r'   r   c                    t        |       } |\t        j                  dgt        j                        j                  d      }t        j                  | |d      j                  d      } d}t        j                  |t        j                        j                  d      }t        j                  | ||      }t        |j                  d            S )Nr   Fdtype)	r   r   constantr   i32r   reshapereduce_meanr
   )xaxiskeepdimsflatten_shape
axis_constmean_opss         r   meanr;   L   s    aA| ))2$9@@CQu5<<Q?""4txx8??BJ##Az8<Hxq122r   c                     |J d       t        |       } t        j                  |t        j                        j                  d      }t        t        j                  | ||      j                  d            S )Nz@`max` with not None initial is not supported by openvino backendr   )r   r   r1   r   r2   r   r
   
reduce_max)r5   r6   r7   initialreduce_axiss        r   maxr@   W   sm    ? J? 	aA##D$((3::1=KA{H5<<Q? r   c                    t        |      xs t        j                         }t        |   }t	        j
                  d|      j                  d      }t        | t              rt        |       } nt        | t              r| g} t	        j
                  | t        j                        j                  d      }t	        j                  ||      }t        |j                  d            S )N   r   r/   r   r   floatxr	   r   r1   r   r   tuplelistintr   r2   	broadcastr
   )shaper0   ov_type	const_oneoutput_shapeoness         r   rM   rM   b   s    e$7Ee$G!!!W-44Q7I%U	E3	$$U$((;BB1ELi6Dt{{1~..r   c                    t        |      xs t        j                         }t        |   }t	        j
                  d|      j                  d      }t        | t              rt        |       } nt        | t              r| g} t	        j
                  | t        j                        j                  d      }t	        j                  ||      }t        |j                  d            S Nr   r/   rC   )rI   r0   rJ   
const_zerorL   zeross         r   rQ   rQ   o   s    e$7Ee$G""1G4;;A>J%U	E3	$$U$((;BB1ELz<8Eu||A//r   c                 r    t        |       } t        t        j                  |       j	                  d            S r   r   r
   r   absoluter   r5   s    r   rT   rT   |   -    aAx003::1=>>r   c                 r    t        |       } t        t        j                  |       j	                  d            S r   rS   rU   s    r   absrX      rV   r   c                    t        |       } |\t        j                  dgt        j                        j                  d      }t        j                  | |d      j                  d      } d}t        j                  |t        j                        j                  d      }t        t        j                  | ||      j                  d            S Nr.   r   F)	r   r   r1   r   r2   r   r3   r
   reduce_logical_andr5   r6   r7   r8   s       r   allr]      s    aA| ))2$9@@CQu5<<Q?T488,33A6D##AtX6==a@ r   c                     t        d      )Nz.`angle` is not supported with openvino backendNotImplementedErrorrU   s    r   anglera          
N
OOr   c                    t        |       } |\t        j                  dgt        j                        j                  d      }t        j                  | |d      j                  d      } d}t        j                  |t        j                        j                  d      }t        t        j                  | ||      j                  d            S rZ   )	r   r   r1   r   r2   r   r3   r
   reduce_logical_orr\   s       r   anyre      s    aA| ))2$9@@CQu5<<Q?T488,33A6D""1dH5<<Q? r   c                    |dk(  s|g k(  r| S t        |       } | j                         }|\t        j                  dgt        j
                        j                  d      }t        j                  | |d      j                  d      } d}t        |t              rt        |      }t        j                  |t        j
                        j                  d      }|t        j                  k(  r/t        t        j                  | ||      j                  d            S t        t        j                  | ||      j                  d            S N r.   r   F)r   r   r   r1   r   r2   r   r3   r   rE   rF   booleanr
   rd   r=   r5   r6   r7   x_typer8   s        r   amaxrl      s	   rzTRZaA!F| ))2$9@@CQu5<<Q?$DzT488,33A6D"&&q$9@@C
 	
 x221dHELLQOPPr   c                    |dk(  s|g k(  r| S t        |       } | j                         }|\t        j                  dgt        j
                        j                  d      }t        j                  | |d      j                  d      } d}t        |t              rt        |      }t        j                  |t        j
                        j                  d      }|t        j                  k(  r/t        t        j                  | ||      j                  d            S t        t        j                  | ||      j                  d            S rg   )r   r   r   r1   r   r2   r   r3   r   rE   rF   ri   r
   r[   
reduce_minrj   s        r   aminro      s	   rzTRZaA!F| ))2$9@@CQu5<<Q?$DzT488,33A6D"''4:AA!D
 	
 x221dHELLQOPPr   c                    t        |       t        |      }} t        | |d      \  } }|t        j                  dgt        j
                        j                  d      }t        j                  | |d      j                  d      } t        j                  ||d      j                  d      }d}t        t        j                  | |g|      j                  d            S )Nzappend()r.   r   F)
r   r   r   r1   r   r2   r   r3   r
   concat)r   r   r6   r8   s       r   r   r      s    2b 1B!"b*5FB| ))2$9@@Cb-7>>qAb-7>>qAxBx>EEaHIIr   c           	      j   |t        d      t        |       }} nt        |       t        |      }} |t        d      n
t        |      }d }|t        t        |         }ndt        t        j                  t        | j                               t        |j                               t        |j                               d         }t        j                  | |      }t        j                  ||      }t        j                  ||      }t        t        j                  ||||      j                  d            S )Nr   rB   int32)r   r	   r   r   result_typer   r   r   convertr
   ranger   )startstopstepr0   rJ   
start_node	stop_node	step_nodes           r   aranger}      s   |#A&e(<t#E*M$,?t#|=t1DDG!"3E":;! !7!7!9: !6!6!89 !6!6!89	
 !!%1J  w/I  w/Iz9iAHHK r   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   is_integralr	   r   rD   r   ru   r
   acosr   r5   rk   rJ   s      r   arccosr      g    aA!F!&--/2Q(x}}Q/66q9::r   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   r   r	   r   rD   r   ru   r
   acoshr   r   s      r   arccoshr      g    aA!F!&--/2Q(x~~a077:;;r   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   r   r	   r   rD   r   ru   r
   asinr   r   s      r   arcsinr     r   r   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   r   r	   r   rD   r   ru   r
   asinhr   r   s      r   arcsinhr     r   r   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   r   r	   r   rD   r   ru   r
   atanr   r   s      r   arctanr     r   r   c                    t        |       } t        |      }t        | j                               }t        |j                               }t        j                  ||t
              }t        |   }t        j                  | |      } t        j                  ||      }t        j                  | |      }t        j                  |      }| j                         }t        j                  t        t        j                        |      }t        j                  t        t        j                  dz        |      }	t        j                  t        t        j                  dz         |      }
t        j                  d|      }t        j                  ||      j                  d      }t        j                   ||      j                  d      }t        j"                  | |      j                  d      }t        j                  | |      j                  d      }t        j$                  | |      j                  d      }t        j&                  |t        j(                  ||      t        j*                  ||            }t        j&                  |||
      }t        j&                  ||	|      }t        j&                  |||      }t        j&                  |||      }t-        |j                  d            S )N           r   )r   r   r   r   rt   floatr	   r   ru   divider   r1   nppigreaterr   lessgreater_equalequalselectr   r&   r
   )r   r   x1_typex2_typert   r5   yrJ   r   half_pineg_half_pi
zero_constcond_x2_gt0cond_x2_lt0cond_x1_ge0cond_x1_gt0cond_x1_eq0
out_x2_lt0out_x1_zeroout_x2_zeroout_not_pos	final_outs                         r   arctan2r     s3   	r	B	r	Br2245Gr2245G$$Wgu=K!+.K			"k	*B			"k	*BBAaA!!#G			5<	1Bbeeai 0':G##U25519%5$5w?K""30J""2z299!<K--J/66q9K((Z8??BK""2z299!<K..Z077:KQ!R J //+z;GK//+wDK//+z;GKQ<Iy//233r   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   r   r	   r   rD   r   ru   r
   atanhr   r   s      r   arctanhr   H  r   r   c           	      ~   t        |       } | j                         }|j                  j                         }|dk(  r=t	        t        j                  dgt        j                        j                  d            S |t        j                  dgdg|dz
  z  z   t        j                        j                  d      }t        j                  | |d      j                  d      } d}t        j                  dt        j                        j                  d      }n=|dk  r||z   }t        j                  dt        j                        j                  d      }t        j                  | ||dddt        j                        }|j                  d      }|s&t        j                  ||g      j                  d      }t	        |      S )	Nr   r.   rB   Fr@   valueTkr6   modesortstableindex_element_typer   get_partial_shaperank
get_lengthr
   r   r1   r   r2   r   r3   topksqueeze	r5   r6   r7   x_shaper   r8   r   topk_outputstopk_indicess	            r   argmaxr   Q  v   aA!!#G<<""$Dqy"8#4#4aS$((#C#J#J1#MNN| ))DA3$(##TXX

&) 	 Qu5<<Q?a*11!4!8$;Da*11!4==	
88L  &&q)L''tf=DDQG|,,r   c           	      ~   t        |       } | j                         }|j                  j                         }|dk(  r=t	        t        j                  dgt        j                        j                  d            S |t        j                  dgdg|dz
  z  z   t        j                        j                  d      }t        j                  | |d      j                  d      } d}t        j                  dt        j                        j                  d      }n=|dk  r||z   }t        j                  dt        j                        j                  d      }t        j                  | ||dddt        j                        }|j                  d      }|s&t        j                  ||g      j                  d      }t	        |      S )	Nr   r.   rB   Fminr   Tr   r   r   s	            r   argminr   q  r   r   c                 |   t        |       } | j                         }|j                  j                         }|dk(  r=t	        t        j                  dgt        j                        j                  d            S |t        j                  dgt        j                        j                  d      }t        j                  | |d      j                  d      } t        j                  | t        j                        j                  d      }t        j                  |t        j                  dgt        j                        d      }d}n|dk  r||z   }t        j                  | t        j                        j                  d      }t        j                  |t        j                  |t        j                        j                  d      t        j                  dt        j                        j                  d            j                  d      }t        j                  | ||dd      j                  d      }t	        |      S )	Nr   r.   F	keep_dimsr   r   )r   r6   r   r   rB   )r   r   r   r   r
   r   r1   r   r2   r   r3   shape_ofreduce_prodgatherr   )r5   r6   r   r   r8   x_shape_tensorr   sorted_indicess           r   argsortr     s   aA!!#G<<""$Dqy"8#4#4aS$((#C#J#J1#MNN| ))2$9@@CQu5<<Q?!**1dhh7>>qA  H--qc488<
 !8$;D!**1dhh7>>qAOOdDHH-44Q7a*11!4
 &)	 	

 ]]	
 fQi  ~..r   c                 ^    |t        j                  | |      S t        j                  |       S )Nr/   )r   array)r5   r0   s     r   r   r     s'    xx''88A;r   c                 F   t        |       } |t        |      }|t        j                  dgt        j                        j                  d      }t        j                  | |d      j                  d      } |&t        j                  ||d      j                  d      }d}|| j                         }|j                         }|j                         s|t        j                  k(  r|j                         s|t        j                  k(  rft        j                  | t        j                        j                  d      } t        j                  |t        j                        j                  d      }t        | |d      \  } }t        j                  | |      } t        |t              rt!        |      }|g k(  rt#        |       S t        j                  |t        j                        j                  d      }t        j$                  | |d      }t#        |j                  d            S )Nr.   r   Fr+   r/   )r   r   r1   r   r2   r   r3   r   r   ri   ru   f32r   r,   r   rE   rF   r
   r4   )r5   r6   weightsr8   rk   weights_typer9   r:   s           r   averager     s   aA(| ))2$9@@CQu5<<Q?&&wuELLQOG##%//1$$&,$,,*F Fdll$:  DHH-44Q7A&&w9@@CG)!WlC
7a)$Dzrz"1%%""4txx8??BJ##Az59Hxq122r   c                     t        d      )Nz1`bartlett` is not supported with openvino backendr_   rU   s    r   bartlettr         
; r   c                     t        d      )Nz0`hamming` is not supported with openvino backendr_   rU   s    r   hammingr         
: r   c                 6   | t        d      |rt        d      t        |       } | j                         }t        j                  | d      j                  d      }t        j                  |d      j                  d      }t        j                  ||      j                  d      }t        j                  g |      j                  d      }t        j                  ||d      j                  d      }t        j                  d|      j                  d      }t        j                  ||      j                  d      }	t        |      }t        j                  ||      j                  d      }t        j                  d|      j                  d      }
t        j                  d|      j                  d      }t        j                  | |d      j                  d      }t        j                  ||
      j                  d      }t        j                  ||      j                  d      }t        j                  ||d      j                  d      }t        j                  | ||
|d	      j                  d      }|t        |      }|j                         }t        j                  |ddgd      j                  d      }t        j                  ||      j                  d      }t        j                  ||      j                  d      }t        j                  ||	d      j                  d      }t        |      S t        j                  ||	d      j                  d      }t        j                  |t         j"                        j                  d      }t        |      S )
Nzinput x is NonezUnsupported value `sparse=True`i64r   Fr.   rB   r   r6   )
ValueErrorr   r   r   r   r   ru   r1   r3   r   r=   maximumone_hotr,   
reduce_sumr
   r   r2   )r5   r   	minlengthsparserk   shape_xrank_xscalar_shapeconst_minus_onerank_minus_onerK   rP   max_elementdepthdepth_scalarr   r   weights_newfinal_one_hotfinal_outputs                       r   bincountr     s   y*++:;;aA!F5)003Gw.55a8Fff-44Q7F$$R077:LflE:AA!DF''F3::1=O\\&/:AA!DNi(I  F3::1=I!!!V,33A6I""1f-44Q7J%%auELLQOKLLi077:EUI.55a8E&&zUfQi  	<JRfQi  (//1&&wQ?FFqI""7L9@@C ))';?FFqI**>U

&) 	 #<00**^u

&) 	  ''dhh?FFqI"<00r   c                     t        d      )Nz1`blackman` is not supported with openvino backendr_   rU   s    r   blackmanr     r   r   c                 &   t        |t        t        f      sJ d       t        j                  t        |      t
        j                        j                  d      }t        |       } t        t        j                  | |      j                  d            S )Nz;`broadcast_to` is supported only for tuple and list `shape`r   )r   rE   rF   r   r1   r   r2   r   r   r
   rH   )r5   rI   target_shapes      r   broadcast_tor     st    eeT]+ E+ $$T%[$((;BB1ELaAx11!\BII!LMMr   c                 r    t        |       } t        t        j                  |       j	                  d            S r   )r   r
   r   ceilr   rU   s    r   r   r      +    aAx}}Q/66q9::r   c                 *   t        |       } t        || j                               }t        || j                               }t        j                  | |      j	                  d      }t        j
                  ||      j	                  d      }t        |      S r   )r   r   r   r   r   minimumr
   )r5   x_minx_maxclip_by_minclip_by_maxs        r   clipr  %  s{    aA%!3!3!56E%!3!3!56E""1e,33A6K"";6==a@K{++r   c                     t        | t              sJ d       g }| D ]  }t        |      }|j                  |         t	        j
                  ||      j                  d      }t        |      S )Nz,`concatenate` is supported only for `x` listr   )r   rF   r   r   r   rq   r   r
   )xsr6   elemselemress        r   concatenater  .  sj    b$O!OOE T"T //%
&
-
-a
0Cs##r   c                     t        d      )Nz2`conjugate` is not supported with openvino backendr_   rU   s    r   	conjugater	  8      
< r   c                     t        d      )Nz-`conj` is not supported with openvino backendr_   rU   s    r   conjr  >      
M
NNr   c                     | S Nrh   rU   s    r   copyr  B  s    Hr   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   r   r	   r   rD   r   ru   r
   cosr   r   s      r   r  r  F  f    aA!F!&--/2Q(x||A55a899r   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   r   r	   r   rD   r   ru   r
   coshr   r   s      r   r  r  O  r   r   c                 2   t        |       } t        j                  dt        j                        j                  d      }t        j                  ||       }t        j                  | |      j                  d      } t        j                  | t        j                        j                  d      } |\t        j                  dgt        j                        j                  d      }t        j                  | |d      j                  d      } d}t        |t              rt        |      }|g k(  rt        |       S t        j                  |t        j                        j                  d      }t        t        j                  | |d      j                  d            S )Nr   r/   r.   F)r   r   r1   r   r2   r   convert_like	not_equalru   r3   r   rE   rF   r
   r   )r5   r6   zero_constantr8   s       r   count_nonzeror  X  s4   aA%%atxx8??BM))-;M1m,33A6ADHH%,,Q/A| ))2$9@@CQu5<<Q?$Dzrz"1%%T488,33A6Dx221dEBII!LMMr   c                     t        d      )Nz.`cross` is not supported with openvino backendr_   )r   r   axisaaxisbaxiscr6   s         r   crossr  j  rb   r   c                     t        d      )Nz0`cumprod` is not supported with openvino backendr_   )r5   r6   r0   s      r   cumprodr!  n  r   r   c                    t        |       } |7t        t        |         }t        j                  | |      j                  d      } |\t        j                  dgt        j                        j                  d      }t        j                  | |d      j                  d      } d}t        j                  |t        j                        j                  d      }t        t        j                  | |      j                  d            S )Nr   r.   F)r   r	   r   r   ru   r   r1   r   r2   r3   r
   cumsum)r5   r6   r0   rJ   r8   s        r   r#  r#  t  s    aA!"3E":;Q(//2| ))2$9@@CQu5<<Q?T488,33A6Dxq$7>>qABBr   c                     t        d      )Nz-`diag` is not supported with openvino backendr_   r5   r   s     r   diagr&    r  r   c                     t        d      )Nz1`diagonal` is not supported with openvino backendr_   r5   offsetaxis1axis2s       r   diagonalr,    r   r   c                 8   |dk(  rt        t        |             S |dk  rt        dt        |      z         t        |       } | j	                         }t        | t        j                        r| j                  }n(| j                         j                  j                         }|dk  r||z   }| }t        |      D ]  }|j                         j                  j                         }t        j                  t        j                  dg|z  t        j                         t"        j$                        j'                  d      }dg|z  }d||<   t        j                  t        j                  |t        j                         t"        j$                        j'                  d      }	t        j                  t        j                  dg|z  t        j                         t"        j$                        j'                  d      }
dg|z  }d||<   dg|z  }t        j(                  ||	|
|||g g g 	      j'                  d      }t        j                  t        j                  dg|z  t        j                         t"        j$                        j'                  d      }dg|z  }d||<   t        j                  t        j                  |t        j                         t"        j$                        j'                  d      }dg|z  }dg|z  }d||<   t        j(                  ||||||g g g 	      j'                  d      }|t"        j*                  k(  r't        j,                  ||      j'                  d      }t        j.                  ||      j'                  d      } t        |      S )Nr   z#order must be non-negative but got rB   r/   )	databeginendstrides
begin_maskend_masknew_axis_maskshrink_axis_maskellipsis_maskr.   )r
   r   r   reprr   r   r   ndarrayndimr   r   r   rv   r   r1   r   int64r   r   r   strided_sliceri   r  r&   )anr6   a_typer   result_r1  begin_upper_listbegin_upper	end_upperbegin_mask_upperend_mask_upperupperbegin_lowerend_lower_list	end_lowerbegin_mask_lowerend_mask_lowerlowers                       r   diffrM    s!   Av"=#3441u>aHIIaA!F!RZZ vv""$))446axd{F1X 7?'')..99;##HHaS4Zrxx0$((

&) 	 3:!"''HH%RXX6

&) 	 %%HHaS4Zrxx0$((

&) 	 3:!"t&&'#

 &) 	 ''HHaS4Zrxx0$((

&) 	 t!t%%HH^2884dhh

&) 	 3:t t&&'#

 &) 	 T\\!''u5<<Q?F&&ue4;;A>Fo7?p v&&r   c                     t        d      )Nz1`digitize` is not supported with openvino backendr_   )r5   binss     r   digitizerP    r   r   c                 .   d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | |d      \  } }| j                         j                  dk(  s|j                         j                  dk(  r.t        t        j                  | |      j                  d            S t        t        j                  | |dd      j                  d            S )Nzdot()r   F)r   r
   r   r   r   r   r   r   r   r,   r)   )r5   r   r   s      r   dotrR    s    L!()xx002!()xx002a&Aa&A1g.DAq!!Q&!*=*=*?*D*D*I"8#4#4Q#:#A#A!#DEExq!UEBII!LMMr   c                    t        |      xs t        j                         }t        |   }t	        | t
              rt        |       } nt	        | t              r| g} t        j                  | t        j                        j                  d      }t        j                  d|      j                  d      }t        j                  ||      j                  d      }t        |      S rO   )r   r   rD   r	   r   rE   rF   rG   r   r1   r   r2   r   rH   r
   )rI   r0   rJ   
shape_noderP   empty_tensors         r   emptyrV    s    e$7Ee$G%U	E3	""5$((3::1=J""1G4;;A>J%%j*=DDQGL|,,r   c                 Z   d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nzequal()r   )r   r
   r   r   r   r   r   r   r   s      r   r   r         L")*yy113")*yy113	r<	(B	r<	(B!"b)4FBx~~b"5<<Q?@@r   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   r   r	   r   rD   r   ru   r
   expr   r   s      r   rZ  rZ    r  r   c                    t        |       } t        |t              rt        |      }t	        j
                  |t        j                        j                  d      }t        t	        j                  | |      j                  d            S r   )r   r   rE   rF   r   r1   r   r2   r   r
   	unsqueezer5   r6   s     r   expand_dimsr^  
  sc    aA$DzT488,33A6Dx11!T:AA!DEEr   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        j                  |       j                  d      }t        j                  d|j                               }t        j                  ||      j                  d      }t        |      S )Nr   rB   )r   r   r   r	   r   rD   r   ru   rZ  r   r1   r&   r
   )r5   rk   rJ   exp_xrK   r?  s         r   expm1ra    s    aA!F!&--/2Q(LLO""1%E!!!U%;%;%=>Iui077:Fv&&r   c                     t        d      )Nz-`flip` is not supported with openvino backendr_   r]  s     r   fliprc    r  r   c                 r    t        |       } t        t        j                  |       j	                  d            S r   )r   r
   r   floorr   rU   s    r   re  re  "  s+    aAx~~a077:;;r   c                 H   t        |      xs t        j                         }t        |   }t	        ||      }t        | t              rt        |       } t        j                  | t        j                        }t        t        j                  ||      j                  d            S r   )r   r   rD   r	   r   r   rE   rF   r   r1   r   r2   r
   rH   r   )rI   
fill_valuer0   rJ   r   s        r   fullrh  '  s~    e$7Ee$Gz73J%U$$UDHH5L:|4;;A> r   c                 6   t        |       } t        j                  |       }|t        t	        |         }n| j                         }t        j                  ||      j                  d      }t        j                  ||      j                  d      }t        |      S r   )
r   r   r   r	   r   r   r1   r   rH   r
   )r5   rg  r0   r   rJ   const_valuer  s          r   	full_likerk  3  s    aA"G!"3E":;$$&##J8??BK


['
2
9
9!
<Cs##r   c                 Z   d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nz	greater()r   )r   r
   r   r   r   r   r   r   r   s      r   r   r   ?  s    L")*yy113")*yy113	r<	(B	r<	(B!"b+6FBx//B7>>qABBr   c                 Z   d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nzgreater_equal()r   )r   r
   r   r   r   r   r   r   r   s      r   r   r   K  s    L")*yy113")*yy113	r<	(B	r<	(B!"b*;<FBx55b"=DDQGHHr   c                    t        | t        t        f      s| f} | D cg c]  }t        |       }}|d   j                  j                         }|D cg c]  }t        ||       }}|xr- t        |d   j                         j                               dk(  }|rdnd}t        dt        |            D ]  }t        |d   ||   d      \  |d<   ||<     t        t        j                  ||      j	                  d            S c c}w c c}w )Nr   rB   zhstack())r   rF   rE   r   r   r   r   lenr   to_shaperv   r   r
   r   rq   )r  r  r  r   is_1dr6   is          r   hstackrs  W  s    b4-(U134t$4E48??335L;@A4]4.AEAGc%(446??ABaGE11D1c%j! 
1!HeAh

a%(
 xud;BB1EFF 5As   DDc                 D   t        |       } |t        j                  n|}t        |t              r
t
        |   }n|}t        j                  | t        j                        j                  d      }t        j                  ||d|      }t        |j                  d            S )Nr   )num_rowsnum_columnsdiagonal_indexoutput_type)r   r   r   r   strr	   r   ru   r2   r   eyer
   )r=  r0   ov_dtypen32identity_matrixs        r   identityr~  f  s    aADHH5E%"5)


1dhh
'
.
.q
1Cll#aXO 55a899r   c                     t        d      )Nz-`imag` is not supported with openvino backendr_   rU   s    r   imagr  t  r  r   c                    t         t        j                            }t        j                  t        |       |      } t        j                  t        |      |      }t        j                  t        |      |      }t        j                  t        |      |      }t        j                  | |z
        }t        j                  |      }|||z  z   }t        j                  ||      }	|rRt        j                  t        j                  |       t        j                  |            }
t        j                  |	|
      }	t        |	j                  d            S r   )r	   r   rD   r   ru   r   rX   
less_equallogical_andisnan
logical_orr
   r   )r   r   rtolatol	equal_nanr0   abs_diffabs_x2total_toleranceis_closeboth_nans              r   iscloser  x  s    FMMO,E			-+U	3B			-+U	3BM$/7DM$/7D||BG$H\\"FTF]*O""8_=H''r(:HNN2<NO&&x:xq122r   c                 r    t        |       } t        t        j                  |       j	                  d            S r   )r   r
   r   	is_finiter   rU   s    r   isfiniter    s-    aAx11!4;;A>??r   c                 r    t        |       } t        t        j                  |       j	                  d            S r   )r   r
   r   is_infr   rU   s    r   isinfr    +    aAxq188;<<r   c                 r    t        |       } t        t        j                  |       j	                  d            S r   )r   r
   r   is_nanr   rU   s    r   r  r    r  r   c                 Z   d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nzless()r   )r   r
   r   r   r   r   r   r   r   s      r   r   r     s    L")*yy113")*yy113	r<	(B	r<	(B!"b(3FBx}}R4;;A>??r   c                 Z   d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nzless_equal()r   )r   r
   r   r   r   r   r   r  r   s      r   r  r    s    L")*yy113")*yy113	r<	(B	r<	(B!"b.9FBx222r:AA!DEEr   c                     t        d      )Nz1`linspace` is not supported with openvino backendr_   )rw   rx   numendpointretstepr0   r6   s          r   linspacer    s     ; r   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   r   r	   r   rD   r   ru   r
   logr   )r5   rk   s     r   r  r    sf    aA!F 1Q'x||A55a899r   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        j                  |       j                  d      }t        j                  d|      j                  d      }t        j                  |      j                  d      }t        j                  ||      j                  d      }t        |      S )Nr   
   r   r   r   r	   r   rD   r   ru   r  r   r1   r   r
   )r5   rk   log_xconst_10log_10r?  s         r   log10r    s    aA!F 1Q'LLO""1%E  V,33A6H\\(#**1-F__UF+2215Fv&&r   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        j                  d|      j                  d      }t        j                  | |      j                  d      }t        j                  |      j                  d      }t        |      S NrB   r   )r   r   r   r	   r   rD   r   ru   r1   r   r   r  r
   )r5   rk   	one_constaddedr?  s        r   log1pr    s    aA!F 1Q'!!!V,33A6ILLI&--a0E\\% ''*Fv&&r   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        j                  |       j                  d      }t        j                  d|      j                  d      }t        j                  |      j                  d      }t        j                  ||      j                  d      }t        |      S )Nr   r   r  )r5   rk   r  const_2log_2r?  s         r   log2r    s    aA!F 1Q'LLO""1%E6*11!4GLL!((+E__UE*11!4Fv&&r   c                     t        d      )Nz2`logaddexp` is not supported with openvino backendr_   r   r   s     r   	logaddexpr    r
  r   c                 V   t        |       } t        |      }t        j                  | t        j                        j                  d      } t        j                  |t        j                        j                  d      }t        t        j                  | |      j                  d            S r   )r   r   ru   r   ri   r   r
   r  r  s     r   r  r    {    	r	B	r	B			"dll	+	2	21	5B			"dll	+	2	21	5Bx33B;BB1EFFr   c                     t        |       } t        j                  | t        j                        j                  d      } t        t        j                  |       j                  d            S r   )r   r   ru   r   ri   r   r
   logical_notrU   s    r   r  r    sN    aADLL)003Ax33A6==a@AAr   c                 V   t        |       } t        |      }t        j                  | t        j                        j                  d      } t        j                  |t        j                        j                  d      }t        t        j                  | |      j                  d            S r   )r   r   ru   r   ri   r   r
   r  r  s     r   r  r    s{    	r	B	r	B			"dll	+	2	21	5B			"dll	+	2	21	5Bx222r:AA!DEEr   c                     t        d      )Nz1`logspace` is not supported with openvino backendr_   )rw   rx   r  r  baser0   r6   s          r   logspacer    r   r   c                     t        |       } t        |      }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nz	maximum()r   )r   r   r
   r   r   r   r  s     r   r   r     K    	r	B	r	B!"b+6FBx//B7>>qABBr   c                     t        d      )Nz/`median` is not supported with openvino backendr_   r5   r6   r7   s      r   medianr        
O
PPr   xy)indexingc                     t        d      )Nz1`meshgrid` is not supported with openvino backendr_   )r  r5   s     r   meshgridr    r   r   c                    t        |       } | j                         }|}| j                         j                         }|t        j
                  k(  }|rCt        j                  | t        j                        j                  d      } t        j                  }t        |t              rt        |      dk(  rt        |       S |\t        j                  dgt        j                        j                  d      }t        j                  | |d      j                  d      } d}t        |t              rt!        |      }t        j                  |t        j                        j                  d      }	t        j"                  | |	|      j                  d      }
|Jt        j                  ||      j                  d      }t        j$                  |
|      j                  d      }
|rfdgt        |      z  }t        j                  |
t        j                  |t        j                        j                  d      d      j                  d      }
|r3t        j                  |
t        j
                        j                  d      }
t        |
      S )Nr   r.   FrB   )r   r   r   rp  r   ri   r   ru   r2   r   r   rE   ro  r
   r1   r3   rF   rn   r   )r5   r6   r7   r>   original_typerk   r   is_boolr8   r9   
min_resultinitial_tensorresult_shapes                r   r   r     s   aA&&(MF!!#,,.G$GQ)003$3t9>"1%%| ))2$9@@CQu5<<Q?$Dz""4299!<J$$Q
H=DDQGJ!**7F;BB1E%%j.AHHK
sS\)%%lDHH5<<Q?
 &)	 	 %%j$,,?FFqI
z**r   c                     t        |       } t        |      }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nz	minimum()r   )r   r   r
   r   r   r   r  s     r   r   r   I  r  r   c                     t        |       } t        |      }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nzmod()r   )r   r   r
   r   	floor_modr   r  s     r   modr  P  sK    	r	B	r	B!"b'2FBx11"b9@@CDDr   c                    t        |       } t        |t              r|g}t        |t              r|g}| j                         j                  j                         }|D cg c]  }|dk\  r|n||z    }}|D cg c]  }|dk\  r|n||z    }}t        t        |            }t        ||      D ](  \  }}|j                  |       |j                  ||       * t        j                  |t        j                        j                  d      }t!        t        j"                  | |      j                  d            S c c}w c c}w r   )r   r   rG   r   r   r   rF   rv   zipremoveinsertr   r1   r   r2   r   r
   	transpose)	r5   sourcedestinationr9  r6   axessrcdst
axes_consts	            r   moveaxisr  W  s    aA&#+s#"m %%002D=CDTdaidTD[0DFDBMN$4194$+5NKNdD, SCC ""4299!<Jx11!Z@GGJKK ENs   D87D=c                 |   t        |       } | j                         }|j                         rt        |       S |t        j
                  k(  rdnd}|rCt        j                  | t        j                        j                  d      } t        j                  }t        j                  ||      j                  d      }t        j                  ||nt        |   |      j                  d      }t        j                  ||nt        |   |      j                  d      }t        j                  | ddd      j                  d      }	t        j                  | ddd      j                  d      }
t        j                  |       j                  d      }t        j                  |||       j                  d      } t        j                  |	||       j                  d      } t        j                  |
||       j                  d      } |r3t        j                  | t        j
                        j                  d      } t        |       S )NTFr   )detect_positivedetect_negative)r   r   r   r
   r   f64r   ru   r   r   r1   r   r   r  r  r   )r5   nanposinfneginfr0   	isfloat64nan_val
posinf_val
neginf_valposinf_maskneginf_masknan_masks               r   
nan_to_numr  k  s   aA E"1%%)uIQ)003U+2215G""$*U*;UfQi  ""$*U*;UfQi  //	 U; fQi  //	!d; fQi  q!((+H'1-44Q7AZ3::1=AZ3::1=AQ)003q!!r   c                     t        |       } t        j                  |       j                  d      }t        j                  |d      }|S )Nr   r   )r   r   r   r   )r5   r   x_dims      r   r9  r9    s>    aA"))!,Ggu-ELr   c                 z    t        |       } t        j                  | d      j                  d      }t	        |      S )Nr2   )r.  rx  r   )r   r   non_zeror   r
   )r5   r  s     r   nonzeror    s4    aA



6
=
=a
@Cs##r   c                 Z   d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nznot_equal()r   )r   r
   r   r   r   r   r   r  r   s      r   r  r    s    L")*yy113")*yy113	r<	(B	r<	(B!"b-8FBx11"b9@@CDDr   c                 |   t        |       } t        j                  |       }|8t        t	        |         }t        j
                  d|      j                  d      }n3t        j
                  d| j                               j                  d      }t        j                  ||      j                  d      }t        |      S r   
r   r   r   r	   r   r1   r   r   rH   r
   )r5   r0   r   rJ   rP   r  s         r   
zeros_liker    s    aA"G!"3E":;&&q'299!<
&&q!*<*<*>?FFqI



Z
1
8
8
;Cs##r   c                 |   t        |       } t        j                  |       }|8t        t	        |         }t        j
                  d|      j                  d      }n3t        j
                  d| j                               j                  d      }t        j                  ||      j                  d      }t        |      S r  r  )r5   r0   r   rJ   rK   r  s         r   	ones_liker    s    aA"G!"3E":;%%a188;	%%a););)=>EEaH	


Y
0
7
7
:Cs##r   c                    t        |       } t        |      }t        | |d      \  } }t        j                  ddgt        j
                        j                  d      }t        j                  ddgt        j
                        j                  d      }t        j                  | |d      j                  d      }t        j                  ||d      j                  d      }t        j                  ||      j                  d      }t        |      S )Nzouter()r.   rB   r   F)
r   r   r   r1   r   r2   r   r3   r,   r
   )r   r   new_shape_x1new_shape_x2x1_reshapedx2_reshapedr?  s          r   outerr    s    	r	B	r	B!"b)4FB$$b!Wdhh7>>qAL$$aWdhh7>>qAL ""2|U;BB1EK""2|U;BB1EK{K8??BFv&&r   c           	         t        |       } d }|,|dk7  rt        d|       t        |t              sJ d       |}g }g }|D ]*  }|j	                  |d          |j	                  |d          , t        j                  |t        j                        j                  d      }t        j                  |t        j                        j                  d      }t        t        j                  | ||||      j                  d            S )Nr1   zZArgument `constant_values` can only be provided when `mode == 'constant'`. Received: mode=zS`pad` operation supports only scalar pad value in constant mode by openvino backendr   rB   )r   r   r   rG   r   r   r1   r   r2   r   r
   pad)r5   	pad_widthr   constant_values	pad_value
pads_beginpads_end	pads_pairs           r   r  r    s   aAI":""&) 
 /3/ 	
3	
/ $	 JH &	)A,'	!%& "":txx8??BJ  4884;;A>HQ
HdI>EEaH r   c                     t        d      )Nz-`prod` is not supported with openvino backendr_   )r5   r6   r7   r0   s       r   prodr    r  r   c                     t        d      )Nz1`quantile` is not supported with openvino backendr_   )r5   qr6   methodr7   s        r   quantiler	    r   r   c                     t        |       } t        j                  dgt        j                        j                  d      }t        t        j                  | |d      j                  d            S )Nr.   r/   r   F)special_zero)r   r   r1   r   r2   r   r
   r3   )r5   r   s     r   ravelr    sY    aA$$bT:AA!DLLu=DDQG r   c                     t        d      )Nz-`real` is not supported with openvino backendr_   rU   s    r   realr    r  r   c                     t        |       } t        j                  d| j                               j	                  d      }t        j
                  ||       j	                  d      } t        |       S )NrB   r/   r   )r   r   r1   r   r   r   r
   )r5   one_constants     r   
reciprocalr    sX    aA$$Qa.@.@.BCJJ1MLa(//2Aq!!r   c                     t        d      )Nz/`repeat` is not supported with openvino backendr_   )r5   repeatsr6   s      r   repeatr  	  r  r   c                    t        |       } t        |t              rt        |      }t	        j
                  |t        j                        j                  d      }t        t	        j                  | |d      j                  d            S Nr   F)r   r   rE   rF   r   r1   r   r2   r   r
   r3   )r5   newshapes     r   r3   r3     se    aA(E">  4884;;A>Hx//8UCJJ1MNNr   c                     t        d      )Nz-`roll` is not supported with openvino backendr_   )r5   shiftr6   s      r   rollr    r  r   c                 r    t        |       } t        t        j                  |       j	                  d            S r   )r   r
   r   signr   rU   s    r   r  r    r   r   c                     t        d      )Nz0`signbit` is not supported with openvino backendr_   rU   s    r   signbitr    r   r   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   r   r	   r   rD   r   ru   r
   sinr   r   s      r   r   r   $  r  r   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   r   r	   r   rD   r   ru   r
   sinhr   r   s      r   r"  r"  -  r   r   c                     t        d      )Nz-`size` is not supported with openvino backendr_   rU   s    r   sizer$  6  r  r   c                     t        d      )Nz-`sort` is not supported with openvino backendr_   r]  s     r   r   r   :  r  r   c                 Z   t        |       } t        j                  |t        j                        j                  d      }t        j                  |       }t        j                  |gt        j                        }t        j                  ||t        j                  dt        j                              }t        |t              rW|}t        j                  | ||      }g }	t        |      D ]+  }
|	j                  t        |j                  |
                   - |	S t        |t        t        t         j"                  f      rTt        |      }g }|j                  |d          t        dt%        |            D ]  }
|j                  ||
   ||
dz
     z
         ! t        j                  |d   t        j&                        }t        j(                  ||      }g }|j                  t        j                  |t        j&                               |j                  |       t        j*                  |d      }t        j,                  | ||      }g }	t        t%        |      dz         D ]+  }
|	j                  t        |j                  |
                   - |	S t/        dt1        |             )Nr/   r   )
num_splitsrB   r.   r   z)unsupported type of indices_or_sections: )r   r   r1   r   r2   r   r   r   r   rG   splitrv   r   r
   rF   rE   r   r8  ro  r   r&   rq   variadic_split	TypeErrortype)r5   indices_or_sectionsr6   axis_tensorshape_tensoraxis_i32dim_at_axis_tensorr'  splitsr?  rr  indicessplit_lengthslast_index_tensorremaining_length_tensorlength_partslength_tensors                    r   r(  r(  >  s<   aA##D9@@CK$$Q'L  $txx8H!h 1 1!488 D %s+(
;:Fz" 	AAMM-fmmA.>?@	A%eRZZ'@A*+WQZ(q#g,' 	>A  ga!en!<=	> %--gbkJ"*"3"3 1#
 H--m488LM34 1=((KGs=)A-. 	AAMM-fmmA.>?@	A

3D9L4M3NO r   c                 H   t        | t              rt        |       } t        | t              sJ d       | D cg c]  }t        |       }}|d   }t	        dt        |            D ]  }t        |||   d      \  }||<    ||d<   t        j                  |t        j                        j                  d      }|D cg c]'  }t        j                  ||      j                  d      ) }}t        j                  ||      j                  d      }t        |      S c c}w c c}w )Nz*`stack` supports only `x` as list or tupler   rB   zstack())r   rE   rF   r   rv   ro  r   r   r1   r   r2   r   r\  rq   r
   )r5   r6   er  refrr  
const_axisr  s           r   stackr<  l  s   !UGaL LL'()!]1)E)
(C1c%j! G,S%(IFU1XGE!H""4299!<JBGHQX:.55a8HEH
//%
&
-
-a
0Cs## * Is   D<,Dc                 V   t        |       } |\t        j                  dgt        j                        j                  d      }t        j                  | |d      j                  d      } d}t        j                  |t        j                        j                  d      }t        j                  | ||      j                  d      }t        j                  d| j                               j                  d      }t        j                  | |      j                  d      }t        j                  ||      j                  d      }t        j                  |||      }t        j                  ||      j                  d      }	t        t        j                  |	      j                  d            }
|
S Nr.   r   Fr   )r   r   r1   r   r2   r   r3   r4   r   powerr&   r
   sqrt)r5   r6   r7   r8   r;   	const_two	squared_xsquared_meansquared_x_meanvariancestd_vars              r   stdrG  {  sJ   aA| ))2$9@@CQu5<<Q?T488,33A6D 4299!<D!!!Q%7%7%9:AA!DIq),33A6I>>$	299!<L)))T8DN  >EEaHH!(--"9"@"@"CDGNr   c                     t        d      )Nz1`swapaxes` is not supported with openvino backendr_   )r5   r*  r+  s      r   swapaxesrI    r   r   c                    t        |       } t        |      }|t        j                  dgt        j                        j                  d      }t        j                  | |d      j                  d      } t        j                  dt        j                        j                  d      }n4t        j                  |t        j                        j                  d      }t        t        j                  | ||      j                  d            S )Nr.   r/   r   F)	r   r   r1   r   r2   r   r3   r
   r   )r5   r2  r6   r   s       r   takerK    s    aAG$G|(("TXX>EEaHQe4;;A>  $((3::1=  TXX6==a@xq'4@GGJKKr   c                     t        d      )Nz8`take_along_axis` is not supported with openvino backendr_   )r5   r2  r6   s      r   take_along_axisrM    s    
B r   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   r   r	   r   rD   r   ru   r
   tanr   r   s      r   rO  rO    r  r   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   r   r	   r   rD   r   ru   r
   tanhr   r   s      r   rQ  rQ    r   r   c                     t        d      )Nz2`tensordot` is not supported with openvino backendr_   )r   r   r  s      r   	tensordotrS    r
  r   c                     t        d      )Nz.`round` is not supported with openvino backendr_   )r5   decimalss     r   roundrV    rb   r   c                     t        d      )Nz-`tile` is not supported with openvino backendr_   )r5   r  s     r   tilerX    r  r   c                     t        d      )Nz.`trace` is not supported with openvino backendr_   r(  s       r   tracerZ    rb   r   c                     t        d      )Nz,`tri` is not supported with openvino backendr_   NMr   r0   s       r   trir_        
L
MMr   c                     t        d      )Nz-`tril` is not supported with openvino backendr_   r%  s     r   trilrb    r  r   c                     t        d      )Nz-`triu` is not supported with openvino backendr_   r%  s     r   triurd    r  r   c                     t        d      )Nz-`vdot` is not supported with openvino backendr_   r  s     r   vdotrf    r  r   c                     t        d      )Nz/`vstack` is not supported with openvino backendr_   )r  s    r   vstackrh    r  r   )excluded	signaturec                    t        d      )Nz2`vectorize` is not supported with openvino backendr_   )pyfuncri  rj  s      r   	vectorizerm    r
  r   c                     t        d      )Nz.`where` is not supported with openvino backendr_   )	conditionr   r   s      r   whererp    rb   r   c                 z   d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | j                               }t        |j                               }t        j                  ||t              }t        |   }t        j                  | |      j                  d      } t        j                  ||      j                  d      }t        t        j                  | |      j                  d            S r   )r   r
   r   r   r   r   r   rt   r   r	   r   ru   r   )r   r   r   r   r   rt   s         r   r   r     s    L")*yy113")*yy113	r<	(B	r<	(Br2245Gr2245G$$Wgu=K!+.K			"k	*	1	1!	4B			"k	*	1	1!	4Bxr26==a@AAr   c                     t        d      )Nz6`divide_no_nan` is not supported with openvino backendr_   r  s     r   divide_no_nanrs    s    
@ r   c                     t        | |      S r  )r   r  s     r   true_divideru    s    "b>r   c                 Z   d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nzpower()r   )r   r
   r   r   r   r   r   r?  r   s      r   r?  r?    rX  r   c                 r    t        |       } t        t        j                  |       j	                  d            S r   )r   r
   r   negativer   rU   s    r   rx  rx    rV   r   c                     t        |       } t        j                  d| j                               j	                  d      }t        t        j                  | |      j	                  d            S )Nr   r   )r   r   r1   r   r   r
   r?  )r5   rA  s     r   squarerz    sS    aA!!!Q%7%7%9:AA!DIx~~a;BB1EFFr   c                 r    t        |       } t        t        j                  |       j	                  d            S r   )r   r
   r   r@  r   rU   s    r   r@  r@    r   r   c                 R   t        |       } |:g }t        | j                               D ]  \  }}|dk(  s|j                  |        t	        j
                  |t        j                        j                  d      }t        t	        j                  | |      j                  d            S r  )r   	enumerater   r   r   r1   r   r2   r   r
   r   )r5   r6   idxdims       r   r   r     s    aA|!!"5"5"78 	!HCaxC 	! T488,33A6Dx//48??BCCr   c                 &   t        |       } |#t        j                  | d      j                  d      }t        j                  |d      j                  d      }t        j                  g t
        j                        j                  d      }t        j                  ||d      j                  d      }t        j                  dt
        j                        j                  d      }t        j                  ||      j                  d      }t        j                  |||d      j                  d      }n3t        j                  |t
        j                        j                  d      }t        t        j                  | |      j                  d            S )Nr   r   Fr.   )r   r   r   r   r1   r   r2   r3   r   r   rv   r
   r  )r5   r  r   r   r   r   r   s          r   r  r  *  s0   aA|##Au-44Q7""7E299!<((TXX6==a@!!&,>EEaH"++B9@@C!fo>EEaH~~O_e

&) 	   txx077:x11!T:AA!DEEr   c                    t        |       } |\t        j                  dgt        j                        j                  d      }t        j                  | |d      j                  d      } d}t        j                  |t        j                        j                  d      }t        j                  | ||      j                  d      }t        j                  d| j                               j                  d      }t        j                  | |      j                  d      }t        j                  ||      j                  d      }t        j                  |||      }t        t        j                  ||      j                  d            }	|	S r>  )r   r   r1   r   r2   r   r3   r4   r   r?  r
   r&   )
r5   r6   r7   r8   r;   rA  rB  rC  rD  rE  s
             r   varr  <  s6   aA| ))2$9@@CQu5<<Q?T488,33A6D 4299!<D!!!Q%7%7%9:AA!DIq),33A6I>>$	299!<L)))T8DN".,7>>qAH Or   c                     t        |       } t        j                  |t        j                        j                  d      }t        t        j                  | ||      j                  d            S r   )r   r   r1   r   r2   r   r
   r   r  s      r   sumr  P  sR    aAT488,33A6Dx221dHELLQOPPr   c                     t        d      )Nz,`eye` is not supported with openvino backendr_   r\  s       r   rz  rz  V  r`  r   c                     t        d      )Nz5`floor_divide` is not supported with openvino backendr_   r  s     r   floor_divider  Z      
? r   c                 V   t        |       } t        |      }t        j                  | t        j                        j                  d      } t        j                  |t        j                        j                  d      }t        t        j                  | |      j                  d            S r   )r   r   ru   r   ri   r   r
   logical_xorr  s     r   r  r  `  r  r   c                     t        d      )Nz2`correlate` is not supported with openvino backendr_   )r   r   r   s      r   	correlater  h  r
  r   c                     t        d      )Nz/`select` is not supported with openvino backendr_   )condlist
choicelistdefaults      r   r   r   n  r  r   c                     t        d      )Nz0`slogdet` is not supported with openvino backendr_   rU   s    r   slogdetr  r  r   r   c                     t        d      )Nz5`argpartition` is not supported with openvino backendr_   )r5   kthr6   s      r   argpartitionr  x  r  r   )NF)NFNr  )NNN)r.   )NNr  )r   )r.   r.   r.   N)r   r   rB   )rB   r.   )gh㈵>g:0yE>F)2   TFNr   )r  Tr  Nr   )r   NN)r1   N)NlinearF)r   )Nr   N)valid)numpyr   openvino.runtime.opset14runtimeopset14r   openvinor   keras.src.backendr   keras.src.backend.commonr   "keras.src.backend.common.variablesr   keras.src.backend.openvino.corer   r   r	   r
   r   r   r   r   r   r   r   r&   r)   r,   r;   r@   rM   rQ   rT   rX   r]   ra   re   rl   ro   r   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r  r  r  r  r!  r#  r&  r,  rM  rP  rR  rV  r   rZ  r^  ra  rc  re  rh  rk  r   r   rs  r~  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r   r  r  r   r   r  r  r  r9  r  r  r  r  r  r  r  r	  r  r  r  r  r3   r  r  r  r   r"  r$  r   r(  r<  rG  rI  rK  rM  rO  rQ  rS  rV  rX  rZ  r_  rb  rd  rf  rh  rm  rp  r   rs  ru  r?  rx  rz  r@  r   r  r  r  rz  r  r  r  r   r  r  rh   r   r   <module>r     st    + +  $ + @ 6 6 ; ? > 9 <	?N	D	P	D3
/
0?
?
	P	Q&Q&J<;<;<;'4T<-@-@/B3@*1ZN;
,$O:;N$P
COF'RN
-	A:F	'O<
		$	C	IG:O3&@
=
=
	@	F IJ:
''
'GBFCQ  (+VCEL("B$	E	$	$'$:OO"QOO;
:;OO+\$&	L:;POPNOOOQ #'$ PB"	A?
G;
DF$(QNGQr   