
    &Vf,                         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Z
dd	ZddZd ZddZd 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$dZdS )%    N)config)standardize_dtype)dtypes)cast)convert_to_tensorFc                     |r t           j                            | |          S |1t          j        |          \  }}t          j        |          d         }t           j                            | ||          S Nr   )tfmathsegment_sumuniqueshapeunsorted_segment_sumdatasegment_idsnum_segmentssortedunique_segment_ids_s         ^/var/www/html/software/conda/lib/python3.11/site-packages/keras/src/backend/tensorflow/math.pyr   r   
   m     Mw""4555$&Ik$:$:!8$677:Lw++D+|LLL    c                     |r t           j                            | |          S |1t          j        |          \  }}t          j        |          d         }t           j                            | ||          S r	   )r
   r   segment_maxr   r   unsorted_segment_maxr   s         r   r   r      r   r   Tc                 F    t           j                            | ||          S )N)r   )r
   r   top_k)xkr   s      r   r   r      s    7==Af=---r   c                 D    t           j                            | ||          S N)r
   r   in_top_k)targetspredictionsr    s      r   r#   r#   "   s    7G[!444r   c                 F    t           j                            | ||          S )Naxiskeepdims)r
   r   reduce_logsumexp)r   r(   r)   s      r   	logsumexpr+   &   s    7##AD8#DDDr   reducedc                     |dvrt          d|           |dk    rt          j                            |           S t          j                            | d          S )N>   r,   completez]`mode` argument value not supported. Expected one of {'reduced', 'complete'}. Received: mode=r,   T)full_matrices)
ValueErrorr
   linalgqr)r   modes     r   r2   r2   *   si    ***%"% %
 
 	

 yy||A9<<<...r   c                 J    t           j                            | ||dd          S )NF)frame_length
frame_stepr(   pad_end)r
   signalframe)r   sequence_lengthsequence_strides      r   extract_sequencesr=   6   s.    9??	$"    r   c                    t          | t          t          f          rt          |           dk    rt	          d|            | \  }}t          |          }t          |          }|j        |j        k    rt	          d|j         d|j                   |j        j        r|j        j        st	          d|  d          t          j
                            ||          }|S )N   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=.)
isinstancetuplelistlenr0   r   r   dtypeis_floatingr
   r   complex)r   realimagcomplex_inputs       r   _get_complex_tensor_from_tuplerK   @   s   a%'' 
3q66Q;; 
 
 	
 JD$T""DT""DzTZN&*jN NAEN N
 
 	
 :! 
)? 
      
 
 	
 I%%dD11Mr   c                     t          |           }t          j                            |          }t          j                            |          t          j                            |          fS r"   )rK   r
   r9   fftr   rH   rI   r   rJ   complex_outputs      r   rM   rM   \   sI    2155MY]]=11N7<<''n)E)EEEr   c                     t          |           }t          j                            |          }t          j                            |          t          j                            |          fS r"   )rK   r
   r9   fft2dr   rH   rI   rN   s      r   fft2rR   b   sI    2155MY__]33N7<<''n)E)EEEr   c                     ||g}t           j                            | |          }t           j                            |          t           j                            |          fS )N)
fft_length)r
   r9   rfftr   rH   rI   )r   rT   rO   s      r   rU   rU   h   sM     \
Y^^A*^==N7<<''n)E)EEEr   c                 j    t          |           }||g}t          j                            ||          S r"   )rK   r
   r9   irfft)r   rT   rJ   s      r   rW   rW   o   s2    2155M \
9??=*555r   hannc                 `   t          | j                  dvrt          d| j                   ||k     rt          d| d|           t	          |t
                    r|dvrt          d|           t          |           } |rOd t          t          | j	                            D             }|dz  |dz  f|d	<   t          j        | |d
          } ||z
  dz  }||z
  |z
  }|t	          |t
                    rV|dk    r(t          j                            |d| j                  n>t          j                            |d| j                  nt          || j                  t          j	                  dk    sj	        d	         |k    rt          dj	                   t          j        ||gg          fd}	nd }	t          j                            | ||z   |z   |||	          }
t          j                            |
          t          j                            |
          fS )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=>   rX   hammingz]If a string is passed to `window`, it must be one of `"hann"`, `"hamming"`. Received: window=c                     g | ]}d S ))r   r    ).0r   s     r   
<listcomp>zstft.<locals>.<listcomp>   s    999V999r   r?   r5   reflect)r3   rX   TperiodicrE   rE      PThe shape of `window` must be equal to [sequence_length].Received: window shape=c                     S r"   r^   r7   rE   	win_arrays     r   winzstft.<locals>.win   s	    r   r6   r7   rT   	window_fn)r   rE   	TypeErrorr0   rA   strr   rangerD   r   r
   padr9   hann_windowhamming_windowstftr   rH   rI   )r   r;   r<   rT   windowcenter	pad_widthl_padr_padrj   resultri   s              @r   rs   rs   v   s    !!)???.$%G. .
 
 	
 O##')8' '$' '
 
 	

 &# ,,,D;AD D   	!A 199U3qw<<%8%8999	#q*/:	"F1ii000/)a/E(50Efc"" 
	AI11#d!' 2  		 I44#d!' 5  		 *&@@@Iy1$$	(;(N(N<*3/< <   F9u~&677		 	 	 	 	 	 Y^^	%-5"   F 7<<f!5!555r   c                 `   t          |           }t          j                            |          j        }||t          j        |          d         dz
  z  z   }	||z
  dz  }
