
    ij(                         d dl 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dZ
dd	Zd
 ZddZd Zd Z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 Zy)     N)standardize_dtype)cast)convert_to_tensorc                    |r4|t        d| d| d      t        j                  j                  | |      S |0t        j                  |      \  }}t        j
                  |      d   }t        j                  j                  | ||      S )NsArgument `num_segments` cannot be set when sorted is True when using the tensorflow backend.Received: num_segments=	, sorted=.r   )
ValueErrortfmathsegment_sumuniqueshapeunsorted_segment_sum)datasegment_idsnum_segmentssortedunique_segment_ids_s         v/var/www/html/emotional.easysim.app/public_html/venv/lib/python3.12/site-packages/keras/src/backend/tensorflow/math.pyr   r      s    #**6yK 
 ww""455$&IIk$:!88$67:Lww++D+|LL    c                 (   |r4|t        d| d| d      t        j                  j                  | |      S |:t        j                  t        j
                  |      dz   t        j                        }t        j                  j                  | ||      S Nr   r   r	      )r
   r   r   segment_maxr   
reduce_maxint32unsorted_segment_maxr   r   r   r   s       r   r   r          #**6yK 
 ww""455772==#=#A288LLww++D+|LLr   c                 (   |r4|t        d| d| d      t        j                  j                  | |      S |:t        j                  t        j
                  |      dz   t        j                        }t        j                  j                  | ||      S r   )r
   r   r   segment_minr   r   r   unsorted_segment_minr    s       r   r#   r#   '   r!   r   c                 (   |r4|t        d| d| d      t        j                  j                  | |      S |:t        j                  t        j
                  |      dz   t        j                        }t        j                  j                  | ||      S r   )r
   r   r   segment_prodr   r   r   unsorted_segment_prodr    s       r   r&   r&   6   s    #**6yK 
 ww##D+66772==#=#A288LLww,,T;MMr   c                 F    t         j                  j                  | ||      S )N)r   )r   r   top_k)xkr   s      r   r)   r)   E   s    77==Af=--r   c                 D    t         j                  j                  | ||      S N)r   r   in_top_k)targetspredictionsr+   s      r   r.   r.   I   s    77G[!44r   c                 F    t         j                  j                  | ||      S )N)axiskeepdims)r   r   reduce_logsumexp)r*   r2   r3   s      r   	logsumexpr5   M   s    77##AD8#DDr   c                    t        |       } t        |      }| j                  j                  dk  s|j                  j                  dk  rt        d      | j                  d   |j                  d   k7  rt        d      t	        j
                  | d      t	        j
                  |d      z
  }t	        j                  t	        j                  t	        j                  |      d            S )N   z"`cdist` inputs must have rank >= 2z.Last dimension of inputs to `cdist` must match)r2   )	r   r   rankr
   r   expand_dimssqrt
reduce_sumsquare)r*   ydiffs      r   cdistrB   Q   s    !A!Aww||a177<<!+=>>wwr{aggbk!IJJ>>!R 2>>!R#88D772==4r:;;r   c                 J    t         j                  j                  | ||dd      S )Nr8   F)frame_length
frame_stepr2   pad_end)r   signalframe)r*   sequence_lengthsequence_strides      r   extract_sequencesrK   \   s+    99??	$"   r   c                    t        | t        t        f      rt        |       dk7  rt	        d|        | \  }}t        |      }t        |      }|j                  |j                  k7  r%t	        d|j                   d|j                         |j                  j                  r|j                  j                  st	        d|  d      t        j                  j                  ||      }|S )Nr7   zLInput `x` should be a tuple of two tensors - real and imaginary.Received: x=zInput `x` should be a tuple of two tensors - real and imaginary.Both the real and imaginary parts should have the same shape. Received: x[0].shape = z, x[1].shape = zBAt least one tensor in input `x` is not of type float.Received: x=r	   )
isinstancetuplelistlenr
   r   r   dtypeis_floatingr   dtypescomplex)r*   realimagcomplex_inputs       r   _get_complex_tensor_from_tuplerX   f   s    a%'3q6Q;#
 	
 JD$T"DT"DzzTZZ&&*jj\N
 	
 ::!!)?)?#Q 
 	
 II%%dD1Mr   c                     t        |       }t        j                  j                  |      }t        j                  j                  |      t        j                  j                  |      fS r-   )rX   r   rG   fftr   rU   rV   r*   rW   complex_outputs      r   rZ   rZ      sC    215MYY]]=1N77<<'n)EEEr   c                     t        |       }t        j                  j                  |      }t        j                  j                  |      t        j                  j                  |      fS r-   )rX   r   rG   fft2dr   rU   rV   r[   s      r   fft2r_      sC    215MYY__]3N77<<'n)EEEr   c                    | \  }}t        t        j                  |      d   |j                        }t        t        j                  |      d   |j                        }|| }}t	        ||f      \  }}|||z  z  | ||z  z  fS )Nr9   r8   )r   r   r   rQ   r_   )	r*   rU   rV   hw	real_conj	imag_conjfft_realfft_imags	            r   ifft2rg      s    JD$RXXd^B,ARXXd^B,A$yIy)45Hhq1uyAE222r   c                     ||g}t         j                  j                  | |      }t         j                  j	                  |      t         j                  j                  |      fS )N)
