Ë
    çÿæiiG  ã                   ó²   — d Z ddlZddlmZmZmZmZmZmZm	Z	m
Z
mZ ddlmZ ddlmZmZ ddlmc mZ ddlmZmZmZ g d¢Zd	„ Zdd
„Zdd„Zd„ Zdd„Zdd„Zy)zr
ltisys -- a collection of functions to convert linear time invariant systems
from one representation to another.
é    N)	Úr_ÚeyeÚ
atleast_2dÚpolyÚdotÚasarrayÚzerosÚarrayÚouter)Úlinalg)Úarray_namespaceÚxp_sizeé   )Útf2zpkÚzpk2tfÚ	normalize)Útf2ssÚabcd_normalizeÚss2tfÚzpk2ssÚss2zpkÚcont2discretec                 óD  — t        | |«      \  } }t        | j                  «      }|dk(  rt        | g| j                  «      } | j                  d   }t        |«      }||kD  rd}t        |«      ‚|dk(  s|dk(  r>t        g t        «      t        g t        «      t        g t        «      t        g t        «      fS t        j                  t        j                  | j                  d   ||z
  f| j                  ¬«      | f«      } | j                  d   dkD  rt        | dd…df   «      }nt        dggt        «      }|dk(  rZ|j                  | j                  «      }t        d«      t        d|j                  d   f«      t        |j                  d   df«      |fS t        |dd g«       }t        |t        |dz
  |dz
  «      f   }t        |dz
  d«      }	| dd…dd…f   t        | dd…df   |dd «      z
  }
|j                  |
j                  d   |	j                  d   f«      }||	|
|fS )	a½  Transfer function to state-space representation.

    Parameters
    ----------
    num, den : array_like
        Sequences representing the coefficients of the numerator and
        denominator polynomials, in order of descending degree. The
        denominator needs to be at least as long as the numerator.

    Returns
    -------
    A, B, C, D : ndarray
        State space representation of the system, in controller canonical
        form.

    Examples
    --------
    Convert the transfer function:

    .. math:: H(s) = \frac{s^2 + 3s + 3}{s^2 + 2s + 1}

    >>> num = [1, 3, 3]
    >>> den = [1, 2, 1]

    to the state-space representation:

    .. math::

        \dot{\textbf{x}}(t) =
        \begin{bmatrix} -2 & -1 \\ 1 & 0 \end{bmatrix} \textbf{x}(t) +
        \begin{bmatrix} 1 \\ 0 \end{bmatrix} \textbf{u}(t) \\

        \textbf{y}(t) = \begin{bmatrix} 1 & 2 \end{bmatrix} \textbf{x}(t) +
        \begin{bmatrix} 1 \end{bmatrix} \textbf{u}(t)

    >>> from scipy.signal import tf2ss
    >>> A, B, C, D = tf2ss(num, den)
    >>> A
    array([[-2., -1.],
           [ 1.,  0.]])
    >>> B
    array([[ 1.],
           [ 0.]])
    >>> C
    array([[ 1.,  2.]])
    >>> D
    array([[ 1.]])
    r   z7Improper transfer function. `num` is longer than `den`.r   )ÚdtypeéÿÿÿÿN)r   r   é   )r   ÚlenÚshaper   r   Ú
ValueErrorr
   ÚfloatÚnpÚhstackr	   r   Úreshaper   r   r   )ÚnumÚdenÚnnÚMÚKÚmsgÚDÚfrowÚAÚBÚCs              úq/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/scipy/signal/_lti_conversion.pyr   r      sþ  € ôp ˜˜cÓ"�H€CˆÜ	ˆS�Y‰Y‹€BØ	ˆQ‚wÜ�s�e˜SŸY™YÓ'ˆØ�	‰	�!‰€AÜˆC‹€AØˆ1‚uØGˆÜ˜‹oÐØˆA‚v��a’Ü�bœ%Ó ¤%¨¬EÓ"2´E¸"¼eÓ4DÜ�bœ%Ó ð"ð 	"ô �)‰)”R—X‘X˜sŸy™y¨™|¨Q°©UÐ3¸3¿9¹9ÔEÀsÐKÓ