||z
  |
z
  }|t          |t                    rL|dk    r#t          j        	                    |d|          n4t          j        
                    |d|          nt          ||          t          j                  dk    sj        d         |k    rt          d	j                   t          j        |
|gg          t          j                            |fd
          }nd }t          j                            |||
z   |z   |||          } |du rdn|dz  }|||z   }n|du r|dz   }n|	}| d||f         S )Nre   r?   rX   Trb   rd   r5   rf   c                     S r"   r^   rh   s     r   <lambda>zistft.<locals>.<lambda>   s    y r   rk   Fr   .)rK   r
   r   rH   rE   r   rA   rn   r9   rq   rr   r   rD   r0   rp   inverse_stft_window_fninverse_stft)r   r;   r<   rT   lengthrt   ru   rJ   rE   expected_output_lenrw   rx   rj   startendri   s                  @r   istftr      s    3155MGLL''-E$
#a'(  /)a/E(50Efc"" 
	?I11#d% 2  		 I44#d% 5  		 *&>>>Iy1$$	(;(N(N<*3/< <   F9u~&677	i..@@@@
 
 
	%-5" 	 	 	A 5AAjAoEfn	4a !S%)^r   c                 @    t           j                            |           S r"   )r
   r   rsqrtr   s    r   r   r      s    7==r   c                 @    t           j                            |           S r"   )r
   r   erfr   s    r   r   r      s    7;;q>>r   c                 @    t           j                            |           S r"   )r
   r   erfinvr   s    r   r   r      s    7>>!r   c                 ~    t          |           } t          |          }t          j                            | |          S r"   )r   r
   r1   solve)abs     r   r   r      s2    !A!A9??1a   r   c                 	   ddl m} t          |           } | j        }|j        }|t          t          |                    }nt          |t                    r|f}t          |          dk    r|d         n|}t          |t                    rdnt          |          }|dk    r|d}n
|dk    r|d}t          | j                  dk    rt          j                    }nt          j        | j        t                     }t#          | |          } |dk    r|dddt!          d          fv s|dk    r9|ddddt!          d          fv r#t$          j                            | |||	          S |dk    r+|d
vr&|t!          d          k    r?t$          j                            t$          j                            |           ||          S |dk    rNt$          j                            t%          j        t%          j        | d          | j                  ||          S t          || j                  }t$          j                            t%          j        t$          j                            |           |          ||          }	t%          j        |	d|z            S |dk    r|dt!          d          ddfv r|d         |d         }}
|
dk     r|
|z   n|
}
|dk     r||z   n|}|t!          d          k    rc|s|
|k    r|
dz  }
t$          j                            t%          j        t$          j                            |           ||          |
|          } n4|dk    rb|s||
k    r|dz  }t$          j                            t%          j        t$          j                            |           |
|          ||          } n || |d          } |dk    rAt$          j                            t$          j                            | d          d          } n@t$          j                            t$          j                            | d          d          } |r6t%          j        | |d                   } t%          j        | |d                   } | S |dk    rt;          d|           |dk    rt;          d|           t;          d|           )Nr   )moveaxisre   	euclideanr?   froint64inf)ordr(   r)   )r   nucz-infr'   rd   g      ?r   r{   r5   )r{   r5   F)
compute_uv)r(   z6Invalid `ord` argument for vector norm. Received: ord=z6Invalid `ord` argument for matrix norm. Received: ord=z$Invalid axis values. Received: axis=)"keras.src.backend.tensorflow.numpyr   r   r   rankrB   ro   rA   intrD   r   rE   r   floatxr   result_typefloatr   r
   r1   normr   
reduce_minabs
reduce_sum	not_equalpowsvdexpand_dimsr0   )r   r   r(   r)   r   x_shapendimnum_axesrE   outrow_axiscol_axiss               r   r   r     s   ;;;;;;!AgG<D|U4[[!!	D#		 w$ii1nn477$DtS))8qqs4yyH1}}	Q3;!!W,,"17E22QA 	A#+q!U5\\!BBBA#+uaE%LL!IIIy~~aSth~GGG 1}}N22%--7%%ATH &    AXX7%%Q**!':::! &    $Cqw777C'$$rw{{1~~s++$ %  C 6#sSy)))	Q35%--R"@@@!!Wd1g(&.ll8d??&.ll8d??%-- 8 3 3A""bgkk!nn8hOOO! #  AA
 BYY 8 3 3A""bgkk!nn8hOOO! #  AA D(++AbyyG&&IMM!M66R '   G&&IMM!M66R '    /N1d1g..N1d1g..1}}JSJJ
 
 	
 
QJSJJ
 
 	
 FFFGGGr   )NF)T)r,   r"   )rX   T)NrX   T)NNF)
tensorflowr
   keras.src.backendr   r   keras.src.backend.commonr   !keras.src.backend.tensorflow.corer   r   r   r   r   r#   r+   r2   r=   rK   rM   rR   rU   rW   rs   r   r   r   r   r   r   r^   r   r   <module>r      s       $ $ $ $ $ $ / / / / / / + + + + + + 2 2 2 2 2 2 ? ? ? ? ? ?M M M MM M M M. . . .5 5 5E E E E	/ 	/ 	/ 	/    8F F FF F FF F F F6 6 6 6 LP>6 >6 >6 >6L 9 9 9 9x      ! ! !^H ^H ^H ^H ^H ^Hr   