ó
¡Œ\c           @  sv   d  Z  d d l m Z m Z d d l m Z d d l m Z d d l m	 Z	 d d l
 m Z d e f d     YZ d	 S(
   sA   
Contains the base class for series
Made using sequences in mind
iÿÿÿÿ(   t   print_functiont   division(   t   Expr(   t   S(   t   cacheit(   t   integer_typest
   SeriesBasec           B  s   e  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 RS(   s   Base Class for seriesc         C  s   t  d |    d S(   s+   The interval on which the series is defineds   (%s).intervalN(   t   NotImplementedError(   t   self(    (    s8   lib/python2.7/site-packages/sympy/series/series_class.pyt   interval   s    c         C  s   t  d |    d S(   s8   The starting point of the series. This point is includeds
   (%s).startN(   R   (   R   (    (    s8   lib/python2.7/site-packages/sympy/series/series_class.pyt   start   s    c         C  s   t  d |    d S(   s6   The ending point of the series. This point is includeds	   (%s).stopN(   R   (   R   (    (    s8   lib/python2.7/site-packages/sympy/series/series_class.pyt   stop   s    c         C  s   t  d |    d S(   s   Length of the series expansions   (%s).lengthN(   R   (   R   (    (    s8   lib/python2.7/site-packages/sympy/series/series_class.pyt   length    s    c         C  s   d S(   s-   Returns a tuple of variables that are bounded(    (    (   R   (    (    s8   lib/python2.7/site-packages/sympy/series/series_class.pyt	   variables%   s    c         C  s#   t  d   |  j D  j |  j  S(   s   
        This method returns the symbols in the object, excluding those
        that take on a specific value (i.e. the dummy symbols).
        c         s  s%   |  ] } | j  D] } | Vq q d  S(   N(   t   free_symbols(   t   .0t   it   j(    (    s8   lib/python2.7/site-packages/sympy/series/series_class.pys	   <genexpr>0   s    (   t   sett   argst
   differenceR   (   R   (    (    s8   lib/python2.7/site-packages/sympy/series/series_class.pyR   *   s    c         C  sG   | |  j  k  s | |  j k r: t d | |  j f   n  |  j |  S(   s   Term at point pt of a seriess   Index %s out of bounds %s(   R
   R   t
   IndexErrorR	   t
   _eval_term(   R   t   pt(    (    s8   lib/python2.7/site-packages/sympy/series/series_class.pyt   term3   s    c         C  s   t  d |  j   d  S(   Nsh   The _eval_term method should be added to%s to return series term so it is availablewhen 'term' calls it.(   R   t   func(   R   R   (    (    s8   lib/python2.7/site-packages/sympy/series/series_class.pyR   :   s    c         C  s?   |  j  t j k r$ |  j } d } n |  j  } d } | | | S(   sæ   
        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
        iÿÿÿÿi   (   R
   R   t   NegativeInfinityR   (   R   R   t   initialt   step(    (    s8   lib/python2.7/site-packages/sympy/series/series_class.pyt
   _ith_point@   s    			c         c  sG   d } x: | |  j  k  rB |  j |  } |  j |  V| d 7} q	 Wd  S(   Ni    i   (   R   R   R   (   R   R   R   (    (    s8   lib/python2.7/site-packages/sympy/series/series_class.pyt   __iter__T   s
    c         C  sŒ   t  | t  r+ |  j |  } |  j |  St  | t  rž | j | j } } | d  k rb d } n  | d  k rz |  j } n  g  t	 | | | j
 p d  D] } |  j |  j |   ^ q Sd  S(   Ni    i   (   t
   isinstanceR   R   R   t   sliceR
   R   t   NoneR   t   rangeR   (   R   t   indexR
   R   R   (    (    s8   lib/python2.7/site-packages/sympy/series/series_class.pyt   __getitem__[   s    	(   t   __name__t
   __module__t   __doc__t   propertyR	   R
   R   R   R   R   R   R   R   R   R   R$   (    (    (    s8   lib/python2.7/site-packages/sympy/series/series_class.pyR      s   				N(   R'   t
   __future__R    R   t   sympy.core.exprR   t   sympy.core.singletonR   t   sympy.core.cacheR   t   sympy.core.compatibilityR   R   (    (    (    s8   lib/python2.7/site-packages/sympy/series/series_class.pyt   <module>   s   