L€Cà
‡y�y��}�qÒÜ�sš1˜a˜4‘yÓ!‰ô �A�3�%œÓˆàˆA‚vØ�I‰I�c—i‘iÓ ˆä�f“œu a¨¯©°© _Ó5Ü�q—w‘w˜q‘z 1�oÓ&¨ð+ð 	+ô �3�q�r�7�)ÓÐ€DÜ
ˆ4”�Q˜‘U˜A ™EÓ"Ð"Ñ#€AÜˆA�‰E�1‹€AØŠAˆq‰rˆE‰
”U˜3šq !˜t™9 c¨!¨" gÓ.Ñ.€AØ	�	‰	�1—7‘7˜1‘:˜qŸw™w q™zÐ*Ó+€Aàˆa��Aˆ:Ðó    c           	      óD  ‡— | €|€|€t        d«      ‚|€|€t        d«      ‚|€|€t        d«      ‚t        | |||«      Šˆfd„| |||fD «       \  } }}}| j                  d   xs$ |j                  d   xs |j                  d   xs d}|j                  d   xs |j                  d   xs d}|j                  d   xs |j                  d   xs d}t        | «      dk(  r‰j	                  ||f«      n| } t        |«      dk(  r‰j	                  ||f«      n|}t        |«      dk(  r‰j	                  ||f«      n|}t        |«      dk(  r‰j	                  ||f«      n|}| j                  ||fk7  rt        d| j                  › d|› d	|› d
�«      ‚|j                  ||fk7  rt        d|j                  › d|› d	|› d
�«      ‚|j                  ||fk7  rt        d|j                  › d|› d	|› d
�«      ‚|j                  ||fk7  rt        d|j                  › d|› d	|› d
�«      ‚| |||fS )a×	  Check state-space matrices compatibility and ensure they are 2d arrays.

    Converts input matrices into two-dimensional arrays as needed. Then the dimensions
    n, q, p are determined by investigating the non-zero entries of the array shapes.
    If a parameter is ``None``, or has shape (0, 0), it is set to a
    zero-array of compatible shape. Finally, it is verified that all parameter shapes
    are compatible to each other. If that fails, a ``ValueError`` is raised. Note that
    the dimensions n, q, p are allowed to be zero.

    Parameters
    ----------
    A: array_like, optional
        Two-dimensional array of shape (n, n).
    B: array_like, optional
        Two-dimensional array of shape (n, p).
    C: array_like, optional
        Two-dimensional array of shape (q, n).
    D: array_like, optional
        Two-dimensional array of shape (q, p).

    Returns
    -------
    A, B, C, D : array
        State-space matrices as two-dimensional arrays.

    Notes
    -----
    The :ref:`tutorial_signal_state_space_representation` section of the
    :ref:`user_guide` presents the corresponding definitions of continuous-time and
    disrcete time state space systems.

    Raises
    ------
    ValueError
        If the dimensions n, q, or p could not be determined or if the shapes are
        incompatible with each other.

    See Also
    --------
    StateSpace: Linear Time Invariant system in state-space form.
    dlti: Discrete-time linear time invariant system base class.
    tf2ss: Transfer function to state-space representation.
    ss2tf: State-space to transfer function.
    ss2zpk: State-space representation to zero-pole-gain representation.
    cont2discrete: Transform a continuous to a discrete state-space system.

    Examples
    --------
    The following example demonstrates that the passed lists are converted into
    two-dimensional arrays:

    >>> from scipy.signal import abcd_normalize
    >>> AA, BB, CC, DD = abcd_normalize(A=[[1, 2], [3, 4]], B=[[-1], [5]],
    ...                                 C=[[4, 5]], D=2.5)
    >>> AA.shape, BB.shape, CC.shape, DD.shape
    ((2, 2), (2, 1), (1, 2), (1, 1))

    In the following, the missing parameter C is assumed to be an array of zeros
    with shape (1, 2):

    >>> from scipy.signal import abcd_normalize
    >>> AA, BB, CC, DD = abcd_normalize(A=[[1, 2], [3, 4]], B=[[-1], [5]], D=2.5)
    >>> AA.shape, BB.shape, CC.shape, DD.shape
    ((2, 2), (2, 1), (1, 2), (1, 1))
    >>> CC
    array([[0., 0.]])
    z9Dimension n is undefined for parameters A = B = C = None!z5Dimension p is undefined for parameters B = D = None!z5Dimension q is undefined for parameters C = D = None!c              3   ó�   •K  — | ]=  }|�&t        j                  ‰j                  |«      d¬«      n‰j                  d«      –— Œ? y ­w)Nr   )Úndim)r   r   )ÚxpxÚ
