
    \ci                          d Z ddlZddlmc mZ ddlmZmZm	Z	m
Z
mZ 	 ddlmZ n# e$ r	 ddlmZ Y nw xY wd Zd ZddZdd	Zd
 Zd Zd Zd ZdddZdddZdddZdS )a0  Partial replacements for numpy polynomial routines, with Array API compatibility.

This module contains both "old-style", np.poly1d, routines from the main numpy
namespace, and "new-style", np.polynomial.polynomial, routines.

To distinguish the two sets, the "new-style" routine names start with `npp_`
    N)
xp_promotexp_default_dtypexp_size	xp_deviceis_numpy)RankWarningc                    |                     |           } |                    | j        d          r?t          |           |                    |           z   |                    |           dz  z   }n| }|                    |          }| |         S )Ncomplex floating   )asarrayisdtypedtypeabsrealimagargsort)arrxpsorteridxss       g/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/scipy/signal/_polyutils.py_sort_cmplxr      s{     **S//C	zz#)/00 SBGGCLL(2773<<?:::fDt9    c                <   | j         d         dk     r|                    g | j                  S t          |dd          }|r ||           S | j         d         }|                    |dz
  |dz
  d| j                  }|                    | dd                    | d         z  |dddf<   t          |j        d	          r|j                            |          S ddl	}|                    |j                            |                    |                              S )
z(numpy.roots, best-effor replacement
    r      r   rootsN   )kr   eigvals)
shaper   r   getattreyefliphasattrlinalgr!   numpy)coefr   	root_funcnanps         r   	polyrootsr.   "   s    z!}qzz"DJz///GT**I  y 	
1A
q1ua!er44AQRR!!!DG+AaaaeH ry)$$ <y  ###zz")++BJJqMM::;;;r   fbc                     d}|                                 }d|v r| D ]}|dk    r n|dz   }| j        d         }d|v r| d d d         D ]}|dk    r n|dz
  }| ||         S )Nr   F        r   Br   )upperr"   )filttrimfirstilasts        r   _trim_zerosr:   <   s    E::<<D
d{{ 	" 	"ABww	:a=D
d{{ddd 	  	 ABwwaxd
r   c                    t          | |d|          \  } }|F|                    | j                  j        t	          | j        d         | j        d                   z  }t          |          rddlm}  || ||          S t          |j
        dd           x}r || ||	          S |j
                            | d
          \  }}}||k    }	t          j        |	|fd d          }|                    |j        d                   |z  }
|j        |
z  |j        z  |z  }|                    |	          }|                    g           }||||fS )NTforce_floatingr   r   r   )lstsq)condr?   rcondF)full_matricesc                     d| z  S )N      ? )xs    r   <lambda>z_lstsq.<locals>.<lambda>d   s
    26 r   r2   )
