§
    OŠtjf  ã                   óJ   — d Z ddlmZ ddlmZ ddlmZ  G d„ de¦  «        ZdS )zA
Contains the base class for series
Made using sequences in mind
é    )ÚExpr)ÚS)Úcacheitc                   óÄ   — e Zd ZdZed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zd	„ Zd
„ Zd„ Zd„ ZdS )Ú
SeriesBasezBase Class for seriesc                 ó&   — t          d| z  ¦  «        ‚)z+The interval on which the series is definedz(%s).interval©ÚNotImplementedError©Úselfs    úW/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/series/series_class.pyÚintervalzSeriesBase.interval   s   € õ " /°DÑ"8Ñ9Ô9Ð9ó    c                 ó&   — t          d| z  ¦  «        ‚)z8The starting point of the series. This point is includedz
(%s).startr	   r   s    r   ÚstartzSeriesBase.start   s   € õ " ,°Ñ"5Ñ6Ô6Ð6r   c                 ó&   — t          d| z  ¦  «        ‚)z6The ending point of the series. This point is includedz	(%s).stopr	   r   s    r   ÚstopzSeriesBase.stop   s   € õ " +°Ñ"4Ñ5Ô5Ð5r   c                 ó&   — t          d| z  ¦  «        ‚)zLength of the series expansionz(%s).lengthr	   r   s    r   ÚlengthzSeriesBase.length   s   € õ " -°$Ñ"6Ñ7Ô7Ð7r   c                 ó   — dS )z-Returns a tuple of variables that are bounded© r   r   s    r   Ú	variableszSeriesBase.variables"   s	   € ð ˆrr   c                 óT   — d„ | j         D ¦   «                              | j        ¦  «        S )z�
        This method returns the symbols in the object, excluding those
        that take on a specific value (i.e. the dummy symbols).
        c                 ó&   — h | ]}|j         D ]}|’ŒŒS r   )Úfree_symbols)Ú.0ÚiÚjs      r   ú	<setcomp>z*SeriesBase.free_symbols.<locals>.<setcomp>-   s'   € Ð>Ð>Ð>�q¨q¬~Ð>Ð>¨!�Ð>Ð>Ð>Ð>r   )ÚargsÚ
differencer   r   s    r   r   zSeriesBase.free_symbols'   s+   € ð ?Ð>˜DœIÐ>Ñ>Ô>ß’˜DœNÑ+Ô+ð	-r   c                 óŒ   — || j         k     s|| j        k    rt          d|›d| j        ›�¦  «        ‚|                      |¦  «        S )zTerm at point pt of a serieszIndex z out of bounds )r   r   Ú
IndexErrorr   Ú
_eval_term©r   Úpts     r   ÚtermzSeriesBase.term0   sH   € ð �”
Š?ˆ?˜b 4¤9šn˜nÝ�*¸B¸B¸BÀÄÀÐNÑOÔOÐOØ�Š˜rÑ"Ô"Ð"r   c                 ó0   — t          d| j        z  ¦  «        ‚)NzhThe _eval_term method should be added to%s to return series term so it is availablewhen 'term' calls it.)r
   Úfuncr%   s     r   r$   zSeriesBase._eval_term7   s%   € Ý!ð #:ð %)¤Iñ#.ñ /ô /ð 	/r   c                 ó^   — | j         t          j        u r
| j        }d}n	| j         }d}|||z  z   S )zæ
        Returns the i'th point of a series
        If start point is negative infinity, point is returned from the end.
        Assumes the first point to be indexed zero.

        Examples
        ========

        TODO
        éÿÿÿÿé   )r   r   ÚNegativeInfinityr   )r   r   ÚinitialÚsteps       r   Ú
_ith_pointzSeriesBase._ith_point=   s=   € ð Œ:�Ô+Ð+Ð+Ø”iˆGØˆDˆDà”jˆGØˆDà˜˜4™ÑÐr   c              #   ó    K  — d}|| j         k     r>|                      |¦  «        }|                      |¦  «        V — |dz  }|| j         k     °<d S d S )Nr   r,   )r   r0   r'   )r   r   r&   s      r   Ú__iter__zSeriesBase.__iter__Q   s[   è è € ØˆØ�$”+ŠoˆoØ—’ Ñ#Ô#ˆBØ—)’)˜B‘-”-ÐÐÐØ�‰FˆAð �$”+Šoˆoˆoˆoˆoˆor   c                 ó.  ‡ — t          |t          ¦  «        r*‰                      |¦  «        }‰                      |¦  «        S t          |t          ¦  «        r?|j        |j        }}|€d}|€‰ j        }ˆ fd„t          |||j	        pd¦  «        D ¦   «         S d S )Nr   c                 ó`   •— g | ]*}‰                      ‰                     |¦  «        ¦  «        ‘Œ+S r   )r'   r0   )r   r   r   s     €r   ú
<listcomp>z*SeriesBase.__getitem__.<locals>.<listcomp>b   s=   ø€ ð 9ð 9ð 9°a�D—I’I˜dŸošo¨aÑ0Ô0Ñ1Ô1ð 9ð 9ð 9r   r,   )
Ú
isinstanceÚintr0   r'   Úslicer   r   r   Úranger/   )r   Úindexr   r   s   `   r   Ú__getitem__zSeriesBase.__getitem__X   s´   ø€ Ý�e�SÑ!Ô!ð 
	9Ø—O’O EÑ*Ô*ˆEØ—9’9˜UÑ#Ô#Ð#Ý˜�uÑ%Ô%ð 	9Øœ+ u¤z�4ˆEØˆ}Ø�Øˆ|Ø”{�ð9ð 9ð 9ð 9Ý˜%  u¤z °QÑ7Ô7ð9ñ 9ô 9ð 9ð	9ð 	9r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   r   r   r   r   r   r'   r$   r0   r2   r;   r   r   r   r   r      s  € € € € € ØÐàð:ð :ñ „Xð:ð ð7ð 7ñ „Xð7ð ð6ð 6ñ „Xð6ð ð8ð 8ñ „Xð8ð ðð ñ „Xðð ð-ð -ñ „Xð-ð ð#ð #ñ „Wð#ð/ð /ð /ð ð  ð  ð(ð ð ð9ð 9ð 9ð 9ð 9r   r   N)r?   Úsympy.core.exprr   Úsympy.core.singletonr   Úsympy.core.cacher   r   r   r   r   ú<module>rD      s…   ððð ð
 !Ð  Ð  Ð  Ð  Ð  Ø "Ð "Ð "Ð "Ð "Ð "Ø $Ð $Ð $Ð $Ð $Ð $ðX9ð X9ð X9ð X9ð X9�ñ X9ô X9ð X9ð X9ð X9r   