atleast_ndr   r	   )Ú.0ÚM_Úxps     €r/   Ú	<genexpr>z!abcd_normalize.<locals>.<genexpr>Á   sA   øè ø€ ð ;Ù-9 rð =?¸N”#—.‘. §¡¨B£°aÕ8Ø—(‘(˜6Ó"ó#Ù-9ùs   ƒAAr   r   zParameter A has shape z but should be (z, z)!zParameter B has shape zParameter C has shape zParameter D has shape )r   r   r   r   r	   )r,   r-   r.   r*   ÚnÚpÚqr8   s          @r/   r   r   u   sJ  ø€ ðH 	€y�Q�Y 1 9ÜÐTÓUÐUØ€y�Q�YÜÐPÓQÐQØ€y�Q�YÜÐPÓQÐQä	˜˜A˜q !Ó	$€Bó;Ø./°°A°q©\ó;�J€A€qˆ!ˆQð 	
�‰�‰
Ò3�a—g‘g˜a‘jÒ3 A§G¡G¨A¡JÒ3°!€AØ	�‰�‰
Ò%�a—g‘g˜a‘jÒ% A€AØ	�‰�‰
Ò%�a—g‘g˜a‘jÒ% A€Aä# A›J¨!šOˆ�‰�!�Q�Ô°€AÜ# A›J¨!šOˆ�‰�!�Q�Ô°€AÜ# A›J¨!šOˆ�‰�!�Q�Ô°€AÜ# A›J¨!šOˆ�‰�!�Q�Ô°€Aà‡w�w�1�a�&ÒÜÐ1°!·'±'°Ð:JÈ1È#ÈRÐPQÈsÐRTÐUÓVÐVØ‡w�w�1�a�&ÒÜÐ1°!·'±'°Ð:JÈ1È#ÈRÐPQÈsÐRTÐUÓVÐVØ‡w�w�1�a�&ÒÜÐ1°!·'±'°Ð:JÈ1È#ÈRÐPQÈsÐRTÐUÓVÐVØ‡w�w�1�a�&ÒÜÐ1°!·'±'°Ð:JÈ1È#ÈRÐPQÈsÐRTÐUÓVÐVàˆa��Aˆ:Ðr0   c                 óÐ  — t        | |||«      \  } }}}|j                  \  }}||k\  rt        d«      ‚|dd…||dz   …f   }|dd…||dz   …f   }	 t        | «      }|j                  dk(  rH|j                  dk(  r9t        j                  |«      }|j                  dk(  r| j                  dk(  rg }||fS | j                  d   }	| dd…df   |dd…df   z   |ddd…f   z   |z   dz   }
t        j                  ||	dz   f|
j                  «      }t        |«      D ];  }t        ||dd…f   «      }t        | t        ||«      z
  «      ||   dz
  |z  z   ||<   Œ= ||fS # t        $ r d}Y �Œ	w xY w)a  State-space to transfer function.

    A, B, C, D defines a linear state-space system with `p` inputs,
    `q` outputs, and `n` state variables.

    Parameters
    ----------
    A : array_like
        State (or system) matrix of shape ``(n, n)``
    B : array_like
        Input matrix of shape ``(n, p)``
    C : array_like
        Output matrix of shape ``(q, n)``
    D : array_like
        Feedthrough (or feedforward) matrix of shape ``(q, p)``
    input : int, optional
        For multiple-input systems, the index of the input to use.

    Returns
    -------
    num : 2-D ndarray
        Numerator(s) of the resulting transfer function(s). `num` has one row
        for each of the system's outputs. Each row is a sequence representation
        of the numerator polynomial.
    den : 1-D ndarray
        Denominator of the resulting transfer function(s). `den` is a sequence
        representation of the denominator polynomial.

    Examples
    --------
    Convert the state-space representation:

    .. math::

        \dot{\textbf{x}}(t) =
        \begin{bmatrix} -2 & -1 \\ 1 & 0 \end{bmatrix} \textbf{x}(t) +
        \begin{bmatrix} 1 \\ 0 \end{bmatrix} \textbf{u}(t) \\

        \textbf{y}(t) = \begin{bmatrix} 1 & 2 \end{bmatrix} \textbf{x}(t) +
        \begin{bmatrix} 1 \end{bmatrix} \textbf{u}(t)

    >>> A = [[-2, -1], [1, 0]]
    >>> B = [[1], [0]]  # 2-D column vector
    >>> C = [[1, 2]]    # 2-D row vector
    >>> D = 1

    to the transfer function:

    .. math:: H(s) = \frac{s^2 + 3s + 3}{s^2 + 2s + 1}

    >>> from scipy.signal import ss2tf
    >>> ss2tf(A, B, C, D)
    (array([[1., 3., 3.]]), array([ 1.,  2.,  1.]))
    z)System does not have the input specified.Nr   r   ç        )r   r   r   r   Úsizer!   ÚravelÚemptyr   Úranger   r   )r,   r-   r.   r*   ÚinputÚnoutÚninr%   r$   Ú
