
    ijH!                    x   d dl 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 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 dlmZ d dlmZ d Zd Zd Z d Z!d Z"d Z#ddZ$ddZ%ddZ&ddZ'ddZ(d Z)d Z*d Z+dd Z,dd!Z-d" Z.dd#Z/dd$Z0dd%Z1d& Z2d' Z3dd(Z4dd)Z5d* Z6d+ Z7d, Z8d- Z9d. Z:d/ Z;d0 Z<dd1Z=dd2Z>dd3Z?dd4Z@dd5ZAd6 ZBd7 ZCd8 ZDd d9ZEd: ZFd; ZGd< ZHd= ZId> ZJd? ZKd@ ZLdA ZMdB ZNddCZOdD ZPdE ZQdF ZRdG ZSdH ZTdI ZUdJ ZVdK ZWdL ZXdM ZYddNZZdO Z[dP Z\dQ Z]dR Z^dS Z_ddTZ`ddUZad dVZbd dWZcdX ZddY ZeddZZfdd[Zgdd\Zhdd]Zid^ Zjd_ Zkd` ZlddaZmddbZndc Zodd Zpde Zqdf Zrdg ZsddhZtdi Zudj ZvddkZwdl ZxddmZyddnZzdo Z{ddpZ|dq Z}dr Z~ds Zdt Zdu ZddvZdw Zdx Zdy ZddzZd{ Zdd|Zd} Zd~ Zd Zd Zd	dZd Zd Zd Zd Zd Zd Z	 d
dZd Zd Zd Zd Zd Zd Zd Zd Zd ZddZd Zd ZddZdddZddZd Zd Zd Zd Zd ZddZddZd dZd dZddZddZddZddZddZddZd ZddZddZddZddZddZd Zd Zd ZddZddZd ZddZddZddZddZddZd Zd Zd ZddZd ZddZɐddZd Zd ZdÄ ZdĄ Zdń ZdƄ ZddǄZѐddȄZҐddɄZӐddʄZdd˄Zd̄ Zdd̈́Zdd΄Zdτ ZdЄ ZڐddфZېdd҄Zdӄ ZdԄ ZސddՄZߐddքZddׄZdd؄Zdل Zdڄ Zdۄ Zdddܜd݄Zd dބZd߄ Zd Zd Zd Zd Zd Zd Zd ZddZddZd ZddZd ZddZddZddZddZd Zd Zd ZddZddZd ZddZddZ 	 	 	 	 	 	 	 ddZd Zy(      N)Type)config)KerasVariable)dtypes)canonicalize_axis)standardize_dtype)
DTYPES_MAX)
DTYPES_MIN)OPENVINO_DTYPESOpenVINOKerasTensor)align_operand_typesconvert_to_tensor)get_ov_output)ov_to_keras_type)shape_to_ov_output)
while_loopc                    t        | t        j                        rt        | j	                               nt        | dt        |             }t        |t        j                        rt        |j	                               nt        |dt        |            }t        t        j                  ||         }t        | |      } t        ||      }| |fS )Ndtype)
isinstanceovOutputr   get_element_typegetattrtyper   r   result_typer   )x1x2t1t2target_types        u/var/www/html/emotional.easysim.app/public_html/venv/lib/python3.12/site-packages/keras/src/backend/openvino/numpy.py_promote_binary_op_typesr$      s     b"))$ 	,,./R$r(+  b"))$ 	,,./R$r(+ 
 "&"4"4R"<=K	r;	'B	r;	'Br6M    c                 :   t        | |      \  } }t        | |d      \  } }| j                         t        j                  k(  r.t        t        j                  | |      j                  d            S t        t        j                  | |      j                  d            S )Nzadd()r   )
r$   _align_operand_typesr   r   booleanr   ov_opset
logical_oroutputaddr   r   s     r#   r,   r,   ,   s}    %b"-FB!"b'2FB	,"8#6#6r2#>#E#Ea#HIIx||B3::1=>>r%   c                    |D cg c]  }t        |       }}|D cg c]  }t        |j                                }}|rt        j                  | nt        j                         }t        |      dhk(  rd}t        |   }dD 	ch c]  }	t        |	    }
}	||
vrt        |dv rdnd   }n|}|D cg c]<  }|j                         |k7  r%t        j                  ||      j                  d      n|> }}t        j                  ||       j                  d      }|j                         |k7  r%t        j                  ||      j                  d      }t        |      S c c}w c c}w c c}	w c c}w )Nint8int32)float16bfloat16float32float64r0   int64)uint32uint64r5   r   )r   r   r   r   r   r   floatxsetr   r)   convertr+   einsumr   )
subscriptsoperandskwargsoperandinputsinpkeras_typesresult_dtypeov_result_typet_ov_einsum_okov_compute_typeresults                r#   r;   r;   4   s   4<=mG$=F=GMN#C$8$8$:;NKN,7K(V]]_  ;F8#$\2N Q 	M  ]*)#';;G
 )
 	  !_4 	o.55a8	F  __VZ077:F N2!!&.9@@Cv&&9 >Ns   E E!E&1AE+c                 :   t        | |      \  } }t        | |d      \  } }| j                         t        j                  k(  r.t        t        j                  | |      j                  d            S t        t        j                  | |      j                  d            S )Nz
subtract()r   )
r$   r'   r   r   r(   r   r)   logical_xorr+   subtractr-   s     r#   rK   rK   T       %b"-FB!"b,7FB	,"8#7#7B#?#F#Fq#IJJx00R8??BCCr%   c                 t   d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | j                               dk(  rot        |j                               dk(  rSt        d   }t        j                  | |      j                  d      } t        j                  ||      j                  d      }t        | |d      \  } }t        t        j                  | |dd      j                  d            S )Nr/   r0   r   zmatmul()F)r   r   r+   r   r   r   r   r)   r:   r'   matmul)r   r   element_type
int32_types       r#   rN   rN   \   s   L")*yy113")*yy113	r<	(B	r<	(B 	,,./69R0023v=$W-
b*-44Q7b*-44Q7!"b*5FBxr2ueDKKANOOr%   c                 :   t        | |      \  } }t        | |d      \  } }| j                         t        j                  k(  r.t        t        j                  | |      j                  d            S t        t        j                  | |      j                  d            S )N
multiply()r   )
r$   r'   r   r   r(   r   r)   logical_andr+   multiplyr-   s     r#   rT   rT   r   rL   r%   c                    t        |       }|j                         }|d u }t        ||      \  }}|t        |      S |j	                         r@t
        t        j                            }t        j                  ||      j                  d      }t        j                  |||      j                  d      }	|r|r| j                         j                  j                         }
dg|
z  }t        j                  |	t        j                   |t"        j$                        j                  d      d      j                  d      }	t        |	      S Nr      F)r   r   _resolve_axisr   is_integralr   r   r8   r)   r:   r+   reduce_meanget_partial_shaperank
get_lengthreshapeconstantr   i32)xaxiskeepdimsx_ovx_typewas_axis_none
x_resolvedaxis_resolvedov_typerH   r\   result_shapes               r#   meanrk   z   s   D""$FDLM -dD 9J"4((!&--/2%%j':AA!D
!!*mXFMMaPFM""$))446sTz!!lDHH5<<Q?
 &)	 	 v&&r%   c                      t        | d|||      S )Nmax_compute_extremara   rb   rc   initials       r#   rm   rm          AudHg>>r%   c                    |dk(  r!t         j                  }t         j                  }n4|dk(  r!t         j                  }t         j                  }nt        d|       t        |       } | j                         }| }|t        j                  k(  }	|	rCt        j                  | t        j                        j                  d      } t        j                  }t        |t              rt        |      dk(  rt!        |       S |d u }
t#        | |      \  } } || ||      j                  d      }|=t        j$                  ||      j                  d      } |||      j                  d      }|r|
rt        j&                  |t        j                        j                  d      }t        j&                  |t        j                        j                  d      }t        j$                  dt        j                        j                  d      }t        j(                  ||      j                  d      }t        j*                  ||d      j                  d      }|	r3t        j                  |t        j                        j                  d      }t!        |      S )Nminrm   z+Operation must be 'min' or 'max', received r   rW   F)r)   
reduce_minminimum
reduce_maxmaximum
ValueErrorr   r   r   r(   r:   r`   r+   r   tuplelenr   rX   r_   shape_of	broadcastr^   )ra   	operationrb   rc   rq   reduction_opelementwise_opre   
x_for_rankis_boolrf   rH   initial_tensor
orig_shapeorig_rank_shapeonerj   s                    r#   ro   ro      s   E**!))	e	**!))9)E
 	
 	aA!FJ$GQ)003$3t9>"1%%DLMAt$GAt!T8,33A6F!**7F;BB1E7>>qAM&&z488<CCAF
"++JAHHK488,33A6))#?FFqI!!&,>EEaH!!&$,,7>>qAv&&r%   c                 N   t        |      xs t        j                         }t        |   }t	        j
                  d|      j                  d      }t        | t              r| g} t        t        |             }t	        j                  ||      }t        |j                  d            S NrW   r   r   r   r8   r   r)   r_   r+   r   intr   listr}   r   )shaper   ri   	const_oneoutput_shapeoness         r#   r   r      s    e$7Ee$G!!!W-44Q7I%%d5k2Li6Dt{{1~..r%   c                 P   t        |      xs t        j                         }t        |   }t	        j
                  d|      j                  d      }t        | t              r| g} t        t        |             }t	        j                  ||      }t        |j                  d            S Nr   r   r   )r   r   ri   
const_zeror   zeross         r#   r   r      s    e$7Ee$G""1G4;;A>J%%d5k2Lz<8Eu||A//r%   c                     t        |       } | j                         }|t        j                  k(  rt	        |       S t	        t        j                  |       j                  d            S Nr   )r   r   r   r(   r   r)   absoluter+   ra   re   s     r#   r   r      sR    aA!F"1%%x003::1=>>r%   c                 r    t        |       } t        t        j                  |       j	                  d            S r   )r   r   r)   r   r+   ra   s    r#   absr      -    aAx003::1=>>r%   c                 X   t        |       } | j                         }|j                         s|t        j                  k(  r@t
        t        j                            }t        j                  | |      j                  d      } t        t        j                  |       j                  d            S r   )r   r   rY   r   r(   r   r   r8   r)   r:   r+   r   r   ra   re   ri   s      r#   fabsr      s    aA!Fv5!&--/2Q(//2x003::1=>>r%   c                    t        |       } t        | |      \  } }|t        |       S t        j                  | t
        j                        j                  d      } t        t        j                  | ||      j                  d            S r   )	r   rX   r   r)   r:   r   r(   r+   reduce_logical_andra   rb   rc   s      r#   allr      sw    aAAt$GAt|"1%%DLL)003A##AtX6==a@ r%   c                    t        | t              st        |t              st        | t        j                        sot        |t        j                        sU	 t        t	        j
                  t        j                  | ||||      t        j                        j                  d            S t        t        | ||||            S # t        $ r Y $w xY w)N)rtolatol	equal_nanr   )r   r   r   r   r)   r_   npallcloser   r(   r+   	Exceptionr   isclose)r   r   r   r   r   s        r#   r   r     s    r./2232ryy)2ryy)
	&!!KKBT	 LL	
 &)  wr2DtyIJJ  		s   AC 	CCc                    t        |       } | j                         }|j                         s|t        j                  k(  rNt        j                  | t        t        j                                  j                  d      } | j                         }t        j                  d|      j                  d      }t        j                  t        t        j                        |      j                  d      }t        j                  | |      j                  d      }t        j                   |||      j                  d      }t#        |      S r   )r   r   rY   r   r(   r)   r:   r   r   r8   r+   r_   floatr   pilessselectr   )ra   re   zeror   is_negativerH   s         r#   angler     s    aA!F v5Q @AHHK##%Q'..q1D			5<	0	7	7	:B--4(//2K__["d3::1=Fv&&r%   c                    t        |       } t        | |      \  } }|t        |       S t        j                  | t
        j                        j                  d      } t        t        j                  | ||      j                  d            S r   )	r   rX   r   r)   r:   r   r(   r+   reduce_logical_orr   s      r#   anyr   )  sw    aAAt$GAt|"1%%DLL)003A""1dH5<<Q? r%   c                 R   t        |       } | j                         }t        | |      \  } }|t        |       S |t        j
                  k(  r/t        t        j                  | ||      j                  d            S t        t        j                  | ||      j                  d            S r   )
r   r   rX   r   r   r(   r)   r   r+   rw   ra   rb   rc   re   s       r#   amaxr   4  s    aA!FAt$GAt|"1%%"&&q$9@@C
 	
 x221dHELLQOPPr%   c                 R   t        |       } | j                         }t        | |      \  } }|t        |       S |t        j
                  k(  r/t        t        j                  | ||      j                  d            S t        t        j                  | ||      j                  d            S r   )
r   r   rX   r   r   r(   r)   r   r+   ru   r   s       r#   aminr   A  s    aA!FAt$GAt|"1%%"''4:AA!D
 	
 x221dHELLQOPPr%   c                 ~   |dk(  s|g k(  r| d f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      }| |fS )N r   F)	r)   r_   r   r`   r+   r^   r   rz   r   )ra   rb   flatten_shapes      r#   rX   rX   N  s    rzTRZ$w| ))2$9@@CQu5<<Q?$DzT488,33A6Dd7Nr%   c                    | j                         }|t        j                  k(  r5t        j                  | t        j
                        j                  d      } | S |t        j                  t        j                  fv r5t        j                  | t        j
                        j                  d      } | S |t        j                  t        j                  fv r3t        j                  | t        j                        j                  d      } | S r   )r   r   r(   r)   r:   r`   r+   i8i16u8u16u32r   s     r#   _upcast_type_if_neededr   [  s    !FQ)003
 H	 
DGGTXX&	&Q)003 H 
DGGTXX&	&Q)003Hr%   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)   r_   r   r`   r+   r^   r   concat)r   r   rb   r   s       r#   appendr   f  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           
          t         t        j                  t        f}t	        | |      xs t	        ||      xs t	        ||      }|s|dn| }|| n|}|dn|}|t        |      n2t        j                  t        |      t        |      t        |      d      }	t        t        j                  t        j                  ||||	            j                  d            S |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   rW   r0   r   )r   r   r   r   r   r   r   r   r   r)   r_   r   aranger+   r   r   r   r   r:   range)startstopstepr   _symbolic_types_is_symbolic_start_stop_stepkeras_dtyperi   
start_node	stop_node	step_nodes                 r#   r   r   q  s    +BII}EO5/* 	-dO,	-dO, 
 l4\t   e$##Vd5k4; 	 #		&%kBfQi
 	
 |#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   rY   r   r   r8   r)   r:   r   acosr+   r   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   rY   r   r   r8   r)   r:   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   rY   r   r   r8   r)   r:   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   rY   r   r   r8   r)   r:   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   rY   r   r   r8   r)   r:   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                  |      }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                   ||      }t        j"                  ||      }t        j$                  | |      }t        j                   | |      }t        j&                  | |      }t        j(                  |t        j*                  |	|      t        j,                  |	|            }t        j(                  |||      }t        j(                  |||      }t        j(                  |||      }t        j(                  ||	|      }t        j                  ||      }t        j(                  |||      }t/        |j1                  d            S )N           r   )r   r   r   r   r   r   r   r)   r:   is_nanr*   divider   r_   r   r   greaterr   greater_equalequalr   r,   rK   r   r+   )r   r   x1_typex2_typer   nan_x1nan_x2nan_maskra   yri   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	value_out	nan_value	final_outs                              r#   arctan2r    sN   	r	B	r	Br2245Gr2245G$$Wgu=K!+.K			"k	*B			"k	*B__R F__R F""662HBAaA!!#G			5<	1Bbeeai 0':G##U25519%5$5w?K""30J""2z2K--J/K((Z8K""2z2K..Z0KQ!R J //+z;GK//+wDK//+z;GKQ<I 
J7I)Y?Iy//233r%   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   rY   r   r   r8   r)   r:   r   atanhr+   r   s      r#   arctanhr
    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   rW   Frm   valueTkrb   modesortstableindex_element_typer   r[   r\   r]   r   r)   r_   r   r`   r+   r^   topksqueeze	ra   rb   rc   x_shaper\   r   r  topk_outputstopk_indicess	            r#   argmaxr    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   rW   Frt   r  Tr  r  r  s	            r#   argminr  0  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_dimsrt   r  r  rb   r  r  rW   )r   r[   r\   r]   r   r)   r_   r   r`   r+   r^   r|   reduce_prodgatherr  )ra   rb   r  r\   r   x_shape_tensorr  sorted_indicess           r#   argsortr&  P  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        | |      S Nr   r   ra   r   s     r#   arrayr*  q  s    Qe,,r%   c           	         ddl m} |r|j                  |      nd}t        | t        j
                        r~|-t        t        j                  |       j                  d            S t        t        j                  | j                  t	        j                  |                  j                  d            S t        |       }|j                         }t        |      }||}t        |   }||k(  rt        |      S |j                   }|j                   }		 |j#                         }
|
j%                         dk(  r|
j&                  }n9t)        j*                  |gg       }t)        j,                  |d      } |i       d   }|j.                  }|d   |z  |	z  }t1        |dd       |gz   }t	        j2                  |j5                         t        j6                        }t)        j8                  ||      }t	        j:                  t	        j2                  |j&                  t        j6                        |       t        t        j                  |      j                  d            S # t<        $ r Y nw xY w|j?                         r|j?                         stA        d	| d
| d      ||	k(  r.t        t        jB                  ||      j                  d            S ||	kD  rtE        ||||	      S tG        ||||	      S )u  Reinterpret the bytes of a tensor as a different dtype.

    Three execution paths:
      1. **NumPy fast path** — plain ``np.ndarray`` inputs are viewed
         directly and re-wrapped as an OpenVINO constant.
      2. **Constant folding** — if the OpenVINO subgraph backing *x*
         is parameter-free (e.g. a ``Constant`` node *or* an expression
         such as ``Broadcast``), it is compiled on CPU and the resulting
         NumPy array is viewed.
      3. **Symbolic bitwise decomposition** — for non-constant,
         integer-to-integer type changes the bit pattern is preserved
         using shift / mask / OR operations in the OpenVINO graph.
         Float ↔ int reinterpretation on symbolic tensors is not
         supported because OpenVINO lacks a bitcast op.
    r   )backendNConstant)results
parametersCPUr   r   z`view` from z to zx is not supported for non-constant tensors with the OpenVINO backend (no bitcast operation available in OpenVINO opset).)$	keras.srcr,  r   r   r   ndarrayr   r)   r_   r+   viewr   r   r   r   r   sizeget_nodeget_type_namedatar   Modelcompile_modelr   r   
frombuffertobytesuint8Tensorcopytor   rY   NotImplementedErrorr:   _view_int_expand_view_int_contract)ra   r   r,  	new_dtyperd   old_ov_type	old_dtypenew_ov_typeold_itemsizenew_itemsizenodenp_dataov_modelcompiled	old_shapenew_last	new_shaperawresult_tensors                      r#   r3  r3  u  s     "49))%0tI !RZZ &x'8'8';'B'B1'EFF"affRXXi%89:AA!D
 	
 D'')K -I	!),Kk!"4((##L##L
}}:-iiGxx2>H''%8Hrl1oGMM	R=</<?3B(H:5	mmGOO-RXX>		+y9
		MM-,,BHH=	
 #8#4#4]#C#J#J1#MNN  ##%+*A*A*C!9+T) 5B B
 	
 |#"T;/66q9
 	
 
	$k<NN!$\<PPs   E
I 	I'&I'c           
      F   t        j                  | d      j                  d      }t        j                  |t        j                  dgt
        j                        j                  d      t        j                  dgt
        j                        j                  d      t        j                  dgt
        j                        j                  d      t        j                  dgt
        j                        j                  d            j                  d      }t        j                  |t        j                  dgt
        j                        j                  d      t        j                  dt
        j                        j                  d            j                  d      }||fS )zReturn (leading_dims, last_dim) from the shape of *x*.

    ``leading_dims`` contains all dimensions except the last one,
    ``last_dim`` is a rank-1 tensor with the single last dimension.
    Both are ``i64`` OpenVINO outputs.
    i64r   r   rW   )r)   r|   r+   slicer_   r   rR  r#  )ra   r   leadinglast_dims       r#   _split_shape_leading_lastrV    s2    a'..q1Enn1#txx(//22$)0031#txx(//21#txx(//2 fQi  2$)003!TXX&--a0 fQi	 
 Hr%   c                 j   ||z  }t         j                  t         j                  t         j                  t         j                  d}||   }||   }|dz  }d|z  dz
  }	t        j                  | |      j                  d      }
t        j                  |	|      j                  d      }g }t        |      D ]  }t        j                  ||z  |      j                  d      }t        j                  |
|      j                  d      }t        j                  ||      j                  d      }t        j                  ||      j                  d      }t        j                  |t        j                  dt         j                              j                  d      }|j                  |        t        j                  |d      j                  d      }t!        |       \  }}t        j"                  |t        j                  |gt         j$                        j                  d            j                  d      }t        j                  ||gd      j                  d      }t        j&                  ||d      j                  d      }||k7  r%t        j                  ||      j                  d      }t)        |      S )u9   View a larger int as smaller ints (e.g. int32 → uint8).rW   r         rZ  rW   r   r   rb   F)r   r   r   r   u64r)   r:   r+   r_   r   bitwise_right_shiftbitwise_and	unsqueezer`   r   r   rV  rT   rR  r^   r   )ra   rE  rF  rG  ratio	_unsignedsrc_uint_typedst_uint_typebits_per_elemmask_valx_uintmask
byte_partsishiftshiftedmaskedpartconcat_resultrT  rU  rM  rN  rH   s                           r#   r@  r@    sA   L(EGGTXX$((CIl+Ml+M 1$M]"a'Ha/66q9FX}5<<Q?DJ5\  !!!m"3]CJJ1M..vu=DDQG%%gt4;;A>6==a@!!$(9(9"dhh(GHOO
 	$  OOJR8??BM 2!4GX  (##UGTXX6==a@fQi  ( 3!<CCAFImY>EEaHF#!!&+6==a@v&&r%   c                    ||z  }t         j                  t         j                  t         j                  t         j                  d}||   }||   }|dz  }t        j                  | |      j                  d      }	t        |       \  }
}t        j                  |t        j                  |gt         j                        j                  d            j                  d      }t        j                  |gt         j                        j                  d      }t        j                  |
||gd      j                  d      }t        j                  |	|d      j                  d      }t        j                  dt         j                        j                  d      }t        j                  dgt         j                        j                  d      }t        j                  |||      j                  d      }t        j                  |t        j                  dgt         j                               j                  d      }t        j                  ||      j                  d      }t#        d|      D ]<  }t        j                  |gt         j                        j                  d      }t        j                  |||      j                  d      }t        j                  |t        j                  dgt         j                               j                  d      }t        j                  ||      j                  d      }t        j                  ||z  |      j                  d      }t        j$                  ||      j                  d      }t        j&                  ||      j                  d      }? ||k7  r%t        j                  ||      j                  d      }t)        |      S )u9   View smaller ints as a larger int (e.g. uint8 → int32).rX  rZ  r   r[  Fr   rW   )r   r   r   r   r\  r)   r:   r+   rV  r   r_   rR  r   r^   r#  r  r`   r   bitwise_left_shift
bitwise_orr   )ra   rE  rF  rG  r`  ra  rb  rc  rd  rf  rT  rU  grouped_last	ratio_diminter_shapereshaped	last_axisidxbyte_0rH   ri  byte_irj  s                          r#   rA  rA    s
   L(EGGTXX$((CIl+Ml+M 1$Ma/66q9F 2!4GX??(##UGTXX6==a@fQi  !!5'4884;;A>I//	,	*fQi  U;BB1EH !!"dhh/66q9I


QC
*
1
1!
4C__XsI6==a@Ffh&7&7dhh&GHOO	F fm4;;A>F1e_ 	?TXX.55a83	:AA!D!!H%%rdDHH5

&) 	 !!&-8??B!!!m"3]CJJ1M,,VU;BB1E$$VV4;;A>	? #!!&+6==a@v&&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   FrR   r   )r   r)   r_   r   r`   r+   r^   r   rY   r(   r:   f32r'   rT   r   rz   r   r   rZ   )ra   rb   weightsr   re   weights_type
axis_constmean_opss           r#   averager  5  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        |       } t        j                  dt        j                        }t        j                  dt        j                        }t        j                  dt        j                        }t        j                  dt        j
                        }| j                         t        j                  k7  r$t        j                  | t        j                        } t        j                  | |      }t        j                  ||      }t        j                  dt        j
                        }t        j                  t        j                  ||      t        j
                        }t        j                  || |t        j
                        }	t        j                  |	|      }
