o
    oÇhÎ  ã                   @   s„   d Z ddlmZmZ ddlmZ ddlmZmZ G dd„ deƒZ	G dd„ de	ƒZ
G d	d
„ d
e	ƒZG dd„ de	ƒZG dd„ de	ƒZdS )z- This module contains the Mathieu functions.
é    )ÚFunctionÚArgumentIndexError)Úsqrt)ÚsinÚcosc                   @   s   e Zd ZdZdZdd„ ZdS )ÚMathieuBasezj
    Abstract base class for Mathieu functions.

    This class is meant to reduce code duplication.

    Tc                 C   s&   | j \}}}|  | ¡ | ¡ | ¡ ¡S ©N)ÚargsÚfuncÚ	conjugate)ÚselfÚaÚqÚz© r   ú}/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/functions/special/mathieu_functions.pyÚ_eval_conjugate   s   zMathieuBase._eval_conjugateN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
unbranchedr   r   r   r   r   r   	   s    r   c                   @   ó&   e Zd ZdZddd„Zedd„ ƒZdS )	Úmathieusaè  
    The Mathieu Sine function $S(a,q,z)$.

    Explanation
    ===========

    This function is one solution of the Mathieu differential equation:

    .. math ::
        y(x)^{\prime\prime} + (a - 2 q \cos(2 x)) y(x) = 0

    The other solution is the Mathieu Cosine function.

    Examples
    ========

    >>> from sympy import diff, mathieus
    >>> from sympy.abc import a, q, z

    >>> mathieus(a, q, z)
    mathieus(a, q, z)

    >>> mathieus(a, 0, z)
    sin(sqrt(a)*z)

    >>> diff(mathieus(a, q, z), z)
    mathieusprime(a, q, z)

    See Also
    ========

    mathieuc: Mathieu cosine function.
    mathieusprime: Derivative of Mathieu sine function.
    mathieucprime: Derivative of Mathieu cosine function.

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Mathieu_function
    .. [2] https://dlmf.nist.gov/28
    .. [3] https://mathworld.wolfram.com/MathieuFunction.html
    .. [4] https://functions.wolfram.com/MathieuandSpheroidalFunctions/MathieuS/

    é   c                 C   ó*   |dkr| j \}}}t|||ƒS t| |ƒ‚©Né   )r	   Úmathieusprimer   ©r   Úargindexr   r   r   r   r   r   ÚfdiffF   ó   