num_statesÚ	type_testÚkÚCks                r/   r   r   Ù   sˆ  € ôt    1 a¨Ó+�J€A€qˆ!ˆQà—‘�I€Dˆ#Ø�‚|ÜÐDÓEÐEð 	
Š!ˆU�5˜1‘9ˆ_Ð
Ñ€AØ	Š!ˆU�5˜1‘9ˆ_Ð
Ñ€AðÜ�1‹gˆð 	
�‰�!Š˜!Ÿ&™& Aš+Ü�h‰h�q‹kˆØ�F‰F�aŠK˜aŸf™f¨škØˆCØ�Cˆxˆà—‘˜‘€JØ’!�Q�$‘˜!šA˜q˜D™'Ñ! A aª d¡GÑ+¨aÑ/°#Ñ5€IÜ
�(‰(�D˜* q™.Ð)¨9¯?©?Ó
;€CÜ�4Ž[ˆÜ˜˜!šQ˜$™Ó ˆÜ�aœ#˜a ›*‘nÓ%¨¨1©°©°SÑ(8Ñ8ˆˆAŠð ð �ˆ8€Oøô! ò Ø‹ðús   ÁE ÅE%Å$E%c                 ó(   — t        t        | ||«      Ž S )a:  Zero-pole-gain representation to state-space representation

    Parameters
    ----------
    z, p : sequence
        Zeros and poles.
    k : float
        System gain.

    Returns
    -------
    A, B, C, D : ndarray
        State space representation of the system, in controller canonical
        form.

    )r   r   )Úzr;   rH   s      r/   r   r   2  s   € ô" ”&˜˜A˜q“/Ð"Ð"r0   c           	      ó.   — t        t        | ||||¬«      Ž S )aª  State-space representation to zero-pole-gain representation.

    A, B, C, D defines a linear state-space system with `p` inputs,
    `q` outputs, and `n` state variables.

    Parameters
    ----------
    A : array_like
        State (or system) matrix of shape ``(n, n)``
    B : array_like
        Input matrix of shape ``(n, p)``
    C : array_like
        Output matrix of shape ``(q, n)``
    D : array_like
        Feedthrough (or feedforward) matrix of shape ``(q, p)``
    input : int, optional
        For multiple-input systems, the index of the input to use.

    Returns
    -------
    z, p : sequence
        Zeros and poles.
    k : float
        System gain.

    )rC   )r   r   )r,   r-   r.   r*   rC   s        r/   r   r   F  s   € ô6 ”5˜˜A˜q !¨5Ô1Ð2Ð2r0   c                 óF	  — t        | d«      r)t        | j                  «      r| j                  |||¬«      S t        | «      dk(  r=t	        t        | d   | d   «      |||¬«      }t        |d   |d   |d   |d   «      |fz   S t        | «      dk(  rAt	        t        | d   | d   | d   «      |||¬«      }t        |d   |d   |d   |d   «      |fz   S t        | «      dk(  r| \  }}}}nt        d	«      ‚|d