t        j                  ||t        j                  |t        j
                              }t        j                  t        j                  ||	      |      }t        j                  ||      }t        j                  |
||      }t        j                  |t        j                   |            }t        j                  |||      }t        j                  |t"        t%        j&                                  j)                  d      }t+        |      S )Nr   rW   r          @      ?)r   r)   r_   r   rR  f64r   r:   rK   r   r   r   
less_equalr   rT   r}   r|   r   r   r8   r+   r   )ra   r   	one_const	two_consttwo_const_f64	denom_i64is_oneone_f64halfn	condition
safe_denom
first_halfsecond_halfwindowr   s                   r#   bartlettr  U  s   aA""1dhh/J!!!TXX.I!!!TXX.I%%c4884Mtxx'Q)!!!Y/I^^Iz2FTXX.GHOOIyA488LDz1i:A##At,I)))TXX>J -+J ##M:>K__Y
K@Fgx'8'8'@AD__VT62Ffofmmo&FGNN	F v&&r%   c                    t        |       }|j                         t        j                  k(  r|n#t	        j
                  |t        j                        }t	        j                  dt        j                        }t	        j                  dt        j                        }t	        j                  |||t        j                        }t	        j                  dt        j                        }t	        j                  ||      }t	        j                  |t	        j                  dt        j                              }t	        j                  dt        j                        }	t	        j                  ||	t	        j
                  |t        j                              }
t	        j                  dt        j                  z  t        j                        }t	        j                  ||
      }t	        j                  ||      } t	        j                   |       }t	        j                  dt        j                        }t	        j                  dt        j                        }t	        j                  |t	        j                  ||            }t	        j"                  |	t	        j$                  |            }t	        j                  |||      }t	        j
                  |t&        t)        j*                                  }t-        |j/                  d            S )Nr   rW   r  r  gHzG?gq=
ףp?r   r   r   rR  r)   r:   r_   r   r  rK   r   r   r   r   r   rT   cosr}   r|   r   r   r8   r   r+   )ra   mm_i64r   r   r  one_i64r  r  r  r  two_pitwo_pi_over_m_minus_1cabhamming_windowr   s                     r#   hammingr  y  s   aA !TXX-83C3CAtxx3P 
 a*EQ)DueT4884A488,G!!%1I^^Ix'8'8DHH'EFFTXX.G)))TXX>J sRUU{DHH5F$OOFJ?/3AQA 	$)A$)A&&q(*;*;Aq*ABN gx'8'8'HID__VT>BN%%8N ~44Q788r%   c                    t        |       }|j                         t        j                  k(  r|n#t	        j
                  |t        j                        }t	        j                  dt        j                        }t	        j                  dt        j                        }t	        j                  |||t        j                        }t	        j                  dt        j                        }t	        j                  ||      }t	        j
                  |t        j                        }t	        j                  dt        j                        }	t	        j                  |t	        j                  dt        j                              }
t	        j                  |
|	|      }t	        j                  dt        j                  z  t        j                        }t	        j                  ||      }t	        j                  ||      } t	        j                   |       }t	        j                  dt        j                        }t	        j                  dt        j                        }t	        j                  |t	        j                  ||            }t	        j"                  |	t	        j$                  |            }t	        j                  |
||      }t	        j
                  |t&        t)        j*                                  }t-        |j/                  d            S )Nr   rW   r  r        ?r  )ra   r  r  r   r   r  r  r  denomr  is_zeror  r  r  r  r  r  hanning_windowr   s                      r#   hanningr    s   aA !TXX-83C3CAtxx3P 
 a*EQ)DueT4884A488,G!!%1IY1E TXX.GnnY(9(9!TXX(FGG'59JsRUU{DHH5F$OOFJ?/3AQA 	#txx(A#txx(A&&q(*;*;Aq*ABN gx'8'8'HID__WdNCN%%8N ~44Q788r%   c                    t        |       } t        |      }t        | |d      \  } }t        | j                               }|dv rft        t        j                            }t        j                  | |      j                  d      } t        j                  ||      j                  d      }nW|dv rSt        d   }t        j                  | |      j                  d      } t        j                  ||      j                  d      }| j                         }t        j                  d|      j                  d      }t        j                  d|      j                  d      }t        j                  | |      j                  d      }t        j                  | |      j                  d      }t        j                  | |      j                  d      }	t        j                  |||       j                  d      }
t        j                  |||
      j                  d      }
t        j                  |	||
      j                  d      }
t        |
      S )Nzheaviside())r/   int16r0   r<  uint16r6   boolr   )r5   r7   r4   rW   )r   r'   r   r   r   r   r8   r)   r:   r+   r_   r   r   r   r   r   )r   r   re   ri   r   zero_scalar
one_scalarnegposeqra   s              r#   	heavisider    s   	r	B	r	B!"b-8FBb1134F   "&--/2b'*11!4b'*11!4	&	&!),b'*11!4b'*11!4!!#G##Aw/66q9K""1g.55a8J
--K
(
/
/
2C


2{
+
2
21
5C	K	(	/	/	2B["-44Q7AZ+2215AB"))!,Aq!!r%   c                 Z   t        |       }t        |      }t        j                  }t        j                  |t        j
                        j                  d      }t        j                  ||      j                  d      }t        j                  ||      j                  d      }t        j                  dt        j
                        j                  d      }t        j                  dt        j
                        j                  d      }t        j                  ||||      j                  d      }t        j                  d|      j                  d      }	t        j                  d|      j                  d      }
t        j                  t        j                  ||	      |
      j                  d      }t        j                  d|      j                  d      }t        j                  ||      j                  d      }t        j                  ||	|      j                  d      }t        j                  t        j                  ||      |      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                  ||      j                  d      }t        j                  |t"        t%        j&                                  j                  d      }t)        |      S )Nr   rW   r  r  r   )r   r   r  r)   r:   rR  r+   r_   r   r   rK   r   r   rT   rx   sqrti0r   r   r8   r   )ra   betar  	calc_typer  m_floatr   r   r  	one_float	two_floatalpha
zero_floatis_alpha_zero
safe_alphavalval_sqterm	sqrt_termargnumdenrH   s                          r#   kaiserr    s   aADIQ)003Eq),33A6GD),33A6Da*11!4EQ)003DueT95<<Q?A!!#y188;I!!#y188;IOO'9-yfQi 
 ""3	299!<JNN5*5<<Q?M	5AHHKJ
//(++Au5z
B
I
I!
LCsC(//2FY/66q9DD*-44Q7Dd#**1-I


D)
,
3
3A
6C
S'..C
T(//C__S#&--a0Ffofmmo&FGNN	F v&&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bitwise_left_shift()r   )r   r   r+   r   r   r'   r)   rp  ra   r   rO   s      r#   rp  rp    s    L!()xx002!()xx002a&Aa&A1&<=DAqx::1a@GGJKKr%   c                     t        | |      S N)rp  ra   r   s     r#   
left_shiftr  !  s    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bitwise_right_shift()r   )r   r   r+   r   r   r'   r)   r]  r  s      r#   r]  r]  %  s    L!()xx002!()xx002a&Aa&A1&=>DAqx;;AqAHHKLLr%   c                     t        | |      S r  )r]  r  s     r#   right_shiftr  1  s    q!$$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`rR  r   Fr   rW   r  r[  )ry   r   r   r)   r|   r+   r:   r_   r^   r,   rw   rx   one_hotrT   
reduce_sumr   r   r`   )ra   r|  	minlengthsparsere   shape_xrank_xscalar_shapeconst_minus_onerank_minus_oner   r   max_elementdepthdepth_scalarr  r}  weights_newfinal_one_hotfinal_outputs                       r#   bincountr  5  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        |       } t        |      }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nzbitwise_and()r   )r   r'   r   r)   r^  r+   r  s     r#   r^  r^  b  K    aAaA1o6DAqx33Aq9@@CDDr%   c                     t        |       } t        |      }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nzbitwise_xor()r   )r   r'   r   r)   bitwise_xorr+   r  s     r#   r  r  i  r  r%   c                 r    t        |       } t        t        j                  |       j	                  d            S r   )r   r   r)   bitwise_notr+   r   s    r#   bitwise_invertr  p  s-    aAx33A6==a@AAr%   c                     t        |       S r  )r  r   s    r#   r  r  u  s    !r%   c                     t        |       } t        |      }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nzbitwise_or()r   )r   r'   r   r)   rq  r+   r  s     r#   rq  rq  y  sK    aAaA1n5DAqx221a8??BCCr%   c           	         t        |       } t        j                  dt        j                        }t        j                  dt        j                        }t        j                  dt
        j                  z  t        j                        }t        j                  dt        j                        }t        j                  dt        j                        }t        j                  dt        j                        }| j                         t        j                  k7  r$t        j                  | t        j                        } t        j                  || |t        j                        }t        j                  t        j                  | t        j                        t        j                  dt        j                              j                  d      }t        j                  t        j                  |t        j                  dt        j                              t        j                  dt        j                        |      j                  d      }	t        j                  t        j                   ||      |	      }
t        j                   |
t        j                  dt        j                              }t        j"                  |
      }t        j"                  |      }t        j                   ||      }t        j                   ||      }t        j$                  t        j                  ||      |      }t        j                  t        j                  |t        j                  dt        j                              t        j                  dt        j                        |      j                  d      }t        j                  |t&        t)        j*                                  j                  d      }t-        |      S )	Nr   rW   r  gzG?r  g{Gz?r  r   )r   r)   r_   r   rR  r   r   r  r   r:   r   rK   r+   r   r   r   rT   r  r,   r   r   r8   r   )ra   r   r  r  term_1term_2term_3r  	n_minus_1n_minus_1_safe	angle_2pi	angle_4picos_2picos_4piterm_2_finalterm_3_finalr  s                    r#   blackmanr    s   aA""1dhh/J!!!TXX.IsRUU{DHH5FtTXX.FsDHH-FtTXX.Ftxx'Q)z1i:A!!DHH%x'8'8dhh'GfQi  __y("3"3C"BC#txx( fQi	 
  1 1&! <nMI!!)X->->sDHH-MNIll9%Gll9%G$$VW5L$$VW5L\\(++FLA<PF__y("3"3C"BC#txx( fQi	 
 fofmmo&FGNN	F v&&r%   c                     t        |t        t        f      st        d| dt	        |       d      t        t        |            }t        |       } t        t        j                  | |      j                  d            S )NzM`broadcast_to` is supported only for tuple and list `shape`. Received: shape=z (type )r   )r   rz   r   ry   r   r   r   r   r)   r}   r+   )ra   r   target_shapes      r#   broadcast_tor    su    eeT]+$gWT%[M<
 	
 &d5k2LaAx11!\BII!LMMr%   c                 "   t        |       } | j                         }|j                         s|t        j                  k(  r>t        j                  | t        t        j                                  j                  d      } t        j                  |       }t        j                  |       }t        j                  d| j                               }t        j                  ||      }t        j                  ||      }t!        |j                  d            S )Nr   gUUUUUU?)r   r   rY   r   r(   r)   r:   r   r   r8   r+   signr   r_   powerrT   r   )ra   re   sign_xabs_x	one_thirdroot_absress          r#   cbrtr    s    aA!Fv5Q @AHHK]]1Fa E!!)Q-?-?-ABI~~eY/H


FH
-Cszz!}--r%   c                 2   t        |       } | j                         }|j                         r>t        j                  | t
        t        j                                  j                  d      } t        j                  |       j                  d      }t        |      S r   )r   r   rY   r)   r:   r   r   r8   r+   ceilr   )ra   re   ceilings      r#   r  r    sr    aA!FQ @AHHKmmA%%a(Gw''r%   c                    t        |       } | j                         }|t        j                  k(  r3t	        j
                  | t        j                        j                  d      } t        || j                               }t        || j                               }t	        j                  | |      j                  d      }t	        j                  ||      j                  d      }t        |      S r   )r   r   r   r(   r)   r:   r`   r+   rx   rv   r   )ra   x_minx_maxre   clip_by_minclip_by_maxs         r#   clipr
    s    aA!FQ)003%!3!3!56E%!3!3!56E""1e,33A6K"";6==a@K{++r%   c                    | D cg c]  }t        |       }}|it        j                  dgt        j                        j                  d      }|D cg c](  }t        j                  ||d      j                  d      * }}d}|D cg c]  }t        |j                                }}|rbt        j                  | }t        |   }|D cg c]<  }|j                         |k7  r%t        j                  ||      j                  d      n|> }}t        j                  ||      j                  d      }t        |      S c c}w c c}w c c}w c c}w )Nr   r   F)r   r)   r_   r   r`   r+   r^   r   r   r   r   r   r:   r   r   )	xsrb   ra   elemsr   rB   r"   ov_target_typer   s	            r#   concatenater    sM   ')*!]1*E*| ))2$9@@CIN
DEHQu5<<Q?
 
 CHIa#A$6$6$89IKI((+6(5
 	
  !!#~5 Q/66q9
 
 //%
&
-
-a
0Cs##% +
 J
s   D>-E EAEc                     t        |       S r  r   r   s    r#   	conjugater         Qr%   c                     t        |       S r  )r  r   s    r#   conjr    s    Q<r%   c                     | S r  r   r   s    r#   copyr    s    Hr%   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   rY   r   r   r8   r)   r:   r   r  r+   r   s      r#   r  r    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   rY   r   r   r8   r)   r:   r   coshr+   r   s      r#   r  r    r   r%   c                    t        |       } t        j                  dt        j                        j                  d      }t        j                  ||       }t        j                  | |      j                  d      } t        j                  | t        j                        j                  d      } t        | |      \  } }|st        |       S t        t        j                  | |d      j                  d            S )Nr   r   F)r   r)   r_   r   r`   r+   convert_like	not_equalr:   rX   r   r  )ra   rb   zero_constants      r#   count_nonzeror    s    aA%%atxx8??BM))-;M1m,33A6ADHH%,,Q/AAt$GAt"1%%x221dEBII!LMMr%   c                    ||x}x}}t        |       } t        |      }t        | |d      \  } }| j                         }|j                         }|j                  j	                         }|j                  j	                         }	t        ||      }t        ||	      }t        |||	kD  r|n|	      }||   j	                         }
||   j	                         }|
dvs|dvrt        d|
 d| d      d } || |
|      } ||||      }t        j                  |t        j                  |t        j                        d      j                         }t        j                  |t        j                  |t        j                        d      j                         }t        j                  t        j                  |d   |d	         t        j                  |d	   |d               }t        j                  t        j                  |d	   |d
         t        j                  |d
   |d	               }t        j                  t        j                  |d
   |d         t        j                  |d   |d
               }|
d	k(  rA|d	k(  r<|}t        j                  |t        j                  |gt        j                              }nt        j                   |||g|      }t#        |j%                  d
            S )Nzcross())r      zFDimension of vectors for cross product must be 2 or 3. Got dimensions z and z for inputs x1 and x2.c                 h   |dk(  r| S t        j                  | t        j                  dgt        j                        t        j                  |t        j                              }t        j
                  |t        j                  d| j                                     }t        j                  | |g|      S )Nr!  r   )r)   r#  r_   r   r`   rT   r   r   )ra   dimaxslice0r   s        r#   	pad_to_3dzcross.<locals>.pad_to_3d2  s    !8H qc488,b$((+

 !!a!3!3!56

 5z2..r%   r!  rW   r   r   )r   r'   r[   r\   r]   r   ry   r)   splitr_   r   r`   outputsrK   rT   r  r   r   r+   )r   r   axisaaxisbaxiscrb   shape1shape2rank1rank2d1d2r&  x1_3dx2_3duvres_xres_yres_zrH   s                        r#   crossr9    s    $$$	r	B	r	B!"b)4FB!!#F!!#F KK""$EKK""$EeU+EeU+EeeemUGE		!	!	#B		!	!	#B	2V+ Trd*@B
 	
/" b"e$Eb"e$E 	uh//txx@!DLLNAuh//txx@!DLLNA !A$!%x'8'81qt'DE !A$!%x'8'81qt'DE !A$!%x'8'81qt'DE
 
Qw27!!&(*;*;UGTXX*NO%!6>v}}Q/00r%   c           	         t        |       } | j                         }|6t        t        |         }|t        j
                  k(  r6t        j                  }n%|}|t        j
                  k(  rt        j                  }|t        j
                  k(  rCt        j                  | t        j                        j                  d      } t        j                  }d}|j                         r8t        j                  }t        j                  | |      j                  d      } d}n|}t        | |      \  } }t        j                  |       j                  d      }t        j                  |t        j                  d|            j                  d      }t        j                   |t        j                  d|      |      j                  d      }	t        j"                  |	t        j                  d|            j                  d      }
t        j$                  t        j                  |
t        j                        |      j                  d      }t        j&                  |t        j                  dt        j                              j                  d      }t        j(                  t        j                  dt        j                        t        j*                  t        j                  dt        j                        |            j                  d      }t        j                  ||      j                  d      }t        j,                  |       j                  d      }t        j                  |t        j                  d|            j                  d      }t        j                   |t        j                  d|      |      j                  d      }t        j.                  |      j                  d      }t        j$                  ||      j                  d      }t        j0                  |      j                  d      }t        j*                  ||      j                  d      }t        j                  | t        j                  d|            j                  d      }t        j$                  t        j                  |t        j                        |      j                  d      }t        j                  |t        j                  dt        j                              j                  d      }t        j*                  |t        j                  ||            j                  d      }|r4|j                         r$t        j2                  |      j                  d      }|j                         |k7  r%t        j                  ||      j                  d      }t5        |      S )Nr   FTrW   r   )r   r   r   r   r   r(   r`   r)   r:   r+   rY   r{  rX   r  r   r_   r   r   cumsummodrK   rT   r   logexproundr   )ra   rb   r   re   ri   compute_as_floatcompute_dtypesignsis_zero_signsigns_no_zerosr   num_negativesis_oddcum_signr  is_zero_abs
abs_x_safe	log_abs_xcumsum_log_abscumprod_absrH   r  has_zero_before	zero_masks                           r#   cumprodrO  _  se   aA!F !"3E":;dll"hhGdll"hhG Q)003Q.55a8At$GAtMM!##A&E>>x  M2fQi  __h''=95fQi  --))!];fQi  OOdhh/fQi  \\-):):1dhh)GHOO	F   !TXX&(++Atxx8&A fQi  -8??BHa ''*E..x  M2fQi  X&&q-8%fQi  Z(//2I__Y5<<Q?N,,~.55a8K{H5<<Q?FnnQ 1 1!] CDKKANGoo$((+TfQi  **1dhh7fQi    M:fQi  G//1'..q1 G+!!&'299!<v&&r%   c                    t        |       } |7t        t        |         }t        j                  | |      j                  d      } t        | |      \  } }| j                         t        j                  k(  r3t        j                  | t        j                        j                  d      } t        t        j                  | |      j                  d            S r   )r   r   r   r)   r:   r+   rX   r   r   r(   r`   r   r;  )ra   rb   r   ri   s       r#   r;  r;    s    aA!"3E":;Q(//2At$GAtt||+Q)003xq$7>>qABBr%   c                    t        |       } | j                         }t        j                  dz  }|t        j
                  k(  rt        j                  }n.|j                         rt        t        j                            }n|}||k7  rt        j                  | |      } t        j                  ||      j                  d      }t        j                  | |      j                  d      }t!        |      S Ng     f@r   r   r   r   r   r   rR  r  rY   r   r   r8   r)   r:   r_   r+   rT   r   )ra   re   pi_over_180output_typeconst_pi_over_180rH   s         r#   deg2radrW    s    aA!F%%%-Khh				%fmmo6Q, ))+{CJJ1Mq"34;;A>Fv&&r%   c                    t        |       } | j                         }dt        j                  z  }|t        j
                  k(  rt        j                  }n.|j                         rt        t        j                            }n|}||k7  rt        j                  | |      } t        j                  ||      j                  d      }t        j                  | |      j                  d      }t!        |      S rR  rS  )ra   re   _180_over_pirU  const_180_over_pirH   s         r#   rad2degr[    s    aA!F255=Lhh				%fmmo6Q, )),DKKANq"34;;A>Fv&&r%   c                    t        |       } | j                         }|j                  j                         }|dk(  r|d   }|j                  st        d      |j                         }|t        j                  |      z   }t        j                  ||gt        j                        j                  d      }t        j                  d| j                               j                  d      }t        j                  ||      }	g }
|dk\  r't        |      D ]  }|
j!                  |||z   g        n&t        |      D ]  }|
j!                  ||z
  |g        t        j"                  |