fft_length)r   rG   rfftr   rU   rV   )r*   ri   r\   s      r   rj   rj      sJ     \
YY^^A*^=N77<<'n)EEEr   c                 b    t        |       }||g}t        j                  j                  ||      S r-   )rX   r   rG   irfft)r*   ri   rW   s      r   rl   rl      s.    215M \
99??=*55r   c                 \   t        | j                        dvrt        d| j                         ||k  rt        d| d|       t	        |t
              r|dvrt        d|       t        |       } |rPt        t        | j                              D cg c]  }d }}|dz  |dz  f|d	<   t        j                  | |d
      } ||z
  dz  }||z
  |z
  }	|t	        |t
              r_|dk(  r-t        j                  j                  |d| j                        nDt        j                  j                  |d| j                        nt        || j                        t        j                        dk7  sj                  d	   |k7  rt        dj                         t        j                  ||	gg      fd}
nd }
t        j                  j                  | ||z   |	z   |||
      }t        j                   j#                  |      t        j                   j%                  |      fS c c}w )N>   float32float64zJInvalid input type. Expected `float32` or `float64`. Received: input type=zT`fft_length` must equal or larger than `sequence_length`. Received: sequence_length=z, fft_length=>   hannhammingz]If a string is passed to `window`, it must be one of `"hann"`, `"hamming"`. Received: window=)r   r   r7   r8   reflect)moderp   TperiodicrQ   rQ   r   PThe shape of `window` must be equal to [sequence_length].Received: window shape=c                     S r-    rE   rQ   	win_arrays     r   winzstft.<locals>.win   s	    r   rD   rE   ri   	window_fn)r   rQ   	TypeErrorr
   rM   strr   rangerP   r   r   padrG   hann_windowhamming_windowstftr   rU   rV   )r*   rI   rJ   ri   windowcenterr   	pad_widthl_padr_padr|   resultr{   s               @r   r   r      sG    !)??$$%GG9.
 	
 O#))8(9 :$'
 	

 &#,,;;A(D  	!A%*3qww<%89V9	9#q*/:	"FF1ii0/)a/E(50Efc"II11#d!'' 2 	 II44#d!'' 5 	 *&@Iy1$	(;(N**3//):<  FF9u~&67		 YY^^	%-5"  F 77<<f!555O :s   	H)c                 J   t        |       }t        j                  j                  |      j                  }||t        j
                  |      d   dz
  z  z   }	||z
  dz  }
||z
  |
z
  }|t        |t              rK|dk(  r#t        j                  j                  |d|      n0t        j                  j                  |d|      nt        ||      t        j
                        dk7  sj
                  d   |k7  rt        d	j
                         t        j                  |
|gg      t        j                  j                  |fd
      }nd }t        j                  j!                  |||
z   |z   |||      } |du rdn|dz  }|||z   }n|du r|dz   }n|	}| d||f   S )Nr9   r   r7   rp   Trt   rv   r8   rw   c                     S r-   ry   rz   s     r   <lambda>zistft.<locals>.<lambda>  s    y r   r}   Fr   .)rX   r   r   rU   rQ   r   rM   r   rG   r   r   r   rP   r
   r   inverse_stft_window_fninverse_stft)r*   rI   rJ   ri   lengthr   r   rW   rQ   expected_output_lenr   r   r|   startendr{   s                  @r   istftr      s    315MGGLL'--E$
#a'(  /)a/E(50Efc"II11#d% 2 	 II44#d% 5 	 *&>Iy1$	(;(N**3//):<  FF9u~&67	ii..@
 
		%-5" 	 	A 5AjAoEfn	4a !S%)^r   c                 V    t        |       } t        j                  j                  |       S r-   )r   r   r   rsqrtr*   s    r   r   r   "  s    !A77==r   c                 @    t         j                  j                  |       S r-   )r   r   erfr   s    r   r   r   '  s    77;;q>r   c                 V    t        |       } t        j                  j                  |       S r-   )r   r   r   erfcr   s    r   r   r   +  s    !A77<<?r   c                 2   t        |       } t        | j                        }|dv rUt        j                  t        j
                  j                  t        j                  | t        j                              |      S t        j
                  j                  |       S )N)bfloat16float16)r   r   rQ   r   r   r   erfinvrn   )r*   rQ   s     r   r   r   0  sk    !Aagg&E''wwGGNN2771bjj12
 	

 77>>!r   c                 V    t        |       } t        j                  j                  |       S r-   )r   r   linalglogdetr   s    r   r   r   =  s!    !A99Ar   )NF)Tr-   )rp   T)Nrp   T)
tensorflowr   keras.src.backendr   !keras.src.backend.tensorflow.corer   r   r   r   r#   r&   r)   r.   r5   rB   rK   rX   rZ   r_   rg   rj   rl   r   r   r   r   r   r   r   ry   r   r   <module>r      s     / 2 ?M MMN.5E<8FF3F6 LP>6L 9x


r   