k(  r"|€t        d«      ‚|dk  s|dkD  rt        d«      ‚|d
k(  ræt        j                  |j                  d   «      ||z  |z  z
  }	t        j                  |	t        j                  |j                  d   «      d|z
  |z  |z  z   «      }
t        j                  |	||z  «      }t        j                  |	j                  «       |j                  «       «      }|j                  «       }||t        j                   ||«      z  z   }�n™|dk(  s|dk(  rt	        | |d
d¬«      S |dk(  s|dk(  rt	        | |d
d¬«      S |dk(  rt	        | |d
d¬«      S |dk(  �r	t        j"                  ||f«      }t        j"                  t        j$                  |j                  d   |j                  d   f«      t        j$                  |j                  d   |j                  d   f«      f«      }t        j&                  ||f«      }t        j(                  ||z  «      }|d|j                  d   …dd…f   }|dd…d|j                  d   …f   }
|dd…|j                  d   d…f   }|}|}�nD|dk(  rß|j                  d   }|j                  d   }t        j*                  t        j,                  ||g«      |z  t        j                  |«      «      }t%        ||d|z  z   f«      }t        j,                  |g|gg«      }t        j(                  |«      }|d|…d|…f   }|d|…|||z   …f   }|d|…||z   d…f   }|}
||z
  ||z  z   }|}|||z  z   }n`|dk(  rLt        j.                  |d«      st        d«      ‚t        j(                  ||z  «      }
|
|z  |z  }|}||z  |z  }nt        d|› d�«      ‚|
||||fS )a\  
    Transform a continuous to a discrete state-space system.

    Parameters
    ----------
    system : a tuple describing the system or an instance of `lti`
        The following gives the number of elements in the tuple and
        the interpretation:

            * 1: (instance of `lti`)
            * 2: (num, den)
            * 3: (zeros, poles, gain)
            * 4: (A, B, C, D)

    dt : float
        The discretization time step.
    method : str, optional
        Which method to use:

            * gbt: generalized bilinear transformation
            * bilinear: Tustin's approximation ("gbt" with alpha=0.5)
            * euler: Euler (or forward differencing) method ("gbt" with alpha=0)
            * backward_diff: Backwards differencing ("gbt" with alpha=1.0)
            * zoh: zero-order hold (default)
            * foh: first-order hold (*versionadded: 1.3.0*)
            * impulse: equivalent impulse response (*versionadded: 1.3.0*)

    alpha : float within [0, 1], optional
        The generalized bilinear transformation weighting parameter, which
        should only be specified with method="gbt", and is ignored otherwise

    Returns
    -------
    sysd : tuple containing the discrete system
        Based on the input type, the output will be of the form

        * (num, den, dt)   for transfer function input
        * (zeros, poles, gain, dt)   for zeros-poles-gain input
        * (A, B, C, D, dt) for state-space system input

    Notes
    -----
    By default, the routine uses a Zero-Order Hold (zoh) method to perform
    the transformation. Alternatively, a generalized bilinear transformation
    may be used, which includes the common Tustin's bilinear approximation,
    an Euler's method technique, or a backwards differencing technique.

    The Zero-Order Hold (zoh) method is based on [1]_, the generalized bilinear
    approximation is based on [2]_ and [3]_, the First-Order Hold (foh) method
    is based on [4]_.

    References
    ----------
    .. [1] https://en.wikipedia.org/wiki/Discretization#Discretization_of_linear_state_space_models

    .. [2] http://techteach.no/publications/discretetime_signals_systems/discrete.pdf

    .. [3] G. Zhang, X. Chen, and T. Chen, Digital redesign via the generalized
        bilinear transformation, Int. J. Control, vol. 82, no. 4, pp. 741-754,
        2009.
        (https://www.mypolyuweb.hk/~magzhang/Research/ZCC09_IJC.pdf)

    .. [4] G. F. Franklin, J. D. Powell, and M. L. Workman, Digital control
        of dynamic systems, 3rd ed. Menlo Park, Calif: Addison-Wesley,
        pp. 204-206, 1998.

    Examples
    --------
    We can transform a continuous state-space system to a discrete one:

    >>> import numpy as np
    >>> import matplotlib.pyplot as plt
    >>> from scipy.signal import cont2discrete, lti, dlti, dstep

    Define a continuous state-space system.

    >>> A = np.array([[0, 1],[-10., -3]])
    >>> B = np.array([[0],[10.]])
    >>> C = np.array([[1., 0]])
    >>> D = np.array([[0.]])
    >>> l_system = lti(A, B, C, D)
    >>> t, x = l_system.step(T=np.linspace(0, 5, 100))
    >>> fig, ax = plt.subplots()
    >>> ax.plot(t, x, label='Continuous', linewidth=3)

    Transform it to a discrete state-space system using several methods.

    >>> dt = 0.1
    >>> for method in ['zoh', 'bilinear', 'euler', 'backward_diff', 'foh', 'impulse']:
    ...    d_system = cont2discrete((A, B, C, D), dt, method=method)
    ...    s, x_d = dstep(d_system)
    ...    ax.step(s, np.squeeze(x_d), label=method, where='post')
    >>> ax.axis([t[0], t[-1], x[0], 1.4])
    >>> ax.legend(loc='best')
    >>> fig.tight_layout()
    >>> plt.show()

    Úto_discrete)ÚdtÚmethodÚalphar   r   r   )rP   rQ   é   é   zKFirst argument must either be a tuple of 2 (tf), 3 (zpk), or 4 (ss) arrays.ÚgbtNzUAlpha parameter must be specified for the generalized bilinear transform (gbt) methodzDAlpha parameter must be within the interval [0,1] for the gbt methodg      ð?ÚbilinearÚtusting      à?ÚeulerÚforward_diffr>   Úbackward_diffÚzohÚfohÚimpulsez<Impulse method is only applicable to strictly proper systemszUnknown transformation method 'Ú')ÚhasattrÚcallablerN   r   r   r   r   r   r   r   r!   r   r   r   ÚsolveÚ	transposer   r"   r	   ÚvstackÚexpmÚ
block_diagÚblockÚallclose)ÚsystemrO   rP   rQ   ÚsysdÚaÚbÚcÚdÚimaÚadÚbdÚcdÚddÚem_upperÚem_lowerÚemÚmsr:   ÚmÚms11Úms12Úms13s                          r/   r   r   d  sÍ  € ôF ˆv�}Ô%¬(°6×3EÑ3EÔ*FØ×!Ñ! R°¸eÐ!ÓDÐDä
ˆ6ƒ{�aÒÜœU 6¨!¡9¨f°Q©iÓ8¸"ÀVØ#(ô*ˆä�T˜!‘W˜d 1™g t¨A¡w°°Q±Ó8¸B¸5Ñ@Ð@Ü	ˆV‹˜Ò	ÜœV F¨1¡I¨v°a©y¸&À¹)ÓDÀbØ$*°%ô9ˆä�d˜1‘g˜t A™w¨¨Q©°°a±Ó9¸R¸EÑAÐAÜ	ˆV‹˜Ò	Ø‰
ˆˆ1ˆa‘äð 6ó 7ð 	7ð �‚Øˆ=Üð Kó Lð Là�QŠY˜% !š)Üð 8ó 9ð 9ð �‚ä�f‰f�Q—W‘W˜Q‘ZÓ  5¨¡8¨A¡:Ñ-ˆÜ�\‰\˜#œrŸv™v a§g¡g¨a¡jÓ1°S¸±YÀ±NÀ1Ñ4DÑDÓEˆÜ�\‰\˜#˜r !™tÓ$ˆô �\‰\˜#Ÿ-™-›/¨1¯;©;«=Ó9ˆØ�\‰\‹^ˆØ�”r—v‘v˜a “}Ñ$Ñ$Šà	�:Ò	 ¨8Ò!3Ü˜V R°¸SÔAÐAà	�7Ò	˜f¨Ò6Ü˜V R°¸SÔAÐAà	�?Ò	"Ü˜V R°¸SÔAÐAà	�5‹ä—9‘9˜a ˜VÓ$ˆô —9‘9œbŸh™h¨¯©°©
°A·G±G¸A±JÐ'?Ó@Ü Ÿh™h¨¯©°©
°A·G±G¸A±JÐ'?Ó@ðBó Cˆô �Y‰Y˜ (Ð+Ó,ˆÜ�[‰[˜˜b™Ó!ˆð ��—‘˜‘�šQ�Ñˆà’�1�Q—W‘W˜Q‘Z�<�Ñ ˆØ’�1—7‘7˜1‘:‘;�ÑˆàˆØŠà	�5Šà�G‰G�A‰JˆØ�G‰G�A‰Jˆô ×$Ñ$¤R§X¡X¨q°!¨fÓ%5¸Ñ%:¼B¿F¹FÀ1»IÓFˆÜ˜!˜Q  Q¡™Y˜Ó(ˆÜ�X‰X˜�z H :Ð.Ó/ˆä�[‰[˜‹_ˆð �"�1�"�a˜�c�'‰{ˆØ�"�1�"�a˜˜A™�g�+‰ˆØ�"�1�"�a˜!‘e‘f�*‰~ˆàˆØ�D‰[˜4 $™;Ñ&ˆØˆØ��T‘‰\‰à	�9Ò	Ü�{‰{˜1˜aÔ Üð :ó ;ð ;ô �[‰[˜˜R™Ó ˆØ�!‰V�b‰[ˆØˆØ�‰U�R‰Z‰ô Ð:¸6¸(À!ÐDÓEÐEàˆr�2�r˜2ÐÐr0   )NNNN)r   )rZ   N) Ú__doc__Únumpyr!   r   r   r   r   r   r   r	   r
   r   Úscipyr   Úscipy._lib._array_apir   r   Úscipy._lib.array_api_extraÚ_libÚarray_api_extrar4   Ú_filter_designr   r   r   Ú__all__r   r   r   r   r   r   © r0   r/   Ú<module>r„      s\   ðñó
 ÷1÷ 1õ 1å ç :ß (Ð (ß 5Ñ 5ò€ò^óBaóHVòr#ó(3ô<Gr0   