t        j$                        }
t        j                  |
t        j                        j                  d      }t        j&                  |	||       }t)        |j                  d            S |dk(  r|d   }|d   }|j                  r|j                  st        d      |j                         }|j                         }|dk\  rA||z
  dkD  rt        j*                  |||z
        nd}t        |      D cg c]	  }|||z   g }
}n@||z   dkD  rt        j*                  ||z   |      nd}t        |      D cg c]	  }||z
  |g }
}|dk  rt-        | j                               }t        j.                  |      }t        j0                  d|      }t        j                  || j                               j                  d      }t)        |      S t        j"                  |
t        j$                        }
t        j                  |
t        j                        j                  d      }t        j2                  | |      }t)        |j                  d            S t        d      c c}w c c}w )	NrW   r   z3diag requires input with static shape for 1D input.r   r   z3diag requires input with static shape for 2D input.r   z#diag supports only 1D or 2D tensors)r   r[   r\   r]   	is_staticry   r   r   r)   r_   r   r`   r+   r   r}   r   r   r*  r0   scatter_nd_updater   rv   r   r   empty	gather_nd)ra   r  r  r\   N_dimNoutput_size	out_shapezeros_constdiag_matrixindicesri  indices_constupdatedM_dimMLr   np_dtypeempty_npempty_constdiag_vecs                         r#   diagrr    sN   aA!!#G<<""$Dqy
E  "&&)m%%+&dhh

&) 	 ''1+=+=+?@GGJ((i@61X +1q5z*+ 1X +Aqz*+ ((7"((3 ))'BII!L,,[-K"7>>!#455	

eooE  6)*Q!

1a!e$A+084a1q5z4G4)*Q!

1q5!$A+084aAqz4G46*1+=+=+?@Kxx,HxxH5H"++!,,.fQi  '{33((7"((3 ))'BII!L%%a7"8??1#566 >??) 5 5s   %O&Oc           
         t        |       } t        j                  dgt        j                        j                  d      }t        j                  | |d      j                  d      }t        j                  |t        j                        j                  d      }t        j                  dt        j                        j                  d      }t        j                  |||      j                  d      }t        |      }|dk  r| }n|}t        j                  |t        j                  |t        j                        j                  d            j                  d      }	t        j                  t        j                  |	t        j                  dgt        j                        j                  d      d      j                  d      t        j                  |	t        j                  dgt        j                        j                  d      d      j                  d      gd      j                  d      }
| j                         }t        j                  d|      j                  d      }t        j                  ||
      j                  d      }t        j                  dt        j                        j                  d      }t        j                  |||t        j                        j                  d      }t        j                  |t        j                        j                  d      }|dk\  r(|}t        j                  ||      j                  d      }n\t        j                  | t        j                        j                  d      }t        j                  ||      j                  d      }|}t        j                  |ddgd      j                  d      }t        j                  |ddgd      j                  d      }t        j                  ||gd      j                  d      }t        j                  |||      j                  d      }t!        |      S )Nr   r   r   FrW   )r   r)   r_   r   r`   r+   r^   r|   r#  r   r,   r   r   r}   r   r_  r   )ra   r  r   v_flatv_flat_shape	zero_noder  k_valabs_kn_plus_ktarget_shape_vecv_typer   	zeros_matone_noderngk_constrowscolsneg_k_constrows_expandedcols_expandedrh  rH   s                           r#   diagflatr  /  sV   aA%%rd$((;BB1EMa6==a@F$$VTXX6==a@L!!!4884;;A>Ii;BB1EAFEqy||	8U$((3::1=fQi   !!1#TXX6==a@ fQi!!1#TXX6==a@ fQi	
 	
 fQi   !F""1F3::1=J"":/?@GGJI  $((3::1=H
..Ax
:
A
A!
DCTXX6==a@Gz||C)003''dhh?FFqI||C-44Q7$$TB7E:AA!DM$$TB7E:AA!DMoo}m<a@GGJG''	7FCJJ1MFv&&r%   c                    t        |       } | j                         }| j                         j                  j                         }|t	        d      |dk  rt	        d|       t        ||      }t        ||      }||k(  rt	        d      ||gt        |      D cg c]  }||k7  s	||k7  s| c}z   }t        j                  |t        j                        j                  d      }t        j                  | |      }	||   }
||   }|
j                  r|j                  st	        d| d| d	      |
j                         }|j                         }|dk\  rA||z
  dkD  rt        j                  |||z
        nd}t        |      D cg c]	  }|||z   g }}n@||z   dkD  rt        j                  ||z   |      nd}t        |      D cg c]	  }||z
  |g }}t        j                   |t        j"                        j%                  |d      }t        j                  |t        j                        j                  d      }t        j&                  |	|      }|d
z
  }t)        t        d
|            dgz   }t        j                  |t        j                        j                  d      }t        j                  ||      }t+        |j                  d            S c c}w c c}w c c}w )Nz2`diagonal` requires input tensor with static rank.r   z:diagonal requires input tensor with rank >= 2.Given rank: z'`axis1` and `axis2` cannot be the same.r   r   zE`diagonal` requires input tensor with static shape for axes `axis1` (z) and `axis2` (z).rW   )r   r[   r\   r]   ry   r   r   r)   r_   r   r`   r+   	transposer^  r   rv   r*  r0   r^   ra  r   r   )ra   offsetaxis1axis2r   r\   ri  
perm_order
perm_constx_transposedrb  rk  rc  rl  rm  rh  ri  diag_gatheredout_rankout_perm_orderout_perm_constr  s                         r#   diagonalr  m  s   aA!E %%002D|MNNaxHO
 	
 eT*EeT*E~BCC;#!u*e# J "":TXX>EEaHJ%%a4L%LE%LE??%//woeWB8
 	
 	AA{*+f*)9BJJq!f*%q,1!H5qAq6z?55*+f*)9BJJq6z1%q,1!H5qAJ?55hhwbhh/771=G%%gTXX>EEaHM&&|]CMaxH%8,-3N&&~TXXFMMaPN%%m^DL|221566A#" 6 6s   
K'K-K	K 
K%c                 8   |dk(  rt        t        |             S |dk  rt        dt        |             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 rW   r   )	r7  beginendstrides
begin_maskend_masknew_axis_maskshrink_axis_maskellipsis_maskr   )r   r   ry   reprr   r   r   r2  ndimr[   r\   r]   r   r)   r_   r*  r5   r   rR  r+   strided_slicer(   r  rK   )r  r  rb   a_typer\   rH   _r  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#   diffr    s#   Av"=#3441u>tAwi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        |       }t        |t              rt        |      }nSt        j                  |      }|j
                  dk7  rt        d      t        j                  |      j                  d      }t        ||d      \  }}|j                         t        j                  k(  rft        j                  |t        j                        j                  d      }t        j                  |t        j                        j                  d      }t        j                   ||t        j"                  d      j                  d      }t        |      S )NrW   z`bins` must be 1-D array-liker   z
digitize()FrU  with_right_bound)r   r   r   r   asarrayr  ry   r)   r_   r+   r'   r   r   r(   r:   r{  	bucketizer`   )ra   binsx_node	bins_nodebins_nprH   s         r#   digitizer    s   1F$+,!$'	**T"<<1<==%%g.55a8	,VYMFI DLL0!!&$((3::1=$$Y9@@C	HH	
 fQi  v&&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)   rT   rN   r   r   rO   s      r#   dotr    s    L")*yy113")*yy113	r<	(B	r<	(B!"b'2FB	""a'2+?+?+A+F+F!+K"8#4#4R#<#C#CA#FGGxr2ueDKKANOOr%   c                    t        | t        t        f      s| f} | D cg c]  }t        |       }}|d   j                  j                         }|D cg c]  }t        ||       }}g }|D ]  }|j                         }|j                  }|j                         }|dk(  rt        j                  |t        j                  dt        j                              j	                  d      }t        j                  |t        j                  dt        j                              j	                  d      }t        j                  |t        j                  dt        j                              j	                  d      }n|dk(  rt        j                  |t        j                  dt        j                              j	                  d      }t        j                  |t        j                  dt        j                              j	                  d      }nL|dk(  rGt        j                  |t        j                  dt        j                              j	                  d      }|j                  |        t!        dt#        |            D ]  }t%        |d   ||   d      \  |d<   ||<     t'        t        j(                  |d      j	                  d            S c c}w c c}w )Nr   rW   r   zdstack())r   r   rz   r   r+   r   r   r[   r\   r]   r)   r_  r_   r   r`   r   r   r{   r'   r   r   )	r  elemr  rO   processed_elemsr   r\   	shape_lenri  s	            r#   dstackr    se   b4-(U134t$4E48??335L;@A4]4.AEAO %&&(zzOO%	>%%h''4884fQi  %%h''4884fQi  %%h''4884fQi  !^%%h''4884fQi  %%h''4884fQi  !^%%h''4884fQi  	t$3%6 1c/*+ 
1EA 2J2
.OA.
 xBII!LMMI 5As   KKc                 P   t        |      xs t        j                         }t        |   }t	        | t
              r| g} t        t        |             }t        j                  d|      j                  d      }t        j                  ||      j                  d      }t        |      S r   )r   r   r8   r   r   r   r   r   r)   r_   r+   r}   r   )r   r   ri   
shape_noder   empty_tensors         r#   r`  r`  ;  s    e$7Ee$G%#DK0J""1G4;;A>J%%j*=DDQGL|,,r%   c                     t        | |      S r(  )
zeros_liker)  s     r#   
empty_liker  F  s    au%%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   J  s    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   rY   r   r   r8   r)   r:   r   r>  r+   r   s      r#   r>  r>  V  r  r%   c                    t        |       } | j                         }|j                         s|t        j                  k(  r@t
        t        j                            }t        j                  | |      j                  d      } t        j                  d| j                               j                  d      }t        j                  ||       j                  d      }t        |      S )Nr   r  )r   r   rY   r   r(   r   r   r8   r)   r:   r+   r_   r  r   )ra   re   ri   tworH   s        r#   exp2r  _  s    aA!Fv5!&--/2Q(//2


C!3!3!5
6
=
=a
@C^^C#**1-Fv&&r%   c                    t        |       } t        |t              rt        |      }t	        j
                  |t        j                        j                  d      }t        t	        j                  | |      j                  d            S r   )r   r   rz   r   r)   r_   r   r`   r+   r   r_  )ra   rb   s     r#   expand_dimsr  j  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   rW   )r   r   rY   r   r   r8   r)   r:   r>  r+   r_   rK   r   )ra   re   ri   exp_xr   rH   s         r#   expm1r  r  s    aA!F!&--/2Q(LLO""1%E!!!U%;%;%=>Iui077:Fv&&r%   c                    t        |       }t        |j                               }|t        d      |t	        t        |            }nt        |t              r|g}|D cg c]  }|dk  r||z   n| }}dg|z  }dg|z  }dg|z  }|D ]  }d||<   	 dg|z  }t        j                  ||||||      }	t        |	j                  d            S c c}w )NzYThe `flip` operation does not support tensors with dynamic rank for the OpenVINO backend.r   rW   r   r7  r  r  r  r  r  )r   r{   r[   ry   r   r   r   r   r)   r  r   r+   )
ra   rb   r  r  r  r  r  r  all_ones_maskrH   s
             r#   flipr  ~  s   1F v'')*D|(
 	

 |E$K 	D#	v.23AAH1$3D3C$JE#*CcDjG 
 C$JM## F v}}Q/00# 4s    Cc                     t        | d      S )NrW   r[  r  r   s    r#   fliplrr        ?r%   c                     t        | d      S Nr   r[  r  r   s    r#   flipudr    r  r%   c           	      8   t        |       } t        |t        t        f      rt	        |      dk7  rt        d      | j                         }|j                  j                         }|t        d      t        |d   |      }t        |d   |      }||k(  rt        d      |dz  }|dk(  rt        |       S | }t        |      D ]  }t        t        |            }	|	|   |	|   c|	|<   |	|<   t        j                  |	t        j                        j!                  d      }
t        j"                  ||
      j!                  d      }dg|z  }dg|z  }dg|z  }d||<   dg|z  }dg|z  }t        j$                  ||||||	      j!                  d      } t        |      S )
z=Rotate an array by 90 degrees in the plane specified by axes.r   z axes must be a tuple of length 2zL`rot90` does not support tensors with dynamic rank for the OpenVINO backend.r   rW   zaxes must be differentrY  r   r  )r   r   rz   r   r{   ry   r[   r\   r]   r   r   r   r)   r_   r   r`   r+   r  r  )r*  r  axesr   r  r  r  rH   r  permr  r  r  r  r  r  s                   r#   rot90r    s   % EdUDM*c$i1n;<<##%E::  "D|(
 	

 d1gt,Ed1gt,E~122	AAAv"5))F1X E$K #';U UT%[&&tTXX6==a@
##FJ7>>qA d
cDj#*S4Z
3:''!
 &) 	!2 v&&r%   c                    t        |       } | j                         }|j                         r/t        j                  | t
        t        j                                  } t        t        j                  |       j                  d            S r   )r   r   rY   r)   r:   r   r   r8   r   floorr+   r   s     r#   r  r    sb    aA!FQ @Ax~~a077:;;r%   c                    t        |      xs t        j                         }t        |   }t	        ||      }t        | t              r| g} t        t        |             }t        t        j                  ||      j                  d            S r   )r   r   r8   r   r   r   r   r   r   r   r)   r}   r+   )r   
fill_valuer   ri   r  s        r#   fullr    st    e$7Ee$Gz73J%%d5k2L:|4;;A> r%   c                    t        |       } t        j                  |       }|t        t	        |         }n| j                         }t        ||      }|j                         |k7  r%t        j                  ||      j                  d      }t        |t        t        j                  f      rut        |j                               dk7  rYt        j                  g t        j                         j                  d      }t        j"                  ||d      j                  d      }t        j$                  ||      j                  d      }t        |      S Nr   F)r   r)   r|   r   r   r   r:   r+   r   r   r   r   r{   r[   r_   r   r`   r^   r}   )ra   r  r   r  ri   fill_ovr  r   s           r#   	full_liker    s   aA"G!"3E":;$$&J0G!W,""7G4;;A>: 3RYY?@))+,1((TXX6==a@""7L%@GGJ


Wg
.
5
5a
8Cs##r%   c                    t        |       } t        |      }t        | |d      \  } }t        j                  |       j	                  d      } t        j                  |      j	                  d      }t        j
                  | |      j	                  d      }t        j                  |t        j                        j	                  d      }t        j                  | |      j	                  d      } t        j                  ||      j	                  d      }d }d }t        |       }t        |      }t        ||||f      }|d   S )Nzgcd()r   c                    t        |      }t        j                  d|j                               j	                  d      }t        j
                  ||      j	                  d      }t        j                  |t        j                        j	                  d      }t        j                  |t        j                        j	                  d      }t        j                  |t        j                  dt        j                              j	                  d      }t        j                  t        j                  dt        j                        j	                  d      |t        j                  dt        j                        j	                  d      t        j                        j	                  d      }t        j                  ||d      j	                  d      S rV   )r   r)   r_   r   r+   r  r|   r   rR  r  r`   r   r   )r  r  r   not_zeroshape_brank_brank_b_scalarr  s           r#   condzgcd.<locals>.cond  sK   !  A$6$6$89@@C%%a.55a8##Atxx077:""7DHH5<<Q? ((H%%a2

&) 	 ~~a*11!4a*11!4HH	

 &) 	 ))(D%@GGJJr%   c                    t        |       } t        |      }t        j                  d|j                               j	                  d      }t        j
                  ||      j	                  d      }t        j                  d|j                               j	                  d      }t        j                  |||      j	                  d      }t        j                  | |      j	                  d      }t        j                  |||       j	                  d      }t        j                  |||      j	                  d      }t        |      t        |      fS r  )	r   r)   r_   r   r+   r  r   	floor_modr   )	r  r  r   rg  r   safe_bmod_valnext_anext_bs	            r#   bodyzgcd.<locals>.body*  s	   !!  A$6$6$89@@C!!!T*11!41#5#5#78??Bq#.55a8$$Q/66q9q!,33A6w299!<"6*,?,GGGr%   )r   r'   r)   r   r+   r,   r|   r   r`   r}   r   r   )	r   r   temp_sumr  r  r  x1_ktx2_ktr.  s	            r#   gcdr  	  s   	r	B	r	B!"b'2FB	b		 	 	#B	b		 	 	#B ||B#**1-H$$Xtxx8??BL			B	-	4	4Q	7B			B	-	4	4Q	7BK&H"  #E#EteU^4G1:r%   c           	      f   t        |       } t        |      }|t        t        j                            }n	t        |   }t	        j
                  | |      j                  d      } t	        j
                  ||      j                  d      }t	        j                  |       j                  d      }t	        j                  |      j                  d      }t	        j                  |      j                  d      }	t	        j                  |      j                  d      }
t	        j                  d|      j                  d      }t	        j                  |      j                  d      }t	        j                  |	|      j                  d      }t	        j                  |
|      j                  d      }t        t        |      t        |      ||d||      }|dk(  r|S t	        j                  |       j                  d      }t        |      }t        t	        j                  ||      j                  d            S )Nr         $@
   )r  endpointbaser   rb   )r   r   r   r8   r)   r:   r+   r   r=  r_   r   logspacer   r  rT   )r   r   r  r  r   rb   rU  	abs_startabs_stop	log_startlog_stopconst_10log_10log10_start
log10_stoprH   
start_signresult_outputs                     r#   	geomspacer  C  s   % ED}%fmmo6%e,UK077:ED+.55a8DU#**1-I||D!((+HY'..q1I||H%,,Q/H  {3::1=H\\(#**1-F//)V4;;A>K6299!<JK(J'F axu%,,Q/J!&)M-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	greater()r   )r   r   r+   r   r   r'   r)   r   r  s      r#   r   r   o  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   {  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   rW   zhstack())r   r   rz   r   r+   r   r   r{   r[   to_shaper   r'   r   r)   r   )r  r  r  rO   is_1drb   ri  s          r#   hstackr    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                     t        |       }t        |j                               dk(  rt        | |d      S t        | |d      S )NrW   r   r[  )r   r{   r[   r'  )ra   indices_or_sectionsrd   s      r#   hsplitr    sB    D
4!!#$)Q+!44'a00r%   c                    d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | |d      \  } }| j                         }|j                         s|t        j                  k(  rGt        t        j                            }t        j                  | |      } t        j                  ||      }t        j                  |       }t        j                  |      }t        j                  ||      }t        j                   ||      }t        j"                  d|j                               }	t        j$                  |t        j"                  d|j                                     }
t        j&                  |
|	|      }t        j(                  ||      }t        j*                  |t        j,                  t        j.                  |	t        j*                  ||                        }t        |j                  d            S )Nzhypot()rW   r   )r   r   r+   r   r   r'   rY   r   r(   r   r   r8   r)   r:   r   rx   rv   r_   r   r   r   rT   r  r,   )r   r   rO   re   ri   x1_absx2_absmax_valmin_valr   is_zero_masksafe_divisorr`  rH   s                 r#   hypotr    s   L")*yy113")*yy113	r<	(B	r<	(B!"b)4FB  "Fv5!&--/2b'*b'*r"Fr"Fvv.Gvv.G


