
    2Vh                         d dl mc mZ d dlmZ d dlmZ d dlmZ ddZ	ddZ
ddZd Zdd	Zdd
Zd Zd Zd ZddZddZ	 ddZ	 	 	 ddZd Zd Zd Zd ZddZy)    N)Type)OpenVINOKerasTensor)get_ov_outputc                     t        d      )Nz4`segment_sum` is not supported with openvino backendNotImplementedErrordatasegment_idsnum_segmentssorteds       O/home/dcms/DCMS/lib/python3.12/site-packages/keras/src/backend/openvino/math.pysegment_sumr          
>     c                     t        d      )Nz4`segment_max` is not supported with openvino backendr   r	   s       r   segment_maxr      r   r   c                     t        d      )Nz.`top_k` is not supported with openvino backendr   )xkr   s      r   top_kr          
N
OOr   c                     t        d      )Nz1`in_top_k` is not supported with openvino backendr   )targetspredictionsr   s      r   in_top_kr      s    
; r   c                 <   t        |       } |\t        j                  dgt        j                        j                  d      }t        j                  | |d      j                  d      } d}t        |t              rt        |      }t        j                  |t        j                        j                  d      }t        j                  d| 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 )Nr   F)r   ov_opsetconstantr   i32outputreshape
isinstancetuplelistget_element_type
reduce_max	is_finiteselectsubtractexp
reduce_sumlogaddr   )r   axiskeepdimsflatten_shape
const_zeror(   r)   norm_maxnorm_max_subexp_norm_maxsum_explog_sum_exps               r   	logsumexpr9      s   aA| ))2$9@@CQu5<<Q?$DzT488,33A6D""1a&8&8&:;BB1EJ$$Qh7>>qAJ"":.55a8Iy*jAHHKH$$Q188;L<<-44Q7L!!,h?FFqIG,,w'..q1K,,x5<<Q?K{++r   c                     t        d      )Nz+`qr` is not supported with openvino backendr   )r   modes     r   qrr<   3   s    
K
LLr   c                     t        d      )Nz:`extract_sequences` is not supported with openvino backendr   )r   sequence_lengthsequence_strides      r   extract_sequencesr@   7   s    
D r   c                     t        d      )Nz,`fft` is not supported with openvino backendr   r   s    r   fftrC   =   s    
L
MMr   c                     t        d      )Nz-`fft2` is not supported with openvino backendr   rB   s    r   fft2rE   A       
M
NNr   c                     t        d      )Nz-`rfft` is not supported with openvino backendr   r   
fft_lengths     r   rfftrJ   E   rF   r   c                     t        d      )Nz.`irfft` is not supported with openvino backendr   rH   s     r   irfftrL   I   r   r   c                     t        d      )Nz-`stft` is not supported with openvino backendr   )r   r>   r?   rI   windowcenters         r   stftrP   M   s     M
NNr   c                     t        d      )Nz.`istft` is not supported with openvino backendr   )r   r>   r?   rI   lengthrN   rO   s          r   istftrS   S   s     N
OOr   c                 "   t        |       } t        j                  d| j                               j	                  d      }t        j
                  |       j	                  d      }t        t        j                  ||      j	                  d            S )N   r   )r   r   r    r'   r"   sqrtr   divide)r   	const_onerV   s      r   rsqrtrY   _   sl    aA!!!Q%7%7%9:AA!DI==""1%Dxy$?FFqIJJr   c                 v    t        |       } t        j                  |       j                  d      }t	        |      S )Nr   )r   r   erfr"   r   )r   r[   s     r   r[   r[   f   s/    aA
,,q/
 
 
#Cs##r   c                     t        d      )Nz/`erfinv` is not supported with openvino backendr   rB   s    r   erfinvr]   l   s    
O
PPr   c                     t        d      )Nz.`solve` is not supported with openvino backendr   )abs     r   solvera   p   r   r   c                     t        d      )Nz-`norm` is not supported with openvino backendr   )r   ordr0   r1   s       r   normrd   t   rF   r   )NF)F)reduced)N)hannT)Nrf   T)NNF)openvino.runtime.opset14runtimeopset14r   openvinor   keras.src.backend.openvino.corer   r   r   r   r   r   r9   r<   r@   rC   rE   rJ   rL   rP   rS   rY   r[   r]   ra   rd    r   r   <module>rm      s    + +  ? 9P,*MNOOP
 LPO 	PK$QPOr   