zmathieus.fdiffc                 C   s8   |j r|jrtt|ƒ| ƒS | ¡ r| ||| ƒ S d S r   )Ú	is_NumberÚis_zeror   r   Úcould_extract_minus_sign©Úclsr   r   r   r   r   r   ÚevalM   s
   ÿzmathieus.evalN©r   ©r   r   r   r   r!   Úclassmethodr(   r   r   r   r   r      ó
    
-r   c                   @   r   )	Úmathieucaã  
    The Mathieu Cosine function $C(a,q,z)$.

    Explanation
    ===========

    This function is one solution of the Mathieu differential equation:

    .. math ::
        y(x)^{\prime\prime} + (a - 2 q \cos(2 x)) y(x) = 0

    The other solution is the Mathieu Sine function.

    Examples
    ========

    >>> from sympy import diff, mathieuc
    >>> from sympy.abc import a, q, z

    >>> mathieuc(a, q, z)
    mathieuc(a, q, z)

    >>> mathieuc(a, 0, z)
    cos(sqrt(a)*z)

    >>> diff(mathieuc(a, q, z), z)
    mathieucprime(a, q, z)

    See Also
    ========

    mathieus: Mathieu sine function
    mathieusprime: Derivative of Mathieu sine function
    mathieucprime: Derivative of Mathieu cosine function

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Mathieu_function
    .. [2] https://dlmf.nist.gov/28
    .. [3] https://mathworld.wolfram.com/MathieuFunction.html
    .. [4] https://functions.wolfram.com/MathieuandSpheroidalFunctions/MathieuC/

    r   c                 C   r   r   )r	   Úmathieucprimer   r   r   r   r   r!   „   r"   zmathieuc.fdiffc                 C   s6   |j r|jrtt|ƒ| ƒS | ¡ r| ||| ƒS d S r   )r#   r$   r   r   r%   r&   r   r   r   r(   ‹   s
   ÿzmathieuc.evalNr)   r*   r   r   r   r   r-   V   r,   r-   c                   @   r   )	r   a"  
    The derivative $S^{\prime}(a,q,z)$ of the Mathieu Sine function.

    Explanation
    ===========

    This function is one solution of the Mathieu differential equation:

    .. math ::
        y(x)^{\prime\prime} + (a - 2 q \cos(2 x)) y(x) = 0

    The other solution is the Mathieu Cosine function.

    Examples
    ========

    >>> from sympy import diff, mathieusprime
    >>> from sympy.abc import a, q, z

    >>> mathieusprime(a, q, z)
    mathieusprime(a, q, z)

    >>> mathieusprime(a, 0, z)
    sqrt(a)*cos(sqrt(a)*z)

    >>> diff(mathieusprime(a, q, z), z)
    (-a + 2*q*cos(2*z))*mathieus(a, q, z)

    See Also
    ========

    mathieus: Mathieu sine function
    mathieuc: Mathieu cosine function
    mathieucprime: Derivative of Mathieu cosine function

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Mathieu_function
    .. [2] https://dlmf.nist.gov/28
    .. [3] https://mathworld.wolfram.com/MathieuFunction.html
    .. [4] https://functions.wolfram.com/MathieuandSpheroidalFunctions/MathieuSPrime/

    r   c                 C   óB   |dkr| j \}}}d| td| ƒ | t|||ƒ S t| |ƒ‚©Nr   é   )r	   r   r   r   r   r   r   r   r!   Â   ó   $
zmathieusprime.fdiffc                 C   s>   |j r|jrt|ƒtt|ƒ| ƒ S | ¡ r| ||| ƒS d S r   )r#   r$   r   r   r%   r&   r   r   r   r(   É   s
   ÿzmathieusprime.evalNr)   r*   r   r   r   r   r   ”   r,   r   c                   @   r   )	r.   a!  
    The derivative $C^{\prime}(a,q,z)$ of the Mathieu Cosine function.

    Explanation
    ===========

    This function is one solution of the Mathieu differential equation:

    .. math ::
        y(x)^{\prime\prime} + (a - 2 q \cos(2 x)) y(x) = 0

    The other solution is the Mathieu Sine function.

    Examples
    ========

    >>> from sympy import diff, mathieucprime
    >>> from sympy.abc import a, q, z

    >>> mathieucprime(a, q, z)
    mathieucprime(a, q, z)

    >>> mathieucprime(a, 0, z)
    -sqrt(a)*sin(sqrt(a)*z)

    >>> diff(mathieucprime(a, q, z), z)
    (-a + 2*q*cos(2*z))*mathieuc(a, q, z)

    See Also
    ========

    mathieus: Mathieu sine function
    mathieuc: Mathieu cosine function
    mathieusprime: Derivative of Mathieu sine function

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Mathieu_function
    .. [2] https://dlmf.nist.gov/28
    .. [3] https://mathworld.wolfram.com/MathieuFunction.html
    .. [4] https://functions.wolfram.com/MathieuandSpheroidalFunctions/MathieuCPrime/

    r   c                 C   r/   r0   )r	   r   r-   r   r   r   r   r   r!      r2   zmathieucprime.fdiffc                 C   sB   |j r|jrt|ƒ tt|ƒ| ƒ S | ¡ r| ||| ƒ S d S r   )r#   r$   r   r   r%   r&   r   r   r   r(     s
   ÿzmathieucprime.evalNr)   r*   r   r   r   r   r.   Ò   r,   r.   N)r   Úsympy.core.functionr   r   Ú(sympy.functions.elementary.miscellaneousr   Ú(sympy.functions.elementary.trigonometricr   r   r   r   r-   r   r.   r   r   r   r   Ú<module>   s    >>>