Aw779
:C>>""1g&>&>&@AL ??<g>LOOG\2Ehll3(9(9%(GHIF v}}Q/00r%   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_indexrU  )r   r   r{  r   strr   r)   r:   r`   r+   eyer   )r  r   ov_dtypen32identity_matrixs        r#   identityr&    s    aADHH5E%"5)


1dhh
'
.
.q
1Cll#aXO 55a899r%   c                 Z    t        |       } t        | j                  | j                        S r(  )r   r   r   r   r   s    r#   imagr(    s!    !A((r%   c                 8   t        |       } | j                         }|j                         r]|t        j                  k(  r
t
        d   }nt
        t        j                            }t        j                  | |      j                  d      } t        j                  |       j                  d      } | j                         }t        j                  d|      j                  d      }g d}g d}t        j                  | |      j                  d      }t        j                  ||      j                  d      }t        j                  |d   |      j                  d      }t        ddd      D ]c  }t        j                  ||   |      j                  d      }	t        j                   t        j                  ||      |	      j                  d      }e t        j"                  | |      j                  d      }
t        j                  ||
      j                  d      }t        j                  |d	   |      j                  d      }t        d
dd      D ]c  }t        j                  ||   |      j                  d      }	t        j                   t        j                  ||      |	      j                  d      }e t        j$                  |       j                  d      }t        j&                  |
      j                  d      }t        j                  ||      j                  d      }t        j                  ||      j                  d      }t        j(                  | |      j                  d      }t        j*                  |||      j                  d      }t-        |      S )Nr4   r   g      @)r  g$@g03@g,?N?g2t?gIx?gtHZr?)	g e3E?g-5?gՒ+Hub?gJNYgTPÂ?g'gZ?gUL+ߐg;^p?      r   rZ     )r   r   rY   r   rR  r   r   r8   r)   r:   r+   r   r_   r   rT   r   r,   rx   r>  r  r  r   r   )ra   re   ri   three_point_seven_five	p1_coeffs	p2_coeffst_Ares_Ari  r  safe_xt_Bres_Br  sqrt_safe_xfactorr  rH   s                     r#   r  r    s   aA!FTXX%i0G%fmmo6GQ(//2Qq!A!F%..tV<CCAFI
I //!3
4
;
;A
>C


C
%
,
,Q
/CilF3::1=E1b" IilF3::1=X..uc:A>EEaHI a!78??BF
//0&
9
@
@
CCilF3::1=E1b" IilF3::1=X..uc:A>EEaHI LLO""1%E--'..q1K__UK077:Ffe,33A6E##A'=>EEaHI__Yu5<<Q?Fv&&r%   c                 j   d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      }t	        ||      }|j                         j                  }|j                         j                  }|j                  xr |j                         dk(  }|j                  xr |j                         dk(  }|s|r>t        ||d      \  }}t        t        j                  ||      j                  d            S t        | |d      S )Nr   zinner())r   r8  )r  )r   r   r+   r   r   r[   r\   r^  r]   r'   r)   rT   	tensordot)	r   r   rO   x1_outx2_outx1_rankx2_rankis_x1_scalaris_x2_scalars	            r#   innerr@  	  s   L")*yy113")*yy1132|,F2|,F&&(--G&&(--G$$B););)=)BL$$B););)=)BL|-ffiH"8#4#4VV#D#K#KA#NOOR.11r%   c                    t         t        j                            }t        j                  t        |       |      } t        j                  t        |      |      }t        j                  t        |      |      }t        j                  t        |      |      }t        j                  t        j                  | |            }t        j                  |      }t        j                  |t        j                  ||            }t        j                  ||      }	|rRt        j                  t        j                  |       t        j                  |            }
t        j                  |	|
      }	t        |	j                  d            S r   )r   r   r8   r)   r:   r   r   rK   r,   rT   r  rS   isnanr*   r   r+   )r   r   r   r   r   r   abs_diffabs_x2total_toleranceis_closeboth_nans              r#   r   r   	  s   FMMO,E			-+U	3B			-+U	3BM$/7DM$/7D||H--b"56H\\"Fll4):):4)HIO""8_=H''r(:HNN2<NO&&x:xq122r%   c                     t        t        |             }t        t        |             }t        j                  ||      j                  d      }t        j                  |      j                  d      }t        |      S r   )r   isinfrB  r)   r*   r+   logical_notr   )ra   
inf_values
nan_valuesall_non_finite_values	is_finites        r#   isfiniterO  .	  sj     uQx(JuQx(J$//
JGNN	 $$%:;BB1EIy))r%   c                    t        |       } t        |      }t        j                  |       j                  d      }t	        | |d      \  } }t        j
                  dgt        j                        }t        j                  | |d      j                  d      } t        j                  ||d      j                  d      }|s$t        j                  |      j                  d      }t        j                  | d      j                  d      } t        j                  |d      j                  d      }t        j                  | |      j                  d      }t        j                  |d      j                  d      }|r$t        j                  |      j                  d      }t        j                  ||d      j                  d      }t        |      S )Nr   zisin()r   r   Fspecial_zerorW   )r   r)   r|   r+   r'   r_   r   rR  r^   uniquer_  r   r   rJ  r   )	r   r   assume_uniqueinvertr   	minus_onecmpresult_flatrH   s	            r#   isinrY  ;	  so   	r	B	r	B$$R(//2L!"b(3FB!!2$dhh7I			"ie	<	C	CA	FB			"ie	<	C	CA	FB__R ''*			B	"	)	)!	,B			B	"	)	)!	,B
..R
 
'
'
*C,,S!4;;A>K**;7>>qAk<?FFqIFv&&r%   c                     t        t        |             }t        t        |             }t        j                  ||      j                  d      }t        |      S r   )r   isposinfisneginfr)   r*   r+   r   )ra   pos_infneg_infinfs       r#   rI  rI  Q	  sF    HQK(GHQK(G


gw
/
6
6q
9Cs##r%   c                    t        |       } | j                         }|j                         r/t        j                  | t
        t        j                                  } t        t        j                  |       j                  d            S r   )r   r   rY   r)   r:   r   r   r8   r   r   r+   r   s     r#   rB  rB  X	  sb    aA!FQ @Axq188;<<r%   c                     t        | d      S )NF)r  _is_infr   s    r#   r\  r\  `	  s    1%  r%   c                     t        |       S r  rb  r   s    r#   r[  r[  d	  s    1:r%   c                    |rt         j                  nt         j                   }t        |       } | j                         }|j	                         s|t
        j                  k(  rt        j                  | d      j                  d      }t        j                  dt
        j                        j                  d      }t        t        j                  ||      j                  d            S |t
        j                  k(  rt        j                  | t
        j                        j                  d      }t        j                  |t
        j                        j                  d      }t        j                   ||      j                  d      }t        |      S |t
        j"                  k(  r4t        j                  |t
        j"                        j                  d      }n|t
        j                  k(  r4t        j                  |t
        j                        j                  d      }nz|t
        j$                  k(  r4t        j                  |t
        j$                        j                  d      }n3t        j                  |t
        j                        j                  d      }t        j                   | |      j                  d      }t        |      S )Nr`   r   F)r   r_  r   r   rY   r   r(   r)   r|   r+   r_   r   r}   bf16r:   r{  r   f16r  )	ra   r  	inf_valuere   r   false_constx_f32r_  is_infs	            r#   rc  rc  h	  s    BFF7IaA!Fv5!!!U+2215''t||<CCAF"{E299!<
 	
   DHH-44Q7	4884;;A>s+2215 v&& TXX##Itxx8??BCtxx##Itxx8??BCtxx##Itxx8??BC##Itxx8??BC3'..q1v&&r%   c                 F    t        |       } t        | j                  d      S )Nr  r   )r   r   r   r   s    r#   isrealrm  	  s    !Av&&r%   c           	         t        |       } t        |      }t        | |d      \  } }| j                         }|j                         }|j                  j                  s|j                  j                  rt        d      |j                  j                         }|j                  j                         }||k  rt        j                  t        j                  dt        j                        t        j                  ||z
  t        j                        t        j                  dt        j                              }t        j                  | |      } |}n||k  rt        j                  t        j                  dt        j                        t        j                  ||z
  t        j                        t        j                  dt        j                              }t        j                  ||      }|}t        j                  | t        j                        }t        j                  |t        j                        }t        j                  t        j                  dt        j                        t        j                  |gt        j                              }	t        j                  dt        j                        }
t        j                  dgt        j                        }t        j                  |	|
      }t        j                  t        j                   t        j                  ||
      |gd      |d      }t        j                  t        j                   |t        j                  ||
      gd      |d      }t        j"                  t        j                  | |d      t        j                  ||d            }t        j                  |t        j"                  ||      d      j%                  d      }t'        |      S )Nzkron()zK`kron` does not support tensors with dynamic rank for the OpenVINO backend.r   rW   r   r[  F)r   r'   r[   r\   
is_dynamicry   r]   r)   r   r_   r   r`   r_  r|   r}   r^   r   rT   r+   r   )r   r   x1_shapex2_shapendim1ndim2r  r,  r-  r   rb   flattenunsqueezed_onesx1_new_shapex2_new_shaperH   s                   r#   kronrx  	  s   	r	B	r	B!"b(3FB##%H##%H}}8==#;#;$
 	
 MM$$&EMM$$&Eu}~~a*eemTXX6a*

 D)	~~a*eemTXX6a*

 D)r488,Fr488,F!TXX&(9(95'488(LD Q)Ddhh/G((t4O##-?	
 	L ##h00>?	
 	L \51\51F !!&&15fQi  v&&r%   c                 j   t        |       } t        |      }t        | |d      \  } }| j                         j                         st	        d      t        j                  |       j                  d      }t        j                  |      j                  d      }t        | |      }t        |      }t        j                  d|j                               j                  d      }t        j                  d|j                               j                  d      }t        j                  ||      j                  d      }t        j                  |||      j                  d      }t        j                  ||      j                  d      }	t        j                  |	|      j                  d      }
t        |
      S )Nzlcm()z*`lcm` is only supported for integer types.r   rW   )r   r'   r   rY   ry   r)   r   r+   r  r_   r   r   r   rT   r   )r   r   r  r  gcd_valr   r   r  safe_gcdterm1rH   s              r#   lcmr}  	  sW   	r	B	r	B!"b'2FB ,,.EFF\\"$$Q'F\\"$$Q'F"bkGG$GQ 8 8 :;BB1ED


Aw779
:
A
A!
DCnnWd+2215GwW5<<Q?HOOFH-44Q7Euf-44Q7Fv&&r%   c                    d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | |d      \  } }t        t        j                            }| j                         j                         rt        j                  | |      } |j                         j                         rt        j                  ||      }t        j                  d|j                               }t        j                  | t        j                  ||            }t        |j                  d            S )Nzldexp()r   r   )r   r   r+   r   r   r'   r   r   r8   rY   r)   r:   r_   rT   r  )r   r   rO   float_dtype	const_tworH   s         r#   ldexpr  	  s   L")*yy113")*yy113	r<	(B	r<	(B!"b)4FB!&--/2K	((*b+.	((*b+.!!!R%8%8%:;Ir8>>)R#@AFv}}Q/00r%   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        |       } t        |      }t        |d      st        |t              rft        |      }	 |j	                         j                         dk(  r-|j	                         j                         d   }t        |      }nt        d      nt        |      }|t        t        j                            }
n	t        |   }
t        j                  | |
      j                  d      } t        j                  ||
      j                  d      }|dk  rt!        d      |dk(  rt        j"                  dgt$        j&                        j                  d      }t        j(                  t        j"                  d|
      j                  d      |      j                  d      }|rIt        j"                  t*        j,                  |
      j                  d      }t        |      t        |      fS t        |      S |d	k(  r| }t        j"                  |gt$        j&                        j                  d      }t        j.                  ||      j                  d      }|rq|r4t        j"                  t*        j,                  |
      j                  d      }n%t        j0                  ||       j                  d      }t        |      t        |      fS t        j"                  dt$        j&                        j                  d      }t        j"                  d	t$        j&                        j                  d      }t        j"                  d	gt$        j&                        j                  d      }t        j"                  ||
      j                  d      }|rIt        j0                  |t        j"                  d	|
      j                  d            j                  d      }n|}t        j2                  t        j0                  ||       j                  d      |      j                  d      }t        j4                  |t        j"                  |t$        j&                        j                  d      ||
      j                  d      }t        j                  t        j6                  |       j                  d      t$        j&                        j                  d      }t        j                  t        j6                  |      j                  d      t$        j&                        j                  d      }t        j6                  |      j                  d      }t        j(                  ||      j                  d      }|dk(  rOt        j8                  ||gd      j                  d      }t        j8                  ||gd      j                  d      }nNt        j8                  ||gd      j                  d      }t        j8                  ||gd      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      }|rt        |      t        |      fS t        |      S # t        $ r}	t        d      |	d}	~	ww xY w)zReturn evenly spaced numbers over a specified interval.

    Supports axis=0 (prepend) and axis=-1 (append). Intermediate axis values are
    treated as axis=-1.

    If `retstep` is True, also returns the step size between values.

    r+   r-  r   z&Dynamic num values not fully supportedz'Could not extract num value from tensorNz/Number of samples, `num`, must be non-negative.r   rW   F) r   hasattrr   r   r5  r6  
get_vectorr   r?  r   r   r   r8   r)   r:   r+   ry   r_   r   r`   r}   r   nanr_  rK   r   r   r|   r   r^   rT   r,   )!r   r   r  r  retstepr   rb   
num_tensor	num_valueerU  empty_shaperH   nan_step
result_valr~  r   zero_i32one_i32one_i32_array	num_constdivisorrh  start_shapeindices_shape
start_rankones_for_startindices_target_shapestart_target_shapeindices_reshapedstart_reshapedstep_reshapedscaled_indicess!                                    r#   linspacer  
  s    % EDsHC1D!E"3'
	""$224
B&//1<<>qA	)n)<   #h}%fmmo6%e,UK077:ED+.55a8D
QwJKK
ax''TXX6==a@##c;/66q9;

&) 	 ((=DDQGH&v.0CH0MMM"6**
ax
&&vtxx8??B
##J
;BB1E((=DDQG((u5<<Q?&v.0CD0III  DHH-44Q7H488,33A6G%%qc4884;;A>M!!#{3::1=I##x((K8??B

&) 	 ??$&--a0'fQi 	 nn#txx(//2	
 fQi  ""% ''*DHHfQi  $$'"))!,dhhfQi  "";/66q9J''<CCAFNqy'N+Q 

&) 	 &__K(!

&) 	  (]+Q 

&) 	 &__-(!

&) 	  ''%ufQi  %%e-?GNN	N $$T+=uELLQOM&&'7GNN	N \\..9@@CF"6*,?,EEEv&&M  	%9	s   A[/ /	\	8\\	c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   rY   r   r   r8   r)   r:   r   r=  r+   r   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   rY   r   r   r8   r)   r:   r=  r+   r_   r   r   )ra   re   log_xr  r  rH   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 r   )r   r   rY   r   r   r8   r)   r:   r_   r+   r,   r=  r   )ra   re   r  addedrH   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  )ra   re   r  const_2log_2rH   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                 D   d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | |d      \  } }| j                  j                         s|j                  j                         r{t        t        j                            }| j                  j                         rt        j                  | |      } |j                  j                         rt        j                  ||      }t        j                  | |      }|j                  d      }t        j                  | |      }t        j                  |j                  d            }|j                  d      }t        j                   |      }	|	j                  d      }
t        j"                  |
      }|j                  d      }|j                         }t        j$                  d|      }|j                  d      }t        j&                  ||      }|j                  d      }t        j(                  |      }|j                  d      }t        j&                  ||      }|j                  d      }t        |      S )Nzlogaddexp()r   rW   )r   r   r+   r   r   r'   rO   rY   r   r   r8   r)   r:   rx   rK   r   negativer>  r_   r,   r=  )r   r   rO   r  max_val_noder  sub_nodeabs_diff_noderC  neg_abs_diff_nodeneg_abs_diffexp_neg_abs_nodeexp_neg_absr}  r   one_plus_exp_nodeone_plus_explog_term_nodelog_termresult_noderH   s                        r#   	logaddexpr  
  s   L")*yy113")*yy113	r<	(B	r<	(B!"b-8FB	""$(C(C(E%fmmo6??&&(!!"k2B??&&(!!"k2B ##B+L!!!$G   R(HLL!34M##A&H !))(3$++A.L||L1"))!,K $446L  L1H
//!
C !S+6$++A.LLL.M##A&H ,,w1K"Fv&&r%   c                    d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | |d      \  } }| j                  j                         s|j                  j                         rt        t        j                            }| j                         j                         rt        j                  | |      } |j                         j                         rt        j                  ||      }t        j                  | |      }t        j                  | |      }t        j                  |      }t        j                   |      }|j                         }t        j"                  d|      }t        j$                  ||      }	t        j&                  t        j"                  d|      |	      }
t        j(                  t        j*                  |
      t        j*                  |            }t        j&                  ||      j                  d      }t        |      S )Nzlogaddexp2()r   r   rW   r   )r   r   r+   r   r   r'   rO   rY   r   r   r8   r)   r:   rx   rK   r   r  r_   r  r,   r   r=  )r   r   rO   r  r  subrC  r  r  
power_of_2one_plus_power	log2_termrH   s                r#   
logaddexp2r  
  s   L")*yy113")*yy113	r<	(B	r<	(B!"b.9FB	""$(C(C(E%fmmo6 ,,.!!"k2B ,,.!!"k2Br2&G


B
#C||C H$$X.L002L


A\
2C\2J\\!<0*N ^ <hll3>OPI\\'9-44Q7Fv&&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)   r:   r   r(   r+   r   rS   r-   s     r#   rS   rS   !  {    	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)   r:   r   r(   r+   r   rJ  r   s    r#   rJ  rJ  )  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)   r:   r   r(   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           	      J   t        | |||d||      }|t        t        j                            }n	t        |   }t	        |      }	t	        |      }
t        j                  |
|      j                  d      }
t        j                  |
|	      j                  d      }t        |      S )NF)r   r   r  r  r  r   rb   r   )
r  r   r   r8   r   r)   r:   r+   r  r   )r   r   r  r  r  r   rb   linear_samplesrU  linear_outputbase_tensorrH   s               r#   r   r   7  s    N }%fmmo6%e,!.1M%K"";<CCAFK^^K7>>qAFv&&r%   c                     t        | |      \  } }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nz	maximum()r   )r$   r'   r   r)   rx   r+   r-   s     r#   rx   rx   Q  G    %b"-FB!"b+6FBx//B7>>qABBr%   c                    t        | |      \  } }t        | |d      \  } }| j                         }|j                         s|t        j
                  k(  r.t        t        j                  | |      j                  d            S t        j                  |       }t        j                  |      }t        j                  | |      }t        j                  || |      }t        j                  |||      }t        |j                  d            S )Nzfmax()r   )r$   r'   r   rY   r   r(   r   r)   rx   r+   r   r   r   r   re   r   r   r   s         r#   fmaxr  W      %b"-FB!"b(3FB  "Fv5"8#3#3B#;#B#B1#EFF__R F__R F


2r
"C
//&"c
*C
//&"c
*Cszz!}--r%   c                    t        |       } | j                         }|j                  j                         }|dk(  rt	        |       S d}|0t        j                  | dgd      j                  d      } d}|}d}d}n@t        |t        t        f      rt        |      dk7  rt        d      |d   }|dk  r||z   }|}t        j                  | t        j                        j                  d      }t        j                   |t        j"                  |gt        j                        j                  d      t        j"                  dt        j                        j                  d            j                  d      }t        j$                  |dg      j                  d      }	t        j&                  | |	|dd	d
      }
|
j                  d      }t)        |j+                               }t-        j.                  |t0              }t2        |   }t        j4                  ||      j                  d      }t        j6                  |	t        j"                  dt        j                        j                  d            j                  d      }t        j8                  |	t        j"                  dt        j                        j                  d            j                  d      }t        j8                  |t        j"                  dt        j                        j                  d            j                  d      }t        j:                  |	t        j"                  dt        j                        j                  d            j                  d      }t        j<                  |t        j"                  dt        j                        j                  d            j                  d      }|}t        j6                  |t        j"                  dt        j                        j                  d            j                  d      }|}t        j>                  |dg      j                  d      }t        j>                  |dg      j                  d      }t        j>                  |dg      j                  d      }t        j                   ||t        j"                  |t        j                        j                  d            j                  d      }t        j                   ||t        j"                  |t        j                        j                  d            j                  d      }t        j                   ||t        j"                  |t        j                        j                  d            j                  d      }t        j@                  ||      j                  d      }t        j8                  |t        j"                  d|      j                  d            j                  d      }t        jB                  |||      j                  d      }t        j$                  ||g      j                  d      }|r|rht        j"                  dg|z  t        j                        j                  d      }t        j                  ||d      j                  d      }t	        |      S t        j>                  ||g      j                  d      }t	        |      S )Nr   Fr   rW   Tz*median only supports single axis reductionrU  rt   r  r  rb   r  r  r  r   r  )"r   r[   r\   r]   r   r)   r^   r+   r   rz   r   r{   ry   r|   r   r`   r#  r_   r  r  r   r   r   r   r   r   r:   rK   r   r<  r   r_  r,   r   ) ra   rb   rc   r  r\   flattened_alloriginal_rankshape_tensorr  k_scalarr  sorted_valuesr   r   	k_minus_1k_div_2k_minus_1_div_2k_mod_2rF  odd_idx	even_idx1	even_idx2gather_indices_oddgather_indices_even1gather_indices_even2
odd_resulteven_result1even_result2even_sumeven_resultmedian_result
ones_shapes                                    r#   medianr  i  s   aA!!#G<<""$Dqy"1%% M|Qe,33A6 dUDM*4yA~ !MNN7D !8$;D $$QDHH=DDQGL4&$((+2215!TXX&--a0	 fQi	  A3'..q1H ==	XDu74L
 !''*M }==?@G$$We4K!+.K$$]K@GGJM !!(##Atxx077:fQi  oo(##Atxx077:fQi  oo8$$Q188;fQi 
 ll(##Atxx077:fQi  ^^""1dhh/66q9fQi 
 G !!""1dhh/66q9fQi  I "++GaS9@@C#--i!=DDQG#--i!=DDQG $)003 fQi	 
 ??$)003 fQi	 
 ??$)003 fQi	  ||L,7>>qAH//(##C5<<Q?fQi 
 OOFJDKKANM $$]TF;BB1EM !**m#TXXfQi  %,,z5fQi  }-- %..}tfELLQOM}--r%   xy)indexingc                 &   t        |      dk  rt        dt        |       d      | dvrt        d      |D cg c]  }t        |       }}t        |      }|D cg c]5  }t        j                  |t
        j                        j                  d      7 }}t        j                  dgt
        j                        j                  d      }| dk(  r7|d   |d   g|dd  z   }t        j                  |d	      j                  d      }	n&t        j                  |d	      j                  d      }	g }
t        |      D ]  \  }}|g|z  }| dk(  r%|dk(  r	|d   |d<   n|dk(  r	|d   |d<   n||   ||<   n||   ||<   t        j                  |d	      j                  d      }t        j                  ||d
      j                  d      }t        j                  ||	      j                  d      }|
j                  t        |              |
S c c}w c c}w )Nr   z5meshgrid requires at least 2 input arrays. Received: z input array(s).)r  ijz$indexing must be either 'xy' or 'ij'r   rW   r  r[  F)r{   ry   r   r)   r|   r   rR  r+   r_   r   	enumerater^   r}   r   r   )r  ra   xitensorsr  rE   shapesr   
shape_listre  r(  ri  reshape_partsreshape_shaperu  broadcasteds                   r#   meshgridr    s   
1vzQ 02
 	
 |#?@@+,-R}R -G-GA ;B56!TXX&--a0F  

QC
*
1
1!
4C4Qi+fQRj8
OOJQ7>>qA	OOF3::1=	G'" 91	tAv#)!9a a#)!9a #)!9a %ayM! A>EEaH##A}e<CCAF((9=DDQG*;789" NA .s   H	:Hc                      t        | d|||      S )Nrt   rn   rp   s       r#   rt   rt     rr   r%   c                     t        | |      \  } }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nz	minimum()r   )r$   r'   r   r)   rv   r+   r-   s     r#   rv   rv      r  r%   c                    t        | |      \  } }t        | |d      \  } }| j                         }|j                         s|t        j
                  k(  r.t        t        j                  | |      j                  d            S t        j                  |       }t        j                  |      }t        j                  | |      }t        j                  || |      }t        j                  |||      }t        |j                  d            S )Nzfmin()r   )r$   r'   r   rY   r   r(   r   r)   rv   r+   r   r   r  s         r#   fminr  &  r  r%   c                     t        |       } t        |      }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nzmod()r   )r   r'   r   r)   r  r+   r-   s     r#   r<  r<  8  sK    	r	B	r	B!"b'2FBx11"b9@@CDDr%   c                     t        |       } t        |      }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nzfmod()r   )r   r'   r   r)   r<  r+   r-   s     r#   fmodr  ?  sI    	r	B	r	B!"b(3FBx||B3::1=>>r%   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   r   r[   r\   r]   r   r   zipremoveinsertr)   r_   r   r`   r+   r   r  )	ra   sourcedestinationr  rb   r  srcdst
axes_consts	            r#   moveaxisr  F  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                 x   t        | t        j                        r<| j                  t        j                  k(  r| j                  t        j                        } t        |       } | j                         }|t        j                  k(  rCt        j                  | t        j                        j                  d      } t        j                  }|}|j                         s|t        j                   k(  rt#        t%        |       ||      S t'        | |      \  } }|t%        |       S t        j(                  |       }t        j*                  t        j,                  t        j.                   t        j                              }|t        j                  k7  rt        j                  ||      }t        j0                  |||       j                  d      }t#        t%        |      ||      }	t        |	      }
t        j2                  |||      j                  d      }t        j*                  dt        j4                        j                  d      }|
j                         t        j4                  k7  r$t        j                  ||
j                               }t        j0                  |||
      j                  d      }
