
    Ug                        d dl mZmZmZmZ ddlmZ d dlZd Z	d Z
d Z	 	 ddd
dZddd
dZ	 	 ddd
dZ	 	 ddd
dZ	 	 ddd
dZ	 	 ddd
dZ	 	 d dd
dZ	 	 d dd
dZ	 	 d!dd
dZ	 	 d!dd
dZ	 	 d dd
dZ	 	 d!dd
dZ	 	 d dd
dZ	 	 d!dd
dZd Z	 	 d dd
dZ	 	 d!dd
dZ	 	 d dd
dZ	 	 d!dd
dZdS )"    )array_namespaceis_numpyxp_unsupported_param_msg
is_complex   )
_pocketfftNc                     | t          t          d                    |t          t          d                    |d}|S )Nworkersplanbackward)
ValueErrorr   )r
   r   norms      W/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/fft/_basic_backend.py_validate_fft_argsr      sK    1)<<===1&99:::|K    c	           	         t          |          }	t          |	          r&t          j        |          } ||||||||          S t	          |||          }t          |	d          r$t          |	j        |           }
 |
||||          S t          j        |          } |||||          }|	                    |          S )Nnaxisr   overwrite_xr
   r   fft)r   r   r   r   r   npasarrayr   hasattrgetattrr   )func_strpocketfft_funcxr   r   r   r   r
   r   xpxp_funcys               r   _execute_1Dr#          			B|| SJqMM~a14d*5wTS S S 	S gtT22Dr5 5"&(++wqADt4444

1AqADt444A::a==r   c	           	         t          |          }	t          |	          r&t          j        |          } ||||||||          S t	          |||          }t          |	d          r$t          |	j        |           }
 |
||||          S t          j        |          } |||||          }|	                    |          S )Nsaxesr   r   r
   r   r   )r'   r(   r   r   )r   r   r   r'   r(   r   r   r
   r   r    r!   r"   s               r   _execute_nDr)   *   r$   r   Fr   c                F    t          dt          j        | ||||||	  	        S )Nr   r   )r#   r   r   r   r   r   r   r   r
   r   s          r   r   r   <   s2    ujna14d#.dL L L Lr   c                F    t          dt          j        | ||||||	  	        S )Nifftr   )r#   r   r/   r-   s          r   r/   r/   B   2    vzQT#.dL L L Lr   c                F    t          dt          j        | ||||||	  	        S )Nrfftr   )r#   r   r2   r-   s          r   r2   r2   H   r0   r   c                F    t          dt          j        | ||||||	  	        S )Nirfftr   )r#   r   r4   r-   s          r   r4   r4   N   3    w
 0!qt$#.dL L L Lr   c                F    t          dt          j        | ||||||	  	        S )Nhfftr   )r#   r   r7   r-   s          r   r7   r7   T   r0   r   c                F    t          dt          j        | ||||||	  	        S )Nihfftr   )r#   r   r9   r-   s          r   r9   r9   Z   r5   r   c                F    t          dt          j        | ||||||	  	        S )Nfftnr&   )r)   r   r;   r   r'   r(   r   r   r
   r   s          r   r;   r;   `   r0   r   c                F    t          dt          j        | ||||||	  	        S )Nifftnr&   )r)   r   r>   r<   s          r   r>   r>   g   r5   r   r*   c          	      .    t          | ||||||          S Nr+   )r;   r<   s          r   fft2rC   m   s    1dD+wTBBBBr   c          	      .    t          | ||||||          S rB   )r>   r<   s          r   ifft2rE   r       AtT;dCCCCr   c                F    t          dt          j        | ||||||	  	        S )Nrfftnr&   )r)   r   rH   r<   s          r   rH   rH   w   r5   r   c          	      .    t          | ||||||          S rB   )rH   r<   s          r   rfft2rJ   }   rF   r   c                F    t          dt          j        | ||||||	  	        S )Nirfftnr&   )r)   r   rL   r<   s          r   rL   rL      s3    x!2AD#.dL L L Lr   c          	      .    t          | ||||||          S rB   )rL   r<   s          r   irfft2rN          !QdKtDDDDr   c                 V    | dv rd} n!| dk    rd} n| dk    rt          d| z            | S )N)Nr   forwardr   orthozCInvalid norm value %s; should be "backward", "ortho", or "forward".)r   )r   s    r   _swap_directionrS      sT    !!!				 2489 : : 	:Kr   c          	      ,   t          |           }t          |          r/t          j        |           } t	          j        | ||||||          S t          | |          r|                    |           } t          | ||t          |          |||          S rB   )
r   r   r   r   r   hfftnr   conjrL   rS   r   r'   r(   r   r   r
   r   r    s           r   rU   rU      s    			B|| SJqMM1dD+wTRRRR!R GGAJJ!Qod33wT3 3 3 3r   c          	      .    t          | ||||||          S rB   )rU   r<   s          r   hfft2rY      rF   r   c                   t          |           }t          |          r/t          j        |           } t	          j        | ||||||          S |                    t          | ||t          |          |||                    S rB   )	r   r   r   r   r   ihfftnrV   rH   rS   rW   s           r   r[   r[      s    			B|| TJqMM AtT;dSSSS775At_T%:%:$gD: : : ; ; ;r   c          	      .    t          | ||||||          S rB   )r[   r<   s          r   ihfft2r]      rO   r   )Nr*   NFN)NNNFN)Nr?   NFN)scipy._lib._array_apir   r   r   r    r   numpyr   r   r#   r)   r   r/   r2   r4   r7   r9   r;   r>   rC   rE   rH   rJ   rL   rN   rS   rU   rY   r[   r]    r   r   <module>rb      s                            $  $ "&#'L15L L L L LLL L L L L #'$(L26L L L L L $(%)L37L L L L L #'$(L26L L L L L $(%)L37L L L L L %)$(L26L L L L L &*%)L37L L L L L )-$(C26C C C C C
 *.%)D37D D D D D
 &*%)L37L L L L L *.$(D26D D D D D
 '+&*L48L L L L L +/&*E48E E E E E
   &*%)	337	3 	3 	3 	3 	3 *.%)D37D D D D D
 '+&*;48; ; ; ; ; +/&*E48E E E E E E Er   