fill_value)r   finfor   epsmaxr"   r   scipy.linalgr?   r#   r'   svdxpxapply_wherer$   Tcount_nonzeror   )r,   br   rB   s_lstsq
lstsq_funcusvtsing_val_masksigmarG   rank	residualss                 r   _lstsqr]   S   sg   a4B777DAq}!!%AGBK(E(EE|| %111111wq!%((((ry'488	8 %z!Qe,,,, 9==%=881bE	OMA41A1AbQQQqwqz""Q&D5L13".. JJrNN	)T1$$r   c                    t          j        | d|          } | j        dk    rt          d          t	          | d          } | j        d         dk    r|                    dg| j                  } | S )zM Constructor of np.poly1d object from an array of coefficients (r=False)
    r   ndimr   zPolynomial must be 1d only.f)r6   r   r   )rO   
atleast_ndr`   
ValueErrorr:   r"   r   r   )c_or_rr   s     r   _poly1dre   t   su     ^Fr222F{Q6777c***F|A!QCv|44Mr   c                    |                     |           } |                     |          }|                    |          }t          | j        d                   D ]}||z  | |df         z   }|S )z( Old-style polynomial, `np.polyval`
    r   .)r   
zeros_likeranger"   )prG   r   yjs        r   polyvalrl      so     	

1A


1A
aA 171:  EAafIHr   c          
         |                     |           } t          j        | d|          } | j        d         dk    r/|                     d|                    |           j                  S t          |dd           }|ddlm} | j        }|	                    d|          }|
                    | d                   }| D ]&} |||                    || f          d	
          }'|                    |j        d          r|                     | |j                  }|                    |                    |                    |                    |                    |                    |                    |                              k              r*|                     |                    |          d          }|S )Nr   r_   r   rE   r   convolvern   r   full)moder
   T)copy)r   rO   rb   r"   r   r   r#   scipy.signalrn   ones	ones_likestackr   
complex128allsortr   conj)seq_of_zerosr   convolve_funcdtr,   onezeror   s           r   polyr      s   ::l++L>,Q2>>>L!!!zz#RWW\%:%:%@zAAA B
D11M::::::		B
BA
,,|A
'
'C B BM!RXXsTEl33&AAA	zz!'-.. 2

<r}
==66"''"''%..))RWWRWWRWWU^^5L5L-M-MMNN 	2

2771::D
11AHr   c                    t          | |          t          ||          }} t          |dd           }|ddlm}  || |          }|S )N)r   rn   r   ro   )re   r#   rt   rn   )a1a2r   r}   vals        r   polymulr      sf    RB!3!3!3B B
D11M::::::
-B

CJr   rA   c          	         t          |          dz   }|                    |           } |                    |          }t          | |d|          \  } }|dk     rt          d          | j        dk    rt          d          t          |           dk    rt          d          |j        dk     s|j        dk    rt          d	          | j        d         |j        d         k    rt          d
          |-| j        d         |                    | j	                  j
        z  }|                    |                    || j	        t          |                               }| d d d f         |d d d f         z  }|                    |                    ||z  d                    }||z  }t!          ||||          \  }	}
}}
|	j        |z  j        }	||k    rd}t%          j        |t(          d           |	S )Nr   Tr<   r   zexpected deg >= 0zexpected 1D vector for xzexpected non-empty vector for xr   zexpected 1D or 2D array for yz$expected x and y to have same length)r   deviceaxis)rB   r   z!Polyfit may be poorly conditioned)
stacklevel)intr   r   rc   r`   	TypeErrorr   r"   rJ   r   rK   r%   aranger   sqrtsumr]   rQ   warningswarnr   )rG   rj   degr   rB   orderpowerslhsscalec_r[   msgs                r   polyfitr      s   HHqLE


1A


1Aa4B777DAq Qww,---v{{2333qzzQ9:::vzzQVaZZ7888wqzQWQZ>??? }
RXXag..22 WWRYYuAGIaLLYIIJJF
AAAtG*tQQQw
'C GGBFF391F--..E5LC32666MAq$	
uA u}}1c;15555Hr   T)tensorc                    |                     |j        d          r#|                    |t          |                    }t	          j        |d|          }t          | t          t          z            r|	                    |           } |r&|
                    ||j        d| j        z  z             }t          |d         | d|          \  }}t          d|j        d	         dz             D ]}|| d
f         || z  z   }|S )Nintegralr   r_   rp   )r   .T)	broadcastr   r   r   .)r   r   astyper   rO   rb   
isinstancetuplelistr   reshaper"   r`   r   rh   )rG   r   r   r   c0r   r8   s          r   npp_polyvalr      s    	zz!':&& /IIa)"--..qqR(((A!UT\"" JJqMM 3JJq17T!&[022qz1<<<EB1agaj1n%%  r3wZ"Q$Ir   c                X   t          j        |d|          }t          | t          t          z            r|                    |           } |r'|                    ||j        d| j        z  z             }n| j        |j        k    rt          d          |
                    | |z
  d          S )Nr   r_   rp   z,x.ndim must be < r.ndim when tensor == Falser   r   )rO   rb   r   r   r   r   r   r"   r`   rc   prod)rG   rr   r   s       r   npp_polyvalfromrootsr      s    qqR(((A !UT\"" JJqMM IJJq!'D16M122	
16		GHHH771q5q7!!!r   )r/   )NN)__doc__r   scipy._lib.array_api_extra_libarray_api_extrarO   scipy._lib._array_apir   r   r   r   r   numpy.exceptionsr   ImportErrorr(   r   r.   r:   r]   re   rl   r   r   r   r   r   rF   r   r   <module>r      s     ( ( ( ( ( ( ( ( (             ",,,,,,, " " "!!!!!!!!"

 
 
< < <4   .% % % %B	 	 	    :	 	 	 %) ' ' ' ' '\ %)     " .2 " " " " " " "s   & 44