t%        |
      S Nr   rb   rc   r   r   )r   r   r2  r   r4   astyper3   r   r   r   r  r)   r:   r{  r+   rY   r(   r  r   rX   r   r_   r*  r_  r   r   r`   )ra   rb   rc   re   original_axisresolved_axisr   r^  
x_replacedrH   	result_ovall_nanr  s                r#   	nanargmaxr  Z  s   !RZZ QWW

%:HHRZZ aA!FQ)003Mv5"
 	
 %Q6A}"1%%q!H"&&

 CDG""7F37A6==a@JJ'mhF f%I))-fQi  !!"dhh/66q9I!!#txx/$$Y	0J0J0LM	I>EEaHIy))r%   c                 v   t        | t        j                        r<| j                  t        j                  k(  r| j                  t        j                        } t        |       } | j                         }|t        j                  k(  rCt        j                  | t        j                        j                  d      } t        j                  }|}|j                         s|t        j                   k(  rt#        t%        |       ||      S t'        | |      \  } }|t%        |       S t        j(                  |       }t        j*                  t        j,                  t        j.                  t        j                              }|t        j                  k7  rt        j                  ||      }t        j0                  |||       j                  d      }t#        t%        |      ||      }	t        |	      }
t        j2                  |||      j                  d      }t        j*                  dt        j4                        j                  d      }|
j                         t        j4                  k7  r$t        j                  ||
j                               }t        j0                  |||
      j                  d      }
t%        |
      S r  )r   r   r2  r   r4   r
  r3   r   r   r   r  r)   r:   r{  r+   rY   r(   r  r   rX   r   r_   r*  r_  r   r   r`   )ra   rb   rc   re   r  r  r   r]  r  rH   r  r  r  s                r#   	nanargminr    s   !RZZ QWW

%:HHRZZ aA!FQ)003Mv5"
 	
 %Q6A}"1%%q!Hrzz BCG""7F37A6==a@JJ'mhF f%I))-fQi  !!"dhh/66q9I!!#txx/$$Y	0J0J0LM	I>EEaHIy))r%   c                 4    t        t        | d      ||      S )Nr   r  rb   r   )r;  
nan_to_numra   rb   r   s      r#   	nancumsumr    s    *QC(t5AAr%   c                 4    t        t        | d      ||      S )Nr  r  r  )rO  r  r  s      r#   
nancumprodr    s    :aS)EBBr%   c                 j   t        | t        j                        r<| j                  t        j                  k(  r| j                  t        j                        } t        |       } | j                         }|t        j                  k(  rCt        j                  | t        j                        j                  d      } t        j                  }|j                         s|t        j                   k(  rt#        t%        |       ||      S t'        | |      \  } }|t%        |       S t        j(                  |       }t        j*                  t        j,                  t        j.                   t        j                              }|t        j                  k7  rt        j                  ||      }t        j0                  |||       j                  d      }t        j2                  |||      j                  d      }t        j4                  |||      j                  d      }t        j*                  t        j,                  t        j6                  t        j                              }	|t        j                  k7  rt        j                  |	|      }	t        j0                  ||	|      j                  d      }t%        |      S Nr   r	  r   )r   r   r2  r   r4   r
  r3   r   r   r   r  r)   r:   r{  r+   rY   r(   r   r   rX   r   r_   r*  r_  r   rw   r   r  )
ra   rb   rc   re   r   r^  r  rH   r  r  s
             r#   nanmaxr    s   !RZZ QWW

%:HHRZZ aA!FQ)003v5'*IIAt$GAt|"1%%q!H"&&

 CDG""7F37A6==a@J  T8<CCAFF))(D(CJJ1MG!!"((266"DEI$$Y7	__Wi8??BFv&&r%   c                 h   t        | t        j                        r<| j                  t        j                  k(  r| j                  t        j                        } t        |       } | j                         }|t        j                  k(  rCt        j                  | t        j                        j                  d      } t        j                  }|j                         s|t        j                   k(  rt#        t%        |       ||      S t'        | |      \  } }|t%        |       S t        j(                  |       }t        j*                  d|      }t        j,                  |||       j                  d      }t        j.                  |      j                  d      }t        j                  ||      j                  d      }t        j0                  |||      j                  d      }	t        j0                  |||      j                  d      }
t        j2                  |	|
      j                  d      }t%        |      S )Nr   r	  )r   r   r2  r   r4   r
  r3   r   r   r   r  r)   r:   r{  r+   rY   r(   rk   r   rX   r   r_   r   rJ  r  r   )ra   rb   rc   re   r   r   x_no_nannot_nannot_nan_floatnan_sumcountrH   s               r#   nanmeanr$    s   !RZZ QWW

%:HHRZZ aA!FQ)003v5'*IIAt$GAt|"1%%q!HQ'Dxq188;H""8,33A6G$$Wf5<<Q?M!!(D(;BB1EGtX>EEaHE__We,33A6Fv&&r%   c                 "    t        | d|d|      S )Nr  midpointrb   methodrc   nanquantiler   s      r#   	nanmedianr+    s    q#DhOOr%   c                 h   t        | t        j                        r<| j                  t        j                  k(  r| j                  t        j                        } t        |       } | j                         }|t        j                  k(  rCt        j                  | t        j                        j                  d      } t        j                  }|j                         s|t        j                   k(  rt#        t%        |       ||      S t'        | |      \  } }|t%        |       S t        j(                  |       }t        j*                  t        j,                  t        j.                  t        j                              }|t        j                  k7  rt        j                  ||      }t        j0                  |||       j                  d      }t        j2                  |||      j                  d      }t        j4                  |||      j                  d      }t        j*                  t        j,                  t        j6                  t        j                              }	|t        j                  k7  rt        j                  |	|      }	t        j0                  ||	|      j                  d      }t%        |      S r  )r   r   r2  r   r4   r
  r3   r   r   r   r  r)   r:   r{  r+   rY   r(   r   r   rX   r   r_   r*  r_  r   ru   r   r  )
ra   rb   rc   re   r   r]  r  rH   r  r  s
             r#   nanminr-     s   !RZZ QWW

%:HHRZZ aA!FQ)003v5'*IIAt$GAt|"1%%q!Hrzz BCG""7F37A6==a@J  T8<CCAFF))(D(CJJ1MG!!"((266"DEI$$Y7	__Wi8??BFv&&r%   c                 (    t        | |dz  |||      S Ng      Y@r'  r)  ra   qrb   r(  rc   s        r#   nanpercentiler2  #  s    	1u94 r%   c                 (   t        | t        j                        r<| j                  t        j                  k(  r| j                  t        j                        } t        |       } | j                         }|t        j                  k(  rCt        j                  | t        j                        j                  d      } t        j                  }|j                         sd|t        j                   k7  rQt        j"                  |       }t        j$                  d|      }t        j&                  |||       j                  d      } t)        |       } t+        | |      \  } }|t-        |       S t        j.                  | ||      j                  d      }t-        |      S r  )r   r   r2  r   r4   r
  r3   r   r   r   r  r)   r:   r{  r+   rY   r(   r   r_   r   r   rX   r   r"  )ra   rb   rc   re   r   r   rH   s          r#   nanprodr4  )  s'   !RZZ QWW

%:HHRZZ aA!FQ)003Fdll$:??1%6*OOHc1-44Q7q!AAt$GAt|"1%%!!!T84;;A>Fv&&r%   c                   	
 | Mt        j                  dgt        j                        j	                  d      	t        	fd|D              }|dz   S t        | t              r| g} | D cg c]  }||z  	 } }t        t        t        |            j                  |             }t        j                  |t        |       z   t        j                        j	                  d      t        fd|D              }t        j                  |d   t        j                        j	                  d      }|rt        j                  |t        j                  |t        j                        j	                  d      t        j                  dt        j                        j	                  d            j	                  d      }t        j                   |t        j                  dgt        j                        j	                  d      gd      j	                  d      
n4t        j                  dgt        j                        j	                  d      
t        
fd|D              }|| fz   S c c}w )zTranspose reduction axes to the end and flatten them into one dim.

    Returns (flattened_tensors..., norm_axis) where norm_axis is the
    normalised axis list (or None when axis was None).
    r   r   c              3   j   K   | ]*  }t        j                  |d       j                  d       , ywFr   Nr)   r^   r+   ).0rE   
flat_consts     r#   	<genexpr>z)_move_and_flatten_axes.<locals>.<genexpr>J  s0      
ABHQ
E299!<
   03r  c              3   h   K   | ])  }t        j                  |      j                  d        + yw)r   N)r)   r  r+   )r9  rE   r  s     r#   r;  z)_move_and_flatten_axes.<locals>.<genexpr>T  s)     Nx))!T299!<Ns   /2r[  c              3   j   K   | ]*  }t        j                  |d       j                  d       , ywr7  r8  )r9  rE   
flat_shapes     r#   r;  z)_move_and_flatten_axes.<locals>.<genexpr>d  s0      =>J.55a8r<  )r)   r_   r   rR  r+   rz   r   r   sortedr9   r   
differencer   r`   r|   r#  r   )rb   x_ndimr  	flattenedr  
other_dims
transposedr  other_shaper:  r?  r  s            @@@r#   _move_and_flatten_axesrG  B  s    |&&tTXX6==a@
 
FM
 
	 7""$v $%1AJ%D%E&M*55d;<JZ$t*4dhh?FFqIDNgNNJ
DHH5<<Q?Gooj$((3::1=a*11!4
 &)	 	
 __(++RD$((;BB1EF
 &) 	
 &&tTXX6==a@
 BL I w- &s   *I c                 N  ()*+, t        | t        j                        r<| j                  t        j                  k(  r| j                  t        j                        } t        |       } t        |      }| j                         }|t        j                  k(  rCt        j                  | t        j                        j                  d      } t        j                  }|j                         s|t        j                   k(  rt#        t%        |       ||||      S t'        |      }t)        j*                  |t,              }t.        |   }	t        j                  | |	      j                  d      } t        j                  |t        j                        j                  d      }
|j1                         j2                  j5                         )| j1                         j2                  j5                         }t        j6                  |       j                  d      }t        j                  t        j8                  t        j:                  t        j<                  t        j                              j                  d      |	      j                  d      }t        j>                  |||       j                  d      }tA        ||||      \  }}}tC        t%        |            j                  }|j1                         j2                  j5                         +t        j                  t        jD                  |      j                  d      t        jF                        j                  d      }t        jH                  |t        j8                  +dz
  gt        jF                        j                  d      d      j                  d      }t        jJ                  |t        j8                  t        jL                  d            j                  d            j                  d      }t        jN                  t        j                  |t        j                        j                  d      t        j8                  t        j                  d            j                  d            j                  d      }t        j8                  t        jL                  d            j                  d      ,t        jN                  |t        j8                  t        jL                  d            j                  d            j                  d      ()dkD  r~t        j8                  dgt        jF                        j                  d      }t        jP                  ||      j                  d      }t        jP                  (|      j                  d      (t        jR                  ||
      j                  d      }(,fd}t%        |      *)*+fd	} |t        jT                  |      j                  d            } |t        jV                  |      j                  d            }|d
k(  r
 ||      }n0|dk(  r
 ||      }n!|dk(  r3 | |t        jX                  |d      j                  d                  }n|dk(  rt        j                  t        j8                  t        j                  d            j                  d      |	      j                  d      }t        jZ                  t        j\                   ||       ||            j                  d      |      j                  d      }n4t        j8                  t        jL                  d            j                  d      }t        j^                  t        jN                  ||      j                  d      ,      j                  d      } t        j`                  t        j\                  | |      j                  d      (      j                  d      }!t        j                  t        jN                  t        j                  |!t        j                        j                  d      |      j                  d      |	      j                  d      }"t        j                  t        j8                  t        j                  d            j                  d      |	      j                  d      }#t        j\                  t        jR                   ||!      t        jN                  |#|"      j                  d            j                  d      t        jR                   ||       |"      j                  d            j                  d      }t        j                  t        j8                  t        j:                  t        jb                  t        j                              j                  d      |	      j                  d      }$)dkD  rWt        jP                  |t        j8                  dgt        jF                        j                  d            j                  d      }t        j>                  ||$|      j                  d      }|r|te        tg        |            n
ti        |      }%|%D ]Y  }&t        jP                  |t        j8                  |&gt        jF                        j                  d            j                  d      }[ )dkD  r|j1                         j2                  j5                         }'|'dk\  rrt        jj                  |t        j8                  |'dz
  gte        tg        |'dz
              z   t        jF                        j                  d            j                  d      }t%        |      S )Nr   r'  r   rW   Fr  r   c                     t        j                  | t        j                        j	                  d      }t        j
                  t        j                  |      j	                  d            j	                  d      S r   r)   r:   r   r`   r+   rv   rx   f64_idxri  n_minus1_i32r  s     r#   
_clamp_idxznanquantile.<locals>._clamp_idx  ]    Wdhh/66q9Q)003\

&)	r%   c                     dk(  rt        j                  | t        j                  dgt        j                        j                  d            j                  d      }t        t        |      dz
        j
                  }t        j                  |t        j                  dz
  gt        j                        j                  d            j                  d      S t        t        |       dz
        j
                  S )Nr   r   rW   r[  )	r)   r_  r_   r   r`   r+   take_along_axisr   r  )rw  idx_exprH   q_ranksorted_y_tensory_ndims      r#   _gatherznanquantile.<locals>._gather  s    Q;((X&&tTXX6==a@fQi  %!4W!=FQJf  ##))6A:,AHHKfQi #!4S!9
fr%   r  highernearesthalf_to_evenr&  r  r   )6r   r   r2  r   r4   r
  r3   r   r   r   r  r)   r:   r{  r+   rY   r(   quantiler   r   r   r   r   r   r[   r\   r]   r   r_   r*  r_  r   rG  r  rJ  r`   r  r   r0   rK   r_  rT   r  r  r?  r   r,   rx   rv   r  r   r   r@  r  )-ra   r1  rb   r(  rc   q_ovre   x_keras_typerA  compute_ov_typeq_f64rB  r   r]  r  r   nan_mask_flat	norm_axissorted_ynot_nan_intn_valid_i32r  n_minus1_f64trailing	exact_idxrN  rV  lo_idxhi_idxgatheredr  r  interp_lo_idxinterp_hi_idxfracone_valnan_valaxes_to_addri  g_ndimrM  rS  rT  rU  r  s-                                           @@@@@r#   r*  r*  j  s   !RZZ QWW

%:HHRZZ aAD!FQ)003v5"
 	
 $F+L&&|U;M%m4OO,33A6AT488,33A6E##%**557F  "''224Fq!((+H"((266<=DDQG fQi  x!4;;A>H"8fh#A}i '*+22H  "''224F""]+2215txxfQi  %%6A:,188; fQi	 
 nnX&&rxx{3::1=fQi  $$dhh/66q9"**S/*11!4 fQi    !-44Q7H$$X&&rxx{3::1=fQi  z$$bT4884;;A>)),AHHK)),AHHK!!,6==a@I *(3O  y188;<F((3::1=>F6?	8	6?	9	x~~i@GGJK
 
:	bjjo.55a8/

&) 	 ??LL'&/:AA!Dc

&) 	
 ##BHHQK077: ((fg.55a8(

&) 	 !((LL077:L

&) 	   9@@CYfQi	

 &) 	 ""bjjo.55a8/

&) 	 <<&!!'4077: fQigm4d;BB1E
 &) 	 "((266<=DDQG fQi  z$$X&&tTXX6==a@

&) 	 w:AA!DH#,#4Dv&:K 	  	A))(++QC:AA!DfQi 	
 z++-22==?Q;))!!aZL4fqj(9#::DHH&)	
 fQi  x((r%   c                 0    t        t        | ||            S )Nr	  )r  nanvarr   s      r#   nanstdrs    s    qth788r%   c                    t        |       } | j                         }|j                         sd|t        j                  k7  rQt        j                  |       }t        j                  d|      }t        j                  |||       j                  d      } t        | |      \  } }|t        |       S t        |       } t        j                  | ||      j                  d      }t        |      S r   )r   r   rY   r   r(   r)   r   r_   r   r+   rX   r   r   r  )ra   rb   rc   re   r   r   rH   s          r#   nansumru    s    aA!FFdll$:??1%  F+OOHdA.55a8At$GAt|"1%%q!A  D(3::1=Fv&&r%   c                 	   t        |       } | j                         }t        |      }t        j                  |t
              }t        |   }|t        j                  k(  rCt        j                  | t        j                        j                  d      } t        j                  }|j                         s|t        j                  k(  ret        t!        |       ||      }t        |      }|j                         |k7  r%t        j                  ||      j                  d      }t!        |      S |dk(  s|g k(  rt        j"                  |       j                  d      }t        j$                  d|      j                  d      }	t        j&                  || |	      j                  d      }||k7  r%t        j                  ||      j                  d      }t!        |      S t        t)        t!        |       |d            }
t        j"                  |       }t        j$                  d|      }	t        j*                  |      j                  d      }t        j,                  | |
      j                  d      }t        j&                  ||	|      j                  d      }t        j.                  ||      j                  d      }|t        j$                  dgt        j0                        j                  d      }t        j2                  ||d      j                  d      }t        j2                  ||d      j                  d      }t        j$                  dt        j0                        j                  d      }nt5        |t6        t8        f      r=t        j$                  t9        |      t        j0                        j                  d      }n3t        j$                  |t        j0                        j                  d      }t        j                  ||      j                  d      }t        j:                  |||      j                  d      }t        j:                  |||      j                  d      }t        j<                  ||      j                  d      }|j                         |k7  r%t        j                  ||      j                  d      }t!        |      S )Nr   r	  r   Tr   F)r   r   r   r   r   r   r   r   r  r)   r:   r{  r+   rY   r(   varr   r   r_   r   r$  rJ  rK   rT   r`   r^   r   rz   r   r  r   )ra   rb   rc   re   x_kerasrC   rD   rH   r   r   mean_valr   centeredsquaredr   r~  r!  sq_sumr#  s                      r#   rr  rr  *  s   aA!Fv&G%%gu5L$\2N Q)003v5(+$Jv&""$6%%fn=DDQGF"6**rzTRZ??1%,,Q/  F+22151d3::1=^#%%fn=DDQGF"6** #A&TDAH q!HQ'D""8,33A6G   H-44Q7Hxx8??BH(3::1=G| ))2$9@@C""7M5AHHK""7M5AHHK&&q$((3::1=
dUDM*!**4:txx@GGJJ!**4:AA!DJ$$Wf5<<Q?M  *h?FFqIFz8DKKANE__VU+2215F N2!!&.9@@Cv&&r%   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   rY   r   r   r  r)   r:   r{  r+   r_   r	   r
   rk  r   r   )ra   r  posinfneginfr   	isfloat64rn  
posinf_val
neginf_valposinf_maskneginf_maskr   s               r#   r  r  g  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        |       } | j                         j                  }|j                  st	        d      |j                         S )NzCannot determine `ndim`: tensor has a dynamically-ranked PartialShape. The OpenVINO backend requires a statically-known rank for this operation.)r   r[   r\   r^  ry   r]   )ra   r\   s     r#   r  r    sH    aA %%D>>'
 	

 ??r%   c                 z    t        |       } t        j                  | d      j                  d      }t	        |      S )Nr`   )r7  rU  r   )r   r)   non_zeror+   r   )ra   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   r_   r+   r   r}   r   )ra   r   r  ri   r   r   s         r#   r  r    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  )ra   r   r  ri   r   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   rW   r   F)
r   r'   r)   r_   r   r`   r+   r^   rT   r   )r   r   new_shape_x1new_shape_x2x1_reshapedx2_reshapedrH   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        t        t
        j                  t
        j                  f      st        d|       t        j                  || j                               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 )Nr_   zZArgument `constant_values` can only be provided when `mode == 'constant'`. Received: mode=zu`pad` operation supports only scalar pad value in constant mode with the openvino backend. Received: constant_values=r   rW   )r   ry   r   r   r   r   integerfloatingr)   r_   r   r+   r   r   r`   r   pad)ra   	pad_widthr  constant_values	pad_value
pads_beginpads_end	pads_pairs           r#   r  r    sS   aAI":""&) 
 c5"**bkkB
 --<,=? 
 %%Q//1

&) 	
 JH &	)A,'	!%& "":txx8??BJ  4884;;A>HQ
HdI>EEaH r%   c                 6    t        | t        |d      |||      S r/  )rZ  r   r0  s        r#   
percentiler    s!    	6!U$v r%   c                 <   t        |       } |8t        t        |         }t        j                  | |      j                  d      } nt        |       } t        | |      \  } }|t        |       S t        j                  | ||      j                  d      }t        |      S r   )
r   r   r   r)   r:   r+   r   rX   r   r"  )ra   rb   rc   r   r#  rH   s         r#   prodr    s    aA "#4U#;<Q)003 #1%At$GAt|"1%%!!!T84;;A>Fv&&r%   c                    |dk(  rt        |       S t        |       } t        | |      \  }}t        j                  |||      }t        j
                  |||      }t        t        j                  ||      j                  d            S )Nr   r   )	r  r   rX   r)   rw   ru   r   rK   r+   )ra   rb   rc   rg   r  r  r  s          r#   ptpr    sy    rz!}aA -a 6J!!*mXFG!!*mXFGx00'BII!LMMr%   c                    !"# t        |       } t        |      }t        | j                               }|dv rt        j                         nt        j                  |t              }t        |   }t        j                  | |      j                  d      } t        j                  |t        j                        j                  d      }	|j                         j                  j!                         }
| j                         j                  j!                         }t#        |||       \  }}t%        t'        |            j                  "|j                         j                  j!                         }t        j(                  t        j*                  t        j,                  |t        j.                        j                  d      t        j0                  |dz
  gt        j.                        j                  d      t        j0                  dt        j.                        j                  d            j                  d      t        j0                  dgt        j.                        j                  d            j                  d      }t        j                  |t        j                        j                  d      }t        j2                  t        j4                  |t        j0                  t7        j8                  d            j                  d            j                  d      |	      j                  d      }t        j0                  t7        j:                  d            j                  d      #t        j4                  |t        j0                  t7        j:                  d            j                  d            j                  d      !t        j0                  |dz
  t        j.                        j                  d       !#fd} "fd} |t        j<                  |      j                  d            } |t        j>                  |      j                  d            }|dk(  r
 ||      }n0|dk(  r
 ||      }n!|d	k(  r3 | |t        j@                  |d
      j                  d                  }n|dk(  rt        j                  t        j0                  t7        jB                  d            j                  d      |      j                  d      }t        jD                  t        jF                   ||       ||            j                  d      |      j                  d      }n4t        j0                  t7        j:                  d            j                  d      }t        jH                  t        j4                  ||      j                  d      #      j                  d      }t        jJ                  t        jF                  ||      j                  d      !      j                  d      }t        j                  t        j4                  t        j                  |t        j                        j                  d      |      j                  d      |      j                  d      }t        j                  t        j0                  t7        jB                  d            j                  d      |      j                  d      }t        jF                  t        j2                   ||      t        j4                  ||      j                  d            j                  d      t        j2                   ||      |      j                  d            j                  d      }|r|tM        tO        |            n
tQ        |      }|D ]Y  }t        jR                  |t        j0                  |gt        j.                        j                  d            j                  d      }[ |
dkD  r|j                         j                  j!                         }|dk\  rrt        jT                  |t        j0                  |dz
  gtM        tO        |dz
              z   t        j.                        j                  d            j                  d      }t'        |      S )N)r5   r  r   rW   r  c                     t        j                  | t        j                        j	                  d      }t        j
                  t        j                  |      j	                  d            j	                  d      S r   rJ  rK  s     r#   rN  zquantile.<locals>._clamp_idxG  rO  r%   c                 P    t        j                  |       j                  d      S r   )r)   r#  r+   )rw  last_axra  s    r#   rV  zquantile.<locals>._gatherM  s!    xg6==a@@r%   r  rW  rX  rY  r&  r  r   )+r   r   r   r   r8   r   r   r   r   r)   r:   r+   r   r  r[   r\   r]   rG  r  r   r  r#  r|   r`   r_   rT   rK   r   r4   r0   r  r  r?  r3   r   r,   rx   rv   r   r   r@  r_  r  )$ra   r1  rb   r(  rc   r[  r\  rA  r]  r^  rS  rB  r   r`  rU  n_i32n_f64rf  rN  rV  rg  rh  ri  r  r  rj  rk  rl  rm  ro  ri  rp  r  rM  ra  r  s$                                   @@@@r#   rZ  rZ    s   aAD#A$6$6$89L ,, 	e4 
 &m4OO,33A6AT488,33A6E##%**557F  "''224F)$:LAy'*+22H   "''224Fa*11!4vzlDHH5<<Q?a*11!4	
 &)1#txx(//2 fQi 
 UDHH-44Q7E!!8$$RZZ_5<<Q?	

&)	
 fQi    !-44Q7H$$x  !-44Q7fQi  
DHH5<<Q?GA y188;<F((3::1=>F6?	8	6?	9	x~~i@GGJK
 
:	bjjo.55a8/

&) 	 ??LL'&/:AA!Dc

&) 	
 ##BHHQK077: ((fg.55a8(

&) 	 !((LL077:L

&) 	   9@@CYfQi	

 &) 	 ""bjjo.55a8/

&) 	 <<&!!'4077: fQigm4d;BB1E
 &) 	 #,#4Dv&:K 	  	A))(++QC:AA!DfQi 	 z++-22==?Q;))!!aZL4fqj(9#::DHH&)	
 fQi  x((r%   c                     t        |       } t        j                  dgt        j                        j                  d      }t        t        j                  | |d      j                  d            S )Nr   r   r   FrQ  )r   r)   r_   r   r`   r+   r   r^   )ra   r  s     r#   ravelr    sY    aA$$bT:AA!DLLu=DDQG r%   c                     t        |       S r  r   r   s    r#   realr    r  r%   c                     t        |       } t        j                  d| j                               j	                  d      }t        j
                  ||       j	                  d      } t        |       S )NrW   r   r   )r   r)   r_   r   r+   r   r   )ra   one_constants     r#   
reciprocalr    sX    aA$$Qa.@.@.BCJJ1MLa(//2Aq!!r%   c                    t        |       } t        j                  dt        j                        }t        j                  dt        j                        }t        j                  dgt        j                        }|!|dk  r|t        | j                               z  }|t        j                  | |d      } d}t        |t        j                        rt        |      }nQt        |t        j                        r7|j                  dk(  r(|j                  dk  rt        |j                               }t        |t              rwt        j                   t        j"                  | t        j                        t        j                  |gt        j                        |      }t        j$                  |t        j                  dgt        j                              }t        j&                  |||t        j                        }t        j(                  ||      }t        j*                  |t        j                  d|gt        j                              }t        j                  ||d      }	t        j                   | |	t        j                  |t        j                              }
t-        |
j/                  d            S t        |      }t        j0                  ||      }t        j2                  |t        j                  dgt        j                        d      }t        j4                  |t        j                        }t        j&                  |||t        j                        }t        j(                  ||      }t        j(                  ||      }t        j4                  |t        j                        }t        j6                  ||      }t        j2                  t        j4                  |t        j                        t        j                  dgt        j                              }t        j                   | |t        j                  |t        j                              }
t-        |
j/                  d            S )Nr   rW   r   FrQ  r  r  )r   r)   r_   r   r`   r{   r[   r^   r   r   r  r   r2  r4  r  itemr#  r|   r  r   r_  tiler   r+   r;  r  r:   r   )ra   repeatsrb   const_0const_1const_neg_1dim_len	idx_rangetiledrw  rH   repeats_tensorr;  totalout_indicescumsum_unsqout_indices_unsqrg  gather_indicess                      r#   repeatr    s(   aA488,G488,G##RD$((3KD1HA'')**|Q%@'2::&g,7BJJ'LLALLAglln%'3//a*tfdhh/

 ""7H,=,=qc488,LMNNWg488
	 &&y':	x((!Wtxx@
 ukFC):):4)JK"6==#344"7+N__^W5F))1#txx8EE UDHH-E..%dhhOK$$VW5K))+w?"";9K!!"2K@D((txx((*;*;QC*JN __	>8,,T488<F v}}Q/00r%   c                    t        |       } t        |t              r|g}nt        |t              rt	        |      }t        |t              rd}|D ]  }t        |t
              sd} n |rdt        j                  dt        j                        j                  d      }g }|D ]  }t        |t
              r{t        |      }|j                         j                  }|j                  r8|j                         dk(  r%t        j                  ||      j                  d      }|j!                  |       |dn|}	|j!                  t        j                  |	gt        j                        j                  d              t        j"                  |d      j                  d      }t        t        j$                  | |d      j                  d            S |D cg c]  }|dn|
 }}t        |t
              rt        |      }n3t        j                  |t        j                        j                  d      }t        t        j$                  | |d      j                  d            S c c}w )NFTr   r   )r   r   r   rz   r   r   r)   r_   r   r`   r+   r[   r\   r^  r]   r_  r   r   r^   )
ra   newshapehas_dyn_drb   dim_tensorsdd_ovr\   r  s
             r#   r^   r^     s   aA(C :	He	$>(D! 	B"12	 $$Q188;DK a!45(+D11388D~~$//*;q*@'11$=DDQG&&t, !	"qC&& ))3%:AA!D  {A6==a@H&  He4;;A>  5==q!)B*==(/0 *$$Xtxx8??Bx//8UCJJ1MNN >s   I!c                    t        |       } |1t        j                  | ||      j                  d      }t        |      S t        j                  |       j                  d      }t        j
                  | t        j                  dgt        j                        d      j                  d      }t        j                  ||d      j                  d      }t        j
                  ||d      j                  d      }t        |      S )Nr   r   F)
r   r)   rollr+   r|   r^   r_   r   r`   r   )ra   rj  rb   rH   r   rC  s         r#   r  r    s    aAq%.55a8 v&&  ((+2215$$x  "txx0%

&) 	 y%3::1=!!&,>EEaHv&&r%   c                    |dvrt        d|       t        |       } t        |      }| j                         j                  j	                         dk7  rt        d| j                                t        | |d      \  } }|dk(  }t        j                  || t        j                  |      j                  d      }t        |      S )	N)leftrightz8`side` must be either 'left' or 'right'. Received: side=rW   z`searchsorted` only supports 1-D sorted sequences. You can use `keras.ops.vectorized_map` to extend it to N-D sequences. Received: sorted_sequence.shape=zsearchsorted()r  r  r   )ry   r   r[   r\   r]   r'   r)   r  r   r`   r+   r   )sorted_sequencevaluessider  rH   s        r#   searchsortedr    s    $$FtfM
 	
 $O4O6"F((*//::<A% &5%F%F%H$IK
 	
 3!1OV v~HH)	
 fQi  v&&r%   c                 r    t        |       } t        t        j                  |       j	                  d            S r   )r   r   r)   r  r+   r   s    r#   r  r  <  s+    aAx}}Q/66q9::r%   c                    t        |       } | j                         }t        j                  d|      j	                  d      }t        j
                  | |      j	                  d      }|j                         rt        j                  d|      j	                  d      }t        j                  ||       j	                  d      }t        j
                  ||      j	                  d      }t        j                  | |      j	                  d      }t        j                  ||      j	                  d      }t        j                  ||      j	                  d      }t        |      S )Nr   r   r  )r   r   r)   r_   r+   r   is_realr   r   rS   r*   r   )	ra   re   r   r   r   recip	recip_negr  neg_zeros	            r#   signbitr  A  s   aA!FQf-44Q7D--4(//2K~~6299!<Q'..q1MM%.55a8	..D)003'';BB1E))+x@GGJ{++r%   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   rY   r   r   r8   r)   r:   r   sinr+   r   s      r#   r  r  P  r  r%   c                    t        |       } | j                         }|j                         r@t        t	        j
                            }t        j                  | |      j                  d      } | j                         }t        j                  t        j                  |      }t        j                  d|      }t        j                  d|      }t        j                  ||       }t        j                  |      }t        j                  ||      }	t        j                  | |      }
t        j                   |
||	      }t#        |j                  d            S )Nr   r  r   )r   r   rY   r   r   r8   r)   r:   r+   r_   r   r   rT   r  r   r   r   r   )ra   re   ri   	elem_typer   r   r   pi_xsin_pi_xsinc_valr  rH   s               r#   sincr  Y  s   aA!F!&--/2Q(//2""$I			255)	,B


C
+CS),DR#D||D!Hx.HnnQ%G__Wc84Fv}}Q/00r%   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   rY   r   r   r8   r)   r:   r   sinhr+   r   s      r#   r  r  k  r   r%   c                    t        |       } t        j                  | t        j                        }t        j
                  |t        j                  dgt        j                        d      }t        |j                  d            S )Nr  r   Fr  )	r   r)   r|   r   rR  r"  r_   r   r+   )ra   r  
final_sizes      r#   r4  r4  t  sf    aA$$QDHH=L%%1#txx(J
 z00344r%   c                    t        |       } | j                         }|j                  j                         }|dk(  rt	        |       S |Lt        j                  | t        j                  dgt        j                        d      j                  d      } d}n
|dk  r||z   }t        j                  | t        j                        j                  d      }t        j                  |t        j                  |gt        j                        j                  d      t        j                  dt        j                        j                  d            j                  d      }t        j                  |t        j                  dgt        j                              j                  d      }t        j                  | ||ddd      }|j                  d      }t	        |      S )	Nr   r   Fr  rt   r  Tr  )r   r[   r\   r]   r   r)   r^   r_   r   r`   r+   r|   r#  r  r  )	ra   rb   r  r\   r  r  r  r  r  s	            r#   r  r    s   aA!!#G<<""$Dqy"1%% |x  "txx0%

&) 	
 	d{ $$QDHH=DDQGL4&$((+2215!TXX&--a0	 fQi	  8#4#4aS$((#CDKKANH ==	XDu74L
 !''*M}--r%   c                    t        |       } t        j                  |t        j                        j                  d      }t        j                  |       }t        j                  |gt        j                        }t        j                  ||t        j                  dt        j                              }t        |t              r6|j
                  j                         j                         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        j0                  |d      }t        j2                  | ||      }g }	t        t+        |      dz         D ]+  }
|	j!                  t        |j                  |
                   - |	S t5        dt7        |             )Nr   r   )
num_splitsrW   r   r[  z)unsupported type of indices_or_sections: )r   r)   r_   r   r`   r+   r|   r#  r   r   r5  get_datatolistr   r'  r   r   r   rz   r   r2  r{   rR  rK   r   variadic_split	TypeErrorr   )ra   r  rb   axis_tensorr  axis_i32dim_at_axis_tensorr  splitsrH   ri  rh  split_lengthslast_index_tensorremaining_length_tensorlength_partslength_tensors                    r#   r'  r'    ss   aA##D9@@CK$$Q'L  $txx8H!h 1 1!488 D %':;&&//1::<CCE 	 %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                    | j                   }t        |       } |}||   }|t        d| d| d      ||z  }||z  }|dz   g|z  |g||z
  z  z   }t        j                  |t
        j                        j                  d      }	t        j                  |t
        j                        j                  d      }
t        j                  | |
|	      }g }t        |      D ]+  }|j                  t        |j                  |                   - |S )NzFCannot use array_split with static Python logic on dynamic axis. Axis z! has unknown dimension for shape .rW   r   r   )r   r   ry   r)   r_   r   rR  r+   r`   r  r   r   r   )ra   r  rb   original_shapenum_splits_val
total_size	base_size	remainderr  split_lengths_tensorr  r  rH   ri  s                 r#   array_splitr    s%   WWNaA(N%J6:>:J!M
 	

 n,I^+I]Oi/9+"3 M $,,TXXfQi  ##D9@@CK$$Q5IJFF>" =)&--*:;<=Mr%   c                 h   t        | t              rt        |       } t        | t              st        dt	        |              | 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 )Nz6`stack` supports only `x` as list or tuple. Received: r   rW   zstack())r   rz   r   ry   r   r   r   r{   r'   r)   r_   r   r`   r+   r_  r   r   )ra   rb   r  r  refri  
const_axisr   s           r#   stackr    s   !UGaDT!WIN
 	
 ())!]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                     t        | ||      }t        j                  |j                        j                  d      }t	        |      S r   )rw  r)   r  r+   r   )ra   rb   rc   var_xstd_devs        r#   stdr    s8    4"EmmELL)003Gw''r%   c                    t        |       } | j                         }|j                  j                  rt	        d      |j                  j                         }t        ||      }t        ||      }t        t        |            }||   ||   c||<   ||<   t        j                  | t        j                  |t        j                              }t        |j                  d            S )NzO`swapaxes` does not support tensors with dynamic rank for the OpenVINO backend.r   )r   r[   r\   ro  ry   r]   r   r   r   r)   r  r_   r   r`   r   r+   )ra   r  r  r  r\   r  rH   s          r#   swapaxesr	    s    aA!!#G|| 
 	
 <<""$DeT*EeT*EdD#E{DKDKe8#4#4T488#DEFv}}Q/00r%   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)   r_   r   r`   r+   r^   r   r#  )ra   rh  rb   r  s       r#   taker  "  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        |       } t        |      }|t        j                  dgt        j                        j                  d      }t        j                  | |d      j                  d      }t        j                  ||d      j                  d      }t        j                  ||d      j                  d      }t        |      S t        | j                               }|dk  r||z  }t        j                  | t        j                        j                  d      }t        j                  |t        j                        j                  d      }	t        j                  dt        j                        j                  d      }
t        j                  |gt        j                        j                  d      }t        j                  t        j                  |||
      j                  d      |
      j                  d      }t        j                  d|j                               j                  d      }t        j                  ||      j                  d      }t        j                   ||j                               j                  d      }t        j"                  |t        j$                  ||      j                  d      |      j                  d      }t        j                   |t        j                        j                  d      }t        j&                  ||	      j                  d      }t        j                  |||
      j                  d      }t        j                  |	||
      j                  d      }t        j(                  ||||
      j                  d      }t        j(                  ||||
      j                  d      }t        j*                  | |      j                  d      }t        j*                  ||      j                  d      }t        j                  |||      j                  d      }t        |      S r  )r   r)   r_   r   r`   r+   r^   gather_elementsr   r{   r[   r|   r  r#  r   r   r:   r   r,   rx   scatter_elements_updater}   )ra   rh  rb   r  x_flatindices_flatrH   x_rankr  r  r   
axis_indexdim_sizer  is_negdim_size_cast	max_shape
x_axis_dimindices_axis_dimx_target_shaper  x_broadcastedindices_broadcasteds                          r#   rQ  rQ  .  ss   aAG$G|(("TXX>EEaH!!!\59@@C''uELLQO))&,BII!L"6**$$&'Fax488,33A6G%%gtxx8??BM""1DHH5<<Q?J""D6:AA!DJ Z8??BJfQi  ##Aw'?'?'ABII!LK]]7K077:F$$'**,fQi  ooWm4;;A>fQi  w188;G   -8??BI*jAHHKJz:fQi  55:z:fQi  $;;:/fQi 
 &&q.9@@CM",,%fQi  %%*DfQi  v&&r%   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   rY   r   r   r8   r)   r:   r   tanr+   r   s      r#   r  r  k  r  r%   c                    t        |       } | j                         }|j                         r1t        t	        j
                            }t        j                  | |      } t        t        j                  |       j                  d            S r   )r   r   rY   r   r   r8   r)   r:   r   tanhr+   r   s      r#   r   r   t  r   r%   c           
         t        |       }t        |      }t        ||d      \  }}|j                         j                  j	                         }|j                         j                  j	                         }t        |t              r-t        t        ||z
  |            }t        t        |            }ng|D 	cg c]&  }	t        |	t        t        f      rt        |	      n|	g( c}	\  }}|D 
cg c]  }
t        |
|       }}
|D 
cg c]  }
t        |
|       }}
t        |      D 
cg c]	  }
|
|vs|
 }}
t        |      D 
cg c]	  }
|
|vs|
 }}
t        j                  |t        j                  ||z   t        j                              }t        j                  |t        j                  ||z   t        j                              }t        j                   |t        j                        }t        j"                  |t        j                  |t        j                        d      }t        j$                  |dd      }t        j&                  |t        j(                  t        j                  dgt        j                        |gd      d      }t        j&                  |t        j(                  |t        j                  dgt        j                        gd      d      }t        j*                  ||dd      }|s<|s:t        j&                  |t        j                  g t        j                        d      }nt        j                   |t        j                        }g }|rH|j-                  t        j"                  |t        j                  |t        j                        d             |rH|j-                  t        j"                  |t        j                  |t        j                        d             t        j&                  |t        j(                  |d      d      }t/        |j1                  d            S c c}	w c c}
w c c}
w c c}
w c c}
w )Nztensordot()r   Tr  r   F)r   r'   r[   r\   r]   r   r   r   r   rz   r   r)   r  r_   r   r`   r|   r#  r"  r^   r   rN   r   r   r+   )r   r   r  r  r  rank_ar  axes_aaxes_br$  ri  notin_anotin_ba_transposeb_transposeshape_acontract_dimscontract_sizea_2db_2drH   r  final_partss                          r#   r9  r9  }  s}   bAbA1m4DAq  "''224F  "''224F$eFTM623eDk" KO
DF
2e}5DHB4?
 9??1#Av.??8>?1#Av.??-;Q1F?q;G;-;Q1F?q;G; $$	8Wv-txx8K $$	8Vg-txx8K
 488,GOO""64884aM ((TJM **B4:MJAND
 (9(92$(IJAND __T46F 7!!H%%b$((3U
 ##Atxx0X..wA1
 X..wA1 !!HOOK3U
 v}}Q/00A
 @?;;s*   8+P5-P:P?(	Q2Q	Q	Q	c                 f   t        |       } | j                         }|j                         s|t        j                  k(  r/t        j                  | t        t        j                                  } |dk(  rt        j                  | d      }nit        j                  d|z  | j                               }t        j                  | |      }t        j                  |d      }t        j                  ||      }|j                         rt        j                  ||      }t        |j                  d            S )Nr   rY  r  )r   r   rY   r   r(   r)   r:   r   r   r8   r?  r_   rT   r   r   r+   )ra   decimalsre   rH   r6  scaledroundeds          r#   r?  r?    s    aA!Fv5Q @A1}>2""4>13E3E3GH""1f-..8&1!!&&1v}}Q/00r%   c                 L   t        |       } | j                         }|j                         rt        |       S t	        j
                  |       }t	        j                  |       }t	        j                  |      }t	        j                  ||      }t        |j                  d            S r   )
r   r   rY   r   r)   r  r   r  rT   r+   )ra   re   r  r  floor_abs_xrH   s         r#   truncr5    s    aA!F"1%%]]1FLLOE..'Kv{3Fv}}Q/00r%   c                    t        |       } t        |t              r|g}t        |      }|j                         t        j
                  k7  r$t        j                  |t        j
                        }t        |j                               dk7  rt        j                  |dgd      }t        j                  | t        j
                        }t        j                  |t        j
                        }t        j                  |t        j
                        }t        j                  dt        j
                        }t        j                  dt        j
                        }t        j                  t        j                  ||      |      }t        j                  t        j                   ||      j#                  d      |gd      }t        j                  | |d      } t        j                  t        j                  ||      |      }	t        j                  t        j                   ||	      j#                  d      |gd      }t%        t        j&                  | |      j#                  d            S )NrW   r   Fr   )r   r   r   r   r   rR  r)   r:   r{   r[   r^   r|   r_   rx   rK   r   r}   r+   r   r  )
ra   r  r  r  rank_rr   r   pad_xnew_x_shapepad_rs
             r#   r  r    s   aA'3)G$G!TXX-""7DHH5
7$$&'1,""7RD%8488,Gw1Fw1F


Atxx
(CQ)DX..vv>EE//			C	'	.	.q	17;QK 	K/AX..vv>EEoo			C	'	.	.q	17;QG x}}Q8??BCCr%   c                 :    t        | |||      } t        | d      S )N)r  r  r  r   r[  )r  sum)ra   r  r  r  s       r#   tracer=    s    6e<Aqr?r%   c                    || }|d}t         |   }t        j                  fd} ||       } ||      } ||      }t        j                  t        j
                  dt        j                        |t        j
                  dt        j                        t        j                        }	t        j                  t        j
                  dt        j                        |t        j
                  dt        j                        t        j                        }
t        j                  |	t        j
                  dgt        j                              }t        j                  |
t        j
                  dgt        j                              }t        j                  |t        j                  ||            }|t        j                  k(  r|}nt        j                  ||      }t        |j                  d            S )Nr3   c                    t        | t        t        f      rt        j                  | |      S t        | d      r~| j                         t        j                  k7  r$t        j                  | t        j                        } t        j                  | t        j                  dgt        j                              S t        j                  | |      S )Nr   r   )r   r   r   r)   r_   r  r   r   r`   r:   r  )r  default_types     r#   ensure_constantztri.<locals>.ensure_constant  s    ec5\*$$UL99U./%%'4883 ((9##E8+<+<aS$((+KLL$$UL99r%   r   rW   r  )r   r   r`   r)   r   r_   r_  r  r,   r(   r:   r   r+   )rc  rl  r  r   r#  rA  N_constM_constr  	row_range	col_rangerow_idxcol_idxrg  rH   s                  r#   trirH    sp   y}u%H,0HH : a Ga Ga G !TXX&!TXX&HH	I !TXX&!TXX&HH	I   H,=,=qc488,LMG  H,=,=qc488,LMGwWg(FGD4<<!!$1v}}Q/00r%   c                    t        |       } | j                         }t        j                  | t        j
                        }t        j                  dt        j
                        }t        j                  dgt        j
                        }t        j                  dgt        j
                        }t        j                  t        j                  |||      |      }t        j                  t        j                  |||      |      }t        |||d      j                  }	t        j                  |	|      }
|t        j                  k(  rt        j                  | |
      }nt        j                  | |
      }t        |j                  d            S )Nr   r   r  r  r   )r   r   r)   r|   r   r`   r_   r  r#  rH  r+   r:   r(   rS   rT   r   )ra   r  ri   r   r   minus2minus1rl  rc  tri_maskrg  outs               r#   trilrP  E  s   aA  "Ga*E""1dhh/JtTXX.FtTXX.F
CZPA
CZPA1a1F+22HHg.D$,,""1d+4(szz!}--r%   c                    t        |       } | j                         }t        j                  | t        j
                        }t        j                  dt        j
                        }t        j                  dgt        j
                        }t        j                  dgt        j
                        }t        j                  t        j                  |||      |      }t        j                  t        j                  |||      |      }t        |||dz
  d      j                  }	|t        j                  k(  rt        j                  |	      }
nBt        j                  d|      }t        j                  |	|      }t        j                  ||      }
|t        j                  k(  rt        j                  | |
      }nt        j                   | |
      }t#        |j                  d            S )Nr   rJ  r   rW   r  rK  )r   r   r)   r|   r   r`   r_   r  r#  rH  r+   r(   rJ  r:   rK   rS   rT   r   )ra   r  ri   r   r   rL  rM  rl  rc  rN  rg  r   converted_maskrO  s                 r#   triurS  W  sc   aA  "Ga*E""1dhh/JtTXX.FtTXX.F
CZPA
CZPA1a1q5/66H$,,##H-%%a1	!))(G<  N;$,,""1d+4(szz!}--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        j                  dgt        j                        j                  d      }t        j                  | |d      j                  d      } t        j                  ||d      j                  d      }t        t        j                  | |dd      j                  d            S )Nzvdot()r   r   F)r   r   r+   r   r   r'   r[   r\   r)   rT   r_   r   r`   r^   rN   )r   r   rO   r   s       r#   vdotrU  n  sA   L")*yy113")*yy113	r<	(B	r<	(B!"b(3FB	""a'2+?+?+A+F+F!+K"8#4#4R#<#C#CA#FGG%%rdDHH5<<Q?M			"mU	3	:	:1	=B			"mU	3	:	:1	=Bxr2ueDKKANOOr%   c                    t        | t        t        f      s| f} | D cg c]  }t        |       }}|d   j                  j                         }|D cg c]  }t        ||       }}d}t        dt        |            D ]  }t        |d   ||   d      \  |d<   ||<     t        t        j                  ||      j	                  d            S c c}w c c}w )Nr   rW   zvstack())r   r   rz   r   r+   r   r   r   r{   r'   r   r)   r   )r  r  r  rO   rb   ri  s         r#   vstackrW    s    b4-(U134t$4E48??335L;@A4]4.AEAD1c%j! 
1!HeAh

a%(
 xud;BB1EFF 5As   CCc                     t        | |d      S r  r'  ra   r  s     r#   vsplitr[        'a00r%   )excluded	signaturec                      fd}|S )Nc                  8    t        d | D              } |i |S )Nc              3   2   K   | ]  }t        |        y wr  r   )r9  r  s     r#   r;  z-vectorize.<locals>.wrapper.<locals>.<genexpr>  s     F#05F   )rz   )argsr>   converted_argspyfuncs      r#   wrapperzvectorize.<locals>.wrapper  s#    FFF~000r%   r   )re  r]  r^  rf  s   `   r#   	vectorizerg    s    1 Nr%   c                    t        |       } | j                         t        j                  k7  r3t	        j
                  | t        j                        j                  d      } |1|/t	        j                  |       }t        |j                  d            S |t        |       S |t        d      d }t        |t        t        f      r |||      \  }}n9t        |t        t        f      r |||      \  }}nt        |      }t        |      }t        ||d      \  }}t        t	        j                  | ||      j                  d            S )Nr   z'x2 must be provided if x1 is specified.c                     t        |      j                         }|t        j                  k(  }t	        | t
              xr |j                         }|s|rt        |       t        |      fS t        | |      t        |      fS r  )r   r   r   r(   r   r   rY   )literalra   ri   r   is_float_to_ints        r#   cast_literal_like_tensorz'where.<locals>.cast_literal_like_tensor  sn    "335T\\)$We4N9L9L9No )=+;;;Wg.a0@@@r%   select())r   r   r   r(   r)   r:   r+   r  r   ry   r   r   r   r'   r   )r  r   r   nonzero_indicesrl  s        r#   wherero    s   i(I!!#t||3$$Y=DDQG		zbj"++I6"?#9#9!#<==	z"9--	zBCCA "sEl#)"b1B	Be	%)"b1B22!"b*5FBxy"bAHHKLLr%   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   r   r   r   r)   r:   r   )r   r   rO   r   r   r   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                     d }t        | t              r| j                  j                         }t        |t              r|j                  j                         }t	        | |      } t	        ||      }t        | |d      \  } }t        j                  d|j                               }t        j                  | |      }t        j                  ||      }t        j                  |||      }t        |j                  d            S )Nzdivide_no_nan()r   )r   r   r+   r   r   r'   r)   r_   r   r   r   )r   r   rO   r   divr  rH   s          r#   divide_no_nanrs    s    L")*yy113")*yy113	r<	(B	r<	(B!"b*;<FBQ 3 3 56D
//"b
!CnnR&G__WdC0Fv}}Q/00r%   c                     t        | |      S r  )r   r-   s     r#   true_divideru    s    "b>r%   c                    t        | t        j                        rt        | j	                               nt        | dt        |             }t        |t        j                        rt        |j	                               nt        |dt        |            }t        t        j                  ||         }t        | |      } t        ||      }t        | |d      \  } }t        t        j                  | |      j                  d            S )Nr   zpower()r   )r   r   r   r   r   r   r   r   r   r   r   r'   r   r)   r  r+   )r   r   r    r!   rO   s        r#   r  r    s     b"))$ 	,,./R$r(+  b"))$ 	,,./R$r(+ 
 #6#5#5b"#=>L	r<	(B	r<	(B!"b)4FBx~~b"5<<Q?@@r%   c                 r    t        |       } t        t        j                  |       j	                  d            S r   )r   r   r)   r  r+   r   s    r#   r  r    r   r%   c                    t        |       } t        |      }t        | |d      \  } }t        | j                               }t        |j                               }t	        j
                  ||t              }t        |   }t        j                  | t        j                        j                  d      } t        j                  |t        j                        j                  d      }t        j                  dt        j                        j                  d      }t        j                  dt        j                        j                  d      }t        j                  dt        j                        j                  d      }t        j                  | |      j                  d      }	t        j                  t        j                   ||             j                  d      }
t        j"                  |       j                  d      }t        j                  t%        j&                  d      t        j                        j                  d      }t        j(                  t        j*                  t        j&                  |      |            j                  d      }t        j                  dt        j                        j                  d      }t        j,                  ||      j                  d      }t        j                  dt        j                        j                  d      }t        j                   ||      j                  d      }t        j.                  ||      j                  d      }t        j.                  ||      j                  d      }t        j                  ||      j                  d      }t        j0                  t        j2                  | |
      |      j                  d      }t        j4                  ||      j                  d      }t        j6                  |t        j2                  ||      |      j                  d      }t        j8                  | t        j2                  |
|            j                  d      }t        j                  dt        j                        j                  d      }t        j2                  t        j                  |      |      j                  d      }t        j                  | |      j                  d      }t        j6                  |||      j                  d      }t        j6                  |	||      j                  d      }t;        t        j                  ||      j                  d            S )	Nznextafter()r   r   r  r  g     g      J@g       )r   r'   r   r   r   r   r   r   r)   r:   r   r  r+   r_   r   r  rK   r   r   r=  r  r   rx   r  r   rT   rS   r   r,   r   )r   r   x1_kerasx2_kerasr   r#  r   r  r  eq_mask	directionabs_x1ln2log2_absmin_expclamped_expmantissa_bitsulp_expulp
pow2_flooris_pow2going_towards_zero
halve_maskrH   min_subnormalzero_resultr  s                              r#   	nextafterr    s    	r	B	r	B!"b-8FB 3 3 56H 3 3 56Hx59Eu%H 
		"dhh	'	.	.q	1B			"dhh	'	.	.q	1BS$((+2215D


C
*
1
1!
4CS$((+2215DnnR$++A.Gh//B78??BI\\"$$Q'F 

BFF3K
2
9
9!
<C~~V,c2fQi  299!<G""8W5<<Q?K%%dDHH5<<Q?M];BB1EG
..g
&
-
-a
0C X.55a8JnnVZ077:G!"i($fQi  %%g/ABII!LJ
//*h&7&7T&BC
H
O
O	C \\"h//	3?@GGJF %%fdhh7>>qAM##HMM"$5}ELLQOKnnR&--a0G__Wk6:AA!DF __Wb&188;Fx//AHHKLLr%   c                    t        |       } | j                         }|t        j                  k(  r3t	        j
                  | t        j                        j                  d      } t	        j                  d| j                               j                  d      }t        t	        j                  | |      j                  d            S r  )r   r   r   r(   r)   r:   r`   r+   r_   r   r  )ra   re   r  s      r#   squarer  0  s    aA!FQ)003!!!Q%7%7%9:AA!DIx~~a;BB1EFFr%   c                 2   t        |       } | j                         }|j                         r@t        t	        j
                            }t        j                  | |      j                  d      } t        t        j                  |       j                  d            S r   )r   r   rY   r   r   r8   r)   r:   r+   r   r  r   s      r#   r  r  9  sr    aA!F!&--/2Q(//2x}}Q/66q9::r%   c                    t        |       } |:g }t        | j                               D ]  \  }}|dk(  s|j                  |        t	        |t
              rt        |      }t        j                  |t        j                        j                  d      }t        t        j                  | |      j                  d            S r   )r   r  r[   r   r   rz   r   r)   r_   r   r`   r+   r   r  )ra   rb   rw  r#  s       r#   r  r  B  s    aA|!!"5"5"78 	!HCaxC 	! $Dz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      }nt| j                         j                  j                         }|D cg c]  }t        ||       }}t        j                  |t
        j                        j                  d      }t        t        j                   | |      j                  d            S c c}w )NrR  r   Fr   )r   r)   r|   r+   r_   r   r`   r^   rR  r,   r   r[   r\   r]   r   r   r  )	ra   r  r  r  r  r  r  r\   r  s	            r#   r  r  O  sm   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

&) 	 ""$))446489q!!T*99  txx077:x11!T:AA!DEE :s   Gc                    | j                         j                  j                         }t        j                  dg|z  t
        j                        j                  d      }t        j                  dg|z  t
        j                        j                  d      }dg|z  }d||<   t        j                  |t
        j                        j                  d      }dg|z  }d||<   dg|z  }d||<   t        j                  | |||||      j                  d      }	dg|z  }
d|
|<   t        j                  |
t
        j                        j                  d      }t        j                  dg|z  t
        j                        j                  d      }dg|z  }d||<   dg|z  }t        j                  | |||||      j                  d      }|	|fS )NrW   r   r   r   )	r[   r\   r]   r)   r_   r   rR  r+   r  )r   rb   r\   r  begin1	end1_listend1begin_mask1	end_mask1y1begin2_listbegin2end2begin_mask2	end_mask2y2s                   r#   _helper_trapezoidr  c  s    %%002Dd
$((;BB1EG sTz:AA!DFd
IIdOYdhh7>>qAD#*KKd
IIdO				64+y
fQi 
 #*KK{$((;BB1EFaS4Ztxx8??BD#*KKd
I				64+y
fQi  r6Mr%   c                 z   t        |       } | j                         }|j                         r@t        t	        j
                            }t        j                  | |      j                  d      } t        | |      \  }}t        j                  ||      j                  d      }t        j                  d|      j                  d      }t        j                  ||      j                  d      }|t        |      }|j                         }	|	j                         r@t        t	        j
                            }	t        j                  ||	      j                  d      }t        ||      \  }
}t        j                  ||
      j                  d      }n&t        j                  ||      j                  d      }t        j                  ||      j                  d      }t        j                  |gt        j                         j                  d      }t        j"                  ||d      j                  d      }t%        |      S )Nr   r   r   F)r   r   rY   r   r   r8   r)   r:   r+   r  r,   r_   r   rK   rT   r   rR  r  r   )r   ra   dxrb   y_typer  r  y_finalr  re   r   r   x_finalrH   r  s                  r#   	trapezoidr    s   aA!F 1Q'..q1q$'FBll2r"))!,G!!!6299!<Ioogy188;G}!##%$V]]_5F  F+2215A"1d+B##B+2215 ##Bf5<<Q?w077:F""D64884;;A>J  U;BB1EFv&&r%   c                     t        |       } | j                         j                         s3t        j                  | t
        j                        j                  d      } | j                         }d |v rt        d|       t        |t              rt        |      }t        j                  |      }t        j                  ||      j                  d      }t        j                  d|      j                  d      }t        j                  | |      j                  d      }t        j                   |t        j"                  | |      |       j                  d      } g }t%        |      D ]  }t        j                  ||      j                  d      }	t        j&                  | |	      j                  d      }
|j)                  |
       t        j*                  | |	      j                  d      }  t        t%        |            }t        d |D              S )Nr   z8`shape` argument cannot contain `None`. Received: shape=c              3   2   K   | ]  }t        |        y wr  r   )r9  coords     r#   r;  z unravel_index.<locals>.<genexpr>  s     @$U+@rb  )r   r   rY   r)   r:   r   rR  r+   ry   r   rz   r   mathr  r_   r   r   r,   reversedr  r   r   )rh  r   indices_dtyper  total_size_constr   r   coordsr  	dim_constr  s              r#   unravel_indexr    s   G$G##%113""7DHH5<<Q?,,.Mu}FugN
 	
 %U 5!J((]CJJ1MQ.55a8D--.55a8KooX\\'+;<gfQi  FUO @%%h>EEaH	""7I6==a@e//'95<<Q?	@ (6"#F@@@@r%   c                 D   t        |       } | j                         }t        j                  | t        j
                        j                  d      }t        j                  dgt        j
                        j                  d      }t        j                  dt        j
                        j                  d      }t        j                  dt        j
                        j                  d      }t        j                  dt        j
                        j                  d      }|(t        j                  ||      j                  d      }	|}
ngt        j                  |t        j
                        j                  d      }	t        j                  |gt        j
                        j                  d      }
t        j                  |	|      j                  d      }|r(t        j                  ||	||      j                  d      }n't        j                  ||||      j                  d      }t        j                  ||
gd      j                  d      }t        j                  dgt        j
                        j                  d      }t        j                  ||      j                  d      }t        j                  | |      j                  d      } t        j                  | |      j                  d      }t        j                  ||      j                  d      }t        |      S )Nr   r   rW   r   )r   r   r)   r|   r   rR  r+   r_   r  rK   r   r   r_  r}   r  r   )ra   rc  
increasingre   r  const_zero_1Dr   r   
const_moneconst_N
const_N_1Dconst_N_minus_onepowersr  const_one_1DrH   s                   r#   vanderr    sV   aA!F488,33A6G%%qc:AA!DM""1DHH5<<Q?J!!!4884;;A>I""2TXX6==a@Jy""7M:AA!D
##Atxx077:&&sDHH5<<Q?
 ))'9=DDQG
GYGNN
 z:v

&) 	 ??GZ#8!<CCAFL$$aS9@@CL6==a@F1l+2215A<077:F^^FF+2215Fv&&r%   c                    t        |       } | j                         }t        | |      \  } }|j                         s|t        j
                  k(  rAt        t        j                            }t        j                  | |      j                  d      } n|}|gt        j                  d|      j                  d      }t        t        j                  |t        j                  |             j                  d            S t        j                   | ||      j                  d      }t        j                  d|      j                  d      }t        j"                  | |      j                  d      }t        j"                  ||      j                  d      }	t        j                   |||      j                  d      }
t        t        j$                  |
|	      j                  d            }|S )Nr   r   r   )r   r   rX   rY   r   r(   r   r   r8   r)   r:   r+   r_   r   r}   r|   rZ   r  rK   )ra   rb   rc   re   
work_dtyper   rk   r  	squared_xsquared_meansquared_x_meanvariances               r#   rw  rw    s   aA!FAt$GAtv5$V]]_5
Q
+2215
|&&q
;BB1E
"z8+<+<Q+?@GGJ
 	

 4299!<D!!!Z077:Iq),33A6I>>$	299!<L)))T8DKKANN".,7>>qAH Or%   c                     t        |       } t        | |      \  } }|t        |       S t        |       } t	        j
                  | ||      j                  d      }t        |      S r   )r   rX   r   r   r)   r  r+   )ra   rb   rc   summed_values       r#   r<  r<    s`    aAAt$GAt|"1%%q!A&&q$9@@CL|,,r%   c                 L   t        |      xs t        j                         }t        |   }|| }d } ||       } ||      }t	        j
                  |t        j                        j                  d      }t        t	        j                  ||||      j                  d            S )Nc                    t        | t        t        j                  f      rt	        |       }|j                         t        j                  k7  r3t        j                  |t        j                        j                  d      }t        j                  |t        j                  dgt        j                        j                  d      d      j                  d      S t        j                  | gt        j                        j                  d      S rV   )r   r   r   r   r   r   r   r`   r)   r:   r+   r^   r_   )r  val_ovs     r#   _to_dim_tensorzeye.<locals>._to_dim_tensor   s    c/;<"3'F&&(DHH4!))&$((;BB1E##))1#txx8??BEfQi   #188;;r%   r   r  )r   r   r8   r   r)   r_   r   r`   r+   r   r"  )	rc  rl  r  r   ri   r  N_ovM_ovk_ovs	            r#   r"  r"    s    e$7Ee$Gy< !D!DQ)003D		

 &) r%   c                    t        |       }t        |      }|j                         t        j                  k(  r3t	        j
                  |t        j                        j                  d      }t        |t        t        f      r|j                         j                         r,t        |t              rt        t        j                            }n|j                         }t	        j
                  ||      j                  d      } t	        j
                  ||      j                  d      }nt        ||d      \  } }t	        j                   | |      j                  d      }t	        j"                  |      j                  d      }t%        |      S )Nr   zfloor_divide())r   r   r   r(   r)   r:   r`   r+   r   r   r   rY   r   r   r8   r'   r   r  r   )r   r   	x1_output	x2_outputri   rr  floored_divs          r#   floor_divider  7  s"   b!Ib!I!!#t||3$$Y9@@C	"sEl#%%'335*R:O%fmmo6G002Gi188;i188;%i<LMB
//"b
!
(
(
+C..%,,Q/K{++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)   r:   r   r(   r+   r   rJ   r-   s     r#   rJ   rJ   J  r  r%   c                     t        |       }|j                         }|}|j                         r@t        t	        j
                            }t        j                  ||      j                  d      }t        j                  dt        j                        j                  d      }t        j                  d|      j                  d      }t        j                  ||d      j                  d      }t        j                  ||      j                  d      }t        j                  ||dd      j                  d      }t        j                  ||      j                  d      }t        j                   ||d      j                  d      }	t        j"                  |	      j                  d      }
t        j                  |
|
dd      j                  d      }t        j$                  ||      j                  d      }t'        |      S )Nr   rW   r   r   TF)r   r   rY   r   r   r8   r)   r:   r+   r_   r   rR  rZ   rK   rN   r  r  r  r   r   )ra   rd   re   ri   r   r  rk   covxsqrxvarxstdr  rH   s                r#   corrcoefr  R  s   D""$FG!&--/2g.55a8!!!4884;;A>I!!!73::1=Ii6==a@DT4(//2D
//$eT
2
9
9!
<C>>$	*11!4DtY5<<Q?D==%%a(D
//$eT
2
9
9!
<C__S#&--a0Fv&&r%   c                    t        |       } t        |      }| j                         }|j                         }t        |      }t        |      }t        j                  ||t
              }t        |   }t        j                  | |      j                  d      } t        j                  ||      j                  d      }t        j                  |t        j                        j                  d      }t        j                  dt        j                        j                  d      }t        j                  dt        j                        j                  d      }t        j                  d|      j                  d      }	t        j                  ||      j                  d      }
|dk(  rnt|dk(  r/t        j                  |
t        j                        j                  d      }t        j                   ||      j                  d      }t        j"                  |      j                  d      }t        j$                  |      j                  d      }t        j                  |t        j                        j                  d      }t        j                  |t        j                        j                  d      }t        j&                  | ||d|	      j                  d      } n?|dk(  r+|
}t        j&                  | ||d|	      j                  d      } nt)        d| d	      t        j                  ddgt        j                  
      j                  d      }t        j*                  ||      j                  d      }t        j*                  | |      j                  d      } t        j,                  | |dgdgdgdg      j                  d      }t        j.                  ||      j                  d      }t1        |      S )Nr   r   rW   validsamer_   r  zmode: z, not available chose from valid, same, full.r   )r   r   r   r   r   r   r   r)   r:   r+   r|   r   rR  r_   r  rK   r   r  r  r  ry   r_  convolutionr  r   )r   r   r  r   r   r   shape_filterr  r   r   shape_filter_minus_oneshape_minus_one_floatr  r  r  r  rH   s                    r#   	correlater  m  s)   	r	B	r	B!!#G!!#Gw'Gw'G$$Wgu=K!+.K			"k	*	1	1!	4B			"k	*	1	1!	4B$$R299!<L!!!TXX.55a8I!!!TXX.55a8I""1k299!<J%..|YGNN	
 w	 ( 0 0"DHH!

&) 	  5yAHHK}}U#**1-u%,,Q/dhh/66q9  188;\\"dE:zBII!L	$\\"c3
J?FFqI TFFG
 	
 aV4884;;A>D			B	%	,	,Q	/B			B	%	,	,Q	/B!!"b1#sQC!=DDQGFfd+2215Fv&&r%   c                    t        |       t        |      k7  rt        d      | D cg c]  }t        |       }}|D cg c]  }t        |       }}t        |      }t        t	        t        |                  D ]B  }||   }	||   }
t        |
|d      \  }
}t        j                  |	|
|      j                  d      }D t        |      S c c}w c c}w )Nz;select(): condlist and choicelist must have the same lengthrm  r   )
r{   ry   r   r  r   r'   r)   r   r+   r   )condlist
choicelistdefaultr  condsr5  choicesrH   cond_idxr  choices              r#   r   r     s    
8}J'I
 	
 (00!]10E0)34A}Q4G47#FU3u:./ AX"-ffjIvv6==a@	A
 v&& 14s
   CCc                 V   t        |       } t        |       }|j                         }|j                         s|t        j
                  k(  rPt        t        j                            }t        j                  ||      j                  d      }|j                         }t        |      }t        t        j                  |t                 }||k7  r't        j                  ||      j                  d      }|}|j!                         }t#        |      }|d   j%                         }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(                        j                  d      t        j&                  dt        j(                        j                  d            j                  d      }t        j&                  d|      j                  d      }t        j&                  d|      j                  d      }t        j&                  d|      j                  d      }t        j0                  ||      j                  d      }t        j0                  ||      j                  d      }t        j&                  dt        j(                        j                  d      }t        j&                  dt        j(                        j                  d      }t3        |      D 
]  }t        j.                  |
t        j&                  |t        j(                        j                  d      |      j                  d      }t        j4                  |      j                  d      }t        j6                  |t        j&                  d|gt        j(                        j                  d      t        j&                  d	|gt        j(                        j                  d      t        j&                  ddgt        j(                        j                  d      t        j&                  ddgt        j(                        j                  d            j                  d      }t        j8                  |t        j&                  dt        j(                        j                  d      dd
d      }t        j:                  t        j                  |j                  d      t        j(                        j                  d      t        j&                  dgt        j(                        j                  d            j                  d      }t        j<                  |t        j&                  |t        j(                        j                  d            j                  d      }t        j>                  |t        j&                  |t        j(                        j                  d            j                  d      }t        j                  ||      j                  d      }t        j@                  t        j0                  ||      j                  d      t        jB                  ||      j                  d            j                  d      }t        jB                  ||      j                  d      }t        j.                  |
t        j&                  |gt        j(                        j                  d      |      j                  d      }t        jD                  |t        j&                  dgt        j(                        j                  d            j                  d      }t        j.                  |
||d      j                  d      } t        jF                  |
t        j&                  |gt        j(                        j                  d      | |      j                  d      }
t        jD                  t        j2                  t        j&                  dt        j(                        j                  d      t        j&                  |t        j(                        j                  d      t        j&                  dt        j(                        j                  d      t        j(                        j                  d      t        j&                  ddgt        j(                        j                  d            j                  d      }!t        jD                  |t        j&                  dgt        j(                        j                  d            j                  d      }"t        jH                  |!|"      j                  d      }#t        j0                  |t        j,                  |
t        j(                        j                  d            j                  d      }$t        jJ                  |#|$|
      j                  d      }
t        j&                  |gt        j(                        j                  d      }%t        j.                  |
|%|      j                  d      }&t        j.                  |&|%|      j                  d      }'t        j:                  |'t        j&                  ddgt        j(                        j                  d            j                  d      }(t        j4                  |(      j                  d      })t        jL                  |)t        j&                  d|      j                  d            j                  d      }*t        j<                  |t        jN                  |*      j                  d            j                  d      }t        jB                  |t        jP                  |(      j                  d            j                  d      }t        jJ                  t        jH                  |'t        j&                  d|      j                  d            j                  d      t        j&                  d|      j                  d      |'      j                  d      }+t3        |dz   |      D ]  },t        j&                  |,gt        j(                        j                  d      }-t        j.                  |
|-|      j                  d      }.t        j.                  |.|%|      j                  d      }/t        jR                  |/|+      j                  d      }0t        j@                  |.t        jB                  |0|&      j                  d            j                  d      }1t        jF                  |
|-|1|      j                  d      }
 
 t        jH                  |t        j0                  ||      j                  d            j                  d      }2t        j&                  t        d      |      j                  d      }3t        jJ                  |2t        j0                  |3|      j                  d      |      j                  d      }|dkD  r`t3        |dz
        D ,cg c]  },||,   j%                          }4},t        j&                  |4t        j(                        j                  d      }5n3t        j&                  g t        j(                        j                  d      }5t        j*                  ||5d      j                  d      }6t        j*                  ||5d      j                  d      }7tU        |6      tU        |7      fS c c},w )Nr   r   Fr   r  r  rW   r   i   @rm   none)rb   r  r  )
batch_dimsr  gx88z-inf)+r   r   r   rY   r   r(   r   r   r8   r)   r:   r+   r   r   r   r   r[   r{   r]   r_   r`   r^   r|   r#  r}   r   r   rS  r  r  r,   r  rK   rT   r_  scatter_updater   r   rx   r=  r  r   r   )8ra   rd   	x_ov_type
float_type
keras_typeresult_ov_typer  r  r  r?  	x_batchedbatch_shape
batch_sizer   r   r  log_abs_detsign_detrow_axiscol_axisr  col_k	abs_col_kabs_col_k_subtopk_resultlocal_max_idx	pivot_rowswap_neededswap_needed_f	sign_fliprow_kpivot_row_2dpivot_row_dataall_row_indicespivot_row_3d	swap_maskrow_k_tiledk_idxpivot_row_cur
pivot_elempivot_scalar	abs_pivotsafe_abs
safe_pivotri  i_idxrow_ielem_ik
multiplier	row_i_newis_singularr^  r  re  sign_resultlogabsdet_results8                                                           r#   slogdetr    s   !AD%%'I )t||";$V]]_5
j188;))+	 "),J$V%7%7
E%JKNN"n5<<Q?"	$$&G\F A ""B1:txx8??BJ  z59@@CI##Itxx8??BK1#txx(//2!TXX&--a0 fQi	  S),33A6D


C
+
2
21
5C


C
+
2
21
5C $$T:6==a@K!!#z299!<H  DHH-44Q7H  DHH-44Q7H 1X {x((DHH5<<Q?

&) 	 %%e,33A6	 !q!fdhh/66q9uaj$((3::1=q!fdhh/66q9q!fdhh/66q9
 &) 	 mma*11!4
 !(([//2DHH=DDQGqc488,33A6
 &) 	 LL8,,Q9@@C

&) 	
 ((x((DHH5<<Q?

&) 	 !((i@GGJ%%sJ/66q9c=188;
 &) 	 $$Xy9@@C x((!dhh7>>qA8

&) 	  ))x((!dhh7>>qA

&) 	 "|X!

&) 	
 ++qc488,33A6	

 &) 	 #,,NN!!!TXX.55a8!!!TXX.55a8!!!TXX.55a8 HH	
 fQiq!fdhh/66q9
 &) 	  ))(++QC:AA!D

&) 	 NN?LAHHK	((8$$Y9@@C

&) 	 OOI{IFMMaP	 !!1#txx077: 	5(CJJ1M__]E8DKKAN
''))1a&$((;BB1E

&) 	 %%l3::1=	##x((	:AA!D

&) 	 llh/66q9

&) 	 $$hmmL188;

&) 	
 __NNH--c9=DDQGfQic9-44Q7
 &) 	 q1ua 
	A%%qc4884;;A>EOOIuh?FFqIEooeUH=DDQGG!*=DDQGJ ))x((]CJJ1MfQi  !//5)XfQi 
	c{| ..($$T:6==a@fQi  fy9@@CG//7J/66q9 fQi	  z7<VaZ7HI!gaj++-I
I%%j$((;BB1E	%%b$((3::1=	""8Y>EEaHK''YFMMaP{+-@.   Js   ~&c                    t        |       } |>t        j                  | t        j                  dgd      d      j	                  d      } d}| j                         }|j                  j                         }t        ||      }t        t        |            }|d   ||   c||<   |d<   t        j                  | t        j                  |            } t        j                  |       }t        j                  |t        j                  d      t        j                  d            }t        |t              r>|dk  r9t        j                   |t        j                  ||j#                                     }n$t        j                  ||j#                               }t        j                  d|j#                               }	t        j                   ||	      }
t        j$                  t        j&                  |       |
ddd	      j	                  d      }t        j(                  ||t        j                  d      t        j                  d      d
      }t        j*                  |t        j                  dg      d      }t        j,                  t        j                  d      |      }t        j.                  ||      }t        j.                  ||
      }t        j$                  ||ddd	      j	                  d      }t        j0                  ||gd
      }dg|z  }t3        |      D ]
  \  }}|||<    t        j                  |t        j                  |            j	                  d      }t5        |      S )Nr   r5   r   Fr   rW   rm   r  r!  r[  rJ  r  )r   r)   r^   r_   r+   r[   r\   r]   r   r   r   r  r|   r#  r   r   r,   r   r  r  r  r  r}   rK   r   r  r   )ra   kthrb   r  r\   r  r$  r  
kth_tensorr   rw  
bottom_indone_hot_maskrg  r   proxyremaining_ktop_indrH   inv_axesri  r  s                         r#   argpartitionr  {  s	   aA|rd'2
 &)	 	

 !!#G<<""$DT4(DdD8T$ZDJR1h//56A&&q)N"!	A
 #sa\\c1#5#5#78


 &&sA,>,>,@A



Az::<
=CLLS)E!
 fQi  ##	!!L 2$D
 !D dD)E##Au-Kmm
 fQi  __j'2<FsTzH$ 1(# fQi  v&&r%   c           
         t        |       } t        j                  | dgd      j                  d      } t        t        j                            }t        j                  | |      j                  d      }|t        j                  |d      j                  d      }t        j                  |d      j                  d      }t        j                  ||      }t        j                  d|      j                  d      }t        j                  |t        j                  ||      |      }t        j                  |t        j                  ||      |      }|j                  d      }|j                  d      }nPt        j                  |d   |      j                  d      }t        j                  |d   |      j                  d      }t        j                  ||      j                  d      }	t        j                  t        j                  ||      |	      j                  d      }
t        j                   t        j                  d|      t        j                  |dz   |      t        j                  d|      |      j                  d      }t        j                  |t        j"                  ||
            j                  d      }t        j$                  ||t&        j(                  d      j                  d      }t        j                  |t        j                  dt&        j(                        j                  d            }t        j                  |t&        j(                        j                  d      }t        j*                  |t        j                  dt&        j(                        j                  d            }t        j,                  ||      }t        j                  ||      }|}t        j                  |||      }t        j                  |dz
  t&        j(                        j                  d      }t        j                  |||      }t        j                  |||      }t        j                  |dz   t&        j(                        j                  d      }t        j                  dt&        j(                        j                  d      }t        j                  dt&        j(                        j                  d      }t        j.                  ||||d      }t        j0                  |t        j                  dt&        j(                        j                  d      d	      }t        j2                  |t        j                  dgt&        j(                        j                  d      t        j                  |gt&        j(                        j                  d      t        j                  dgt&        j(                        j                  d      t        j                  dgt&        j(                        j                  d            }t5        |j                  d            t5        |      fS )
Nr   Fr   r  rW   r  r  r[  r  )r   r)   r^   r+   r   r   r8   r:   ru   rw   r   r_   r   rK   r,   r   r   rT   r  r   r`   r   r   r  r  rS  r   )ra   r  r   r  x_floatr  r  is_equalr  
bins_constr   	idx_float	bin_edgesindsinds_shifted	trash_idxis_underis_overis_max
final_indsbins_minus_1replacementr  on_valoff_valr  countshists                               r#   	histogramr0    s   aARD%(//2A 1Jq*-44Q7G}%%gq188;%%gq188;>>'73  j188;//h''6
 //hll7D17
 ..#..###E!Hj9@@C##E!Hj9@@C""44;;A>J??'7+ZfQi 	 !Z($(J/!Z(	
 fQi  ""9d3fQi  5fQi 	 $$h488,33A6L !!$188;I}}h''4884;;A>H $$\9=G^^GW-FJ9jAJ$$TAXtxx8??BL//&,	BK+zBJdQh188;Eq$((+2215F488,33A6Gz5&'KG  ""1dhh/66q9UF >>1#txx(//24&$((+22151#txx(//21#txx(//2D t{{1~.0CI0NNNr%   c           
      4(   t        |       } d}t        j                  | t        j                        j                  d      }	| j                         j                  j                         }
|`t        j                  | t        j                  dgt        j                        j                  d      d      j                  d      }|j                         }|j                  j                  r |d   j                  r|d   j                         dk(  r|}t        j                  t        j                  g t        j                              j                  d      }t        j                  t        j                  g t        j                              j                  d      }t        j                  t        j                  g t        j                              j                  d      }d}n|j                         }|j!                         r_t        j"                  ||      j                  d      }t        j$                  t        j                  |t        j                        j                  d      t        j                  dgt        j                        j                  d            j                  d      }t        j&                  t        j                  dt        j                        j                  d      |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                  dgt        j                        j                  d            j                  d      t        j.                  |t        j                  dgt        j                        j                  d            j                  d      gd      j                  d      }t        j0                  |t        j                  dt        j                        j                  d      |d	d	
      }|j                  d      }|j                  d      }|j                  d      }|j                  d      }t        j$                  t        j2                  |t        j                  dgt        j                        j                  d      t        j                  dt        j                        j                  d            j                  d      t        j                  dgt        j                        j                  d            j                  d      }t        j$                  t        j2                  |t        j                  dgt        j                        j                  d      t        j                  dt        j                        j                  d            j                  d      t        j                  dgt        j                        j                  d            j                  d      }t        j(                  |t        j4                        j                  d      }t        j                  t        j6                  |      j                  d      }t        j*                  |||      j                  d      }n]t        j0                  ||d	d	      }|j                  d      }|j                  d      }|j                  d      }|j                  d      }d}nt9        ||
      }t        j                  |t        j                        j                  d      } d}!| j                         }"|"j                  j                  r'|"|   j                  r|"|   j                         dk(  rd}!|!r| }t        j                  t        j                  g t        j                              j                  d      }t        j                  t        j                  g t        j                              j                  d      }t        j                  t        j                  g t        j                              j                  d      }n^t        j0                  | | |d	d	
      }|j                  d      }|j                  d      }|j                  d      }|j                  d      }|	t        j                  |t        j                        j                  d      }#t        j$                  t        j2                  |#t        j                  |gt        j                        j                  d      t        j                  dt        j                        j                  d            j                  d      t        j                  dgt        j                        j                  d            j                  d      }$t        j                  |t        j                        j                  d      }%t        j:                  |$|%      j                  d      }&t        j&                  t        j                  dt        j                        j                  d      |&t        j                  dt        j                        j                  d      t        j                        j                  d      }'t        j2                  ||'t        j                  |t        j                        j                  d            j                  d      }t        j<                  t        j>                  |%|$      j                  d      t        j                  dt        j                        j                  d            j                  d      }(|dk(  rt        j                  |t        j                        j                  d      })t        j@                  |)t        j                  dgt        j                        j                  d      t        j                  dgt        j                        j                  d      t        j                  dgt        j                        j                  d            j                  d      }*t        j,                  t        j.                  |(t        j                  dgt        j                        j                  d            j                  d      |*gd      j                  d      }+|dn|},t        |,|j                               }-t        jB                  |-|+      j                  d      }.t        j,                  ||.gd      j                  d      }n|gt'        |
      D /cg c]
  }/|/|k7  s	|/ c}/z   }0dg|
z  }1tE        |0      D ]
  \  }/}2|/|1|2<    t        jF                  |t        j                  |0t        j                        j                  d            j                  d      }3t        j                  |3t        j                        j                  d      }4t        j@                  |4t        j                  dgt        j                        j                  d      t        j                  dgt        j                        j                  d      t        j                  dgt        j                        j                  d            j                  d      }*t        j,                  t        j.                  |(t        j                  dgt        j                        j                  d            j                  d      |*gd      j                  d      }+|dn|},t        |,|3j                               }-t        jB                  |-|+      j                  d      }.t        j,                  |3|.gd      j                  d      }3t        jF                  |3t        j                  |1t        j                        j                  d            j                  d      }|r,t        j2                  ||'t        j                  dt        j                        j                  d            j                  d      }t        j                  d|j                               j                  d      }5t        jB                  |5t        j.                  |(t        j                  dgt        j                        j                  d            j                  d            j                  d      }6t        j,                  ||6gd      j                  d      }|r,t        j2                  ||'t        j                  dt        j                        j                  d            j                  d      }t        j                  d|j                               j                  d      }7t        jB                  |7t        j.                  |(t        j                  dgt        j                        j                  d            j                  d            j                  d      }8t        j,                  ||8gd      j                  d      }|r(|&t        j                  ||	d      j                  d      }tI        |      g}9|r|9jK                  tI        |             |r|9jK                  tI        |             |r|9jK                  tI        |             tM        |9      dk(  r|9d   S tO        |9      S c c}/w )NTr   r   Fr   rW   r  r[  r`   )rb   r@  r  count_element_typer   r!  )r@  r  r2  i)(r   r)   r|   r   r`   r+   r[   r\   r]   r^   r_   r^  r   r*  r0   r   r  r  r  r   r:   r   r   r_  rS  r#  r(   r  r   rv   rx   rK   rS  r}   r  r  r   r   r{   rz   ):ra   r@  return_indexreturn_inversereturn_countsrb   r4  r  	ov_sortedr  r  r  x_flat_pshaper  rh  inverser.  r#  re   r   r  rw  idx_as_xpayloadnan_tagr  uniq	uniq_rowsuniq_nan_taguniq_payload
nan_mask_u	nan_const	axis_nodedim_len_is_zerox_pshapevalues_shapevalues_count	size_node
trunc_size	trunc_idx
pad_amountvalues_shape_after_trunc
tail_shape	pad_shapefill	fill_node	pad_blockri  r  inv_permpvalues_tvalues_t_shapeone_indicesindices_padzero_counts
counts_padr(  s:                                                             r#   rS  rS    s=    	aA I488,33A6G  "''224F|!!x  "txx077:E

&) 	 002((a **a ++-2F''288(DELLQOG''288(DELLQOG&&rxx"(('CDKKANFC,,.F~~#--ff=DDQG$$%%fdhh7>>qA%%qc4884;;A> &)  nn%%a299!<%%a299!< $	
 &)  $++C8??B"//(HfELLQO"**8V<CCAF **#$--qc488<CCAF !&) **#$--qc488<CCAF !&)	  &)   !**1dhh7>>qA$',', !KKN	++a.++a.Q'//OO! ))1#txx8??B ))!TXX6==a@ fQi%%qc4884;;A>  &)   (//OO! ))1#txx8??B ))!TXX6==a@ fQi%%qc4884;;A>  &)  &-- $,,&)  %--bfff=DDQG	!	<&)   $',',	 Q++a.++a.QCf-%%c4884;;A>	&&(MM##''((*a/"OF''288(DELLQOG''288(DELLQOG&&rxx"(('CDKKANF?? #(#(D [[^Fkk!nGkk!nG[[^F((:AA!D''OO!!3%299!<!!!TXX.55a8 fQiqc488,33A6
 &) 	 %%dDHH5<<Q?	%%lI>EEaH
NNa*11!4a*11!4	

 &) 	 c488,33A6
 &)	 	 %%i6==a@a*11!4
 &) 	
 !8'/'8'8(fQi % "(!!1#txx077:!!9+txx8??B!!1#txx077:	
 fQi  !&&" ))1#txx8??B fQi 	 fQi  #*1
D%dF,C,C,EFI **9i@GGJI__fi%8qAHHKF5uV}A!SAAADsV|H!$  1   ))!!$188; fQi  &..xBII!LN!!!1#txx077:!!9+txx8??B!!1#txx077:	
 fQi  !&&" ))1#txx8??B fQi 	 fQi  #*1
D%dH,E,E,GHI **9i@GGJI)'<1ELLQOH''!!(DHH5<<Q? fQi 
 oo!!!TXX.55a8 fQi	 
 #++7++-fQi  #,,""%%qc4884;;A> &) fQi  oow&<1ELLQOG__!!!TXX.55a8 fQi	 
 #++6**,fQi  "++""%%qc4884;;A> &) fQi  __fj%9BII!LF$,""7GU;BB1E"6*+G*734*734*623W*71:>g>e Bs   
AP"APc                     t        | |d      S )Nr   r[  rY  rZ  s     r#   dsplitrZ  5  r\  r%   )NF)NFNr  )gh㈵>g:0yE>F)NNNr8  )NNr  r]  )r   r   r   N)r   r   rW   )rW   r   )rW   )r   rW   )2   TNr   )FF)T)r[  TFNr   )r[  Tr  Nr   )NlinearF)r   NN)r_   N)r  )r   )Nr   N)Nr  r   )r  )r  N)TFFFNNN(  r  numpyr   openvinor   openvino.opset16opset16r)   r   keras.src.backendr   keras.src.backend.commonr   r   &keras.src.backend.common.backend_utilsr   "keras.src.backend.common.variablesr   keras.src.backend.openvino.corer	   r
   r   r   r   r'   r   r   r   r   r   r$   r,   r;   rK   rN   rT   rk   rm   ro   r   r   r   r   r   r   r   r   r   r   r   rX   r   r   r   r   r   r   r   r   r  r
  r  r  r&  r*  r3  rV  r@  rA  r  r  r  r  r  r  rp  r  r]  r  r  r^  r  r  r  rq  r  r  r  r  r
  r  r  r  r  r  r  r  r9  rO  r;  rW  r[  rr  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   rO  rY  rI  rB  r\  r[  rc  rm  rx  r}  r  r   r  r  r=  r  r  r  r  r  rS   rJ  r*   r   rx   r  r  r  rt   rv   r  r<  r  r  r  r  r  r  r  r$  r+  r-  r2  r4  rG  r*  rs  ru  rr  r  r  r  r  r  r  r  r  r  r  r  rZ  r  r  r  r  r^   r  r  r  r  r  r  r  r4  r  r'  r  r  r  r	  r  rQ  r  r   r9  r?  r5  r  r=  rH  rP  rS  rU  rW  r[  rg  ro  r   rs  ru  r  r  r  r  r  r  r  r  r  r  r  rw  r<  r"  r  rJ   r  r  r   r  r  r0  rS  rZ  r   r%   r#   <module>rf     sn      #  $ 2 + D @ 6 6 ; ? > 9 < > 6"?'@DP,D'8?+'\/0??
?K,'$
Q
Q
J4n;<;<;/4d<-@-@/B-RQj.$'N*'Z3@!'H'9T(9V#"L'B	L$	M%*1ZEEB
D"'JN
.(	,$, :;	NH1VU'pC'*'*@@F;'|/7dF'R'6P'NT-&	A:'F	'!1H4'n<	$(7t)X	C	IG11>:)2'j2,3&
*',$=!'D'<'~'01,	@	F IJ'D:
''
'/'d$'NGBF'4C.$D.N  )X?C.$E?L()*X)*XBC 'F'>P 'F'2%Pf)R9'&:'z"B	$	E	$	$'$ F'&
Nx)v "81v%OP''D;
,:1$;5%.P0f>$$(1"	L:'z:;L1^1(	1DD
/1d.$..P"G1 #'$ M>B"1"A$?
8MvG;
DF(@'B AF''T>-:,&G'66'r'"AHF'RSOp 		X?v1r%   