;ò
…Rã?c           @   so   d  k  l  Z  d k Z d f  d „  ƒ  YZ e d j o5 e  d d g ƒ Z d e Z e e ƒ Z e e GHn d S(   (   s
   PolynomialNs   RationalFunctionc           B   s°   t  Z d  Z d g d „ Z d Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d	 „  Z
 e
 Z d
 „  Z d „  Z d „  Z e Z d „  Z d „  Z d d „ Z d „  Z d „  Z RS(   sÌ  Rational Function

    Instances of this class represent rational functions
    in a single variable. They can be evaluated like functions.

    Constructor: RationalFunction(|numerator|, |denominator|)

    Arguments:

    |numerator|, |denominator| -- polynomials or sequences of numbers that
                                  represent the polynomial coefficients

    Rational functions support addition, subtraction, multiplication,
    and division.
    f1.0c         C   sf   t  | d ƒ o | |  _ n t | ƒ |  _ t  | d ƒ o | |  _ n t | ƒ |  _ |  i ƒ  d  S(   Ns   is_polynomial(   s   hasattrs	   numerators   selfs
   Polynomials   denominators
   _normalize(   s   selfs	   numerators   denominator(    (    sH   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Rational.pys   __init__   s    i   c         C   s   |  i | ƒ |  i | ƒ Sd  S(   N(   s   selfs	   numerators   values   denominator(   s   selfs   value(    (    sH   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Rational.pys   __call__)   s    c         C   s6   d t  t |  i i ƒ ƒ t  t |  i i ƒ ƒ f Sd  S(   Ns   RationalFunction(%s,%s)(   s   reprs   lists   selfs	   numerators   coeffs   denominator(   s   self(    (    sH   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Rational.pys   __repr__,   s    c         C   s'  |  i |  i ƒ |  _ |  i |  i ƒ |  _ d } xl n od |  i i | d j o Pn |  i i | d j o Pn | d } | t |  i i ƒ j o Pq3 q: W| d j o6 t |  i i | ƒ |  _ t |  i i | ƒ |  _ n |  i i d } | d j o$ |  i | |  _ |  i | |  _ n d  S(   Ni    i   iÿÿÿÿf1.0(	   s   selfs	   _truncates	   numerators   denominators   ns   coeffs   lens
   Polynomials   factor(   s   selfs   factors   n(    (    sH   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Rational.pys
   _normalize0   s&     

c         C   si   | i d d j o | Sn | i } x3 t | ƒ d j o | d d j o | d  } q( Wt | ƒ Sd  S(   Niÿÿÿÿf0.0i   (   s   polys   coeffs   lens
   Polynomial(   s   selfs   polys   coeff(    (    sH   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Rational.pys	   _truncateD   s    	 $c         C   se   t  | d ƒ o |  | f SnD t  | d ƒ o |  t | d g ƒ f Sn |  t | g d g ƒ f Sd  S(   Ns   is_rational_functions   is_polynomialf1.0(   s   hasattrs   others   selfs   RationalFunction(   s   selfs   other(    (    sH   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Rational.pys
   __coerce__L   s
    c         C   s%   t  |  i | i |  i | i ƒ Sd  S(   N(   s   RationalFunctions   selfs	   numerators   others   denominator(   s   selfs   other(    (    sH   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Rational.pys   __mul__T   s    c         C   s%   t  |  i | i |  i | i ƒ Sd  S(   N(   s   RationalFunctions   selfs	   numerators   others   denominator(   s   selfs   other(    (    sH   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Rational.pys   __div__Y   s    c         C   s%   t  | i |  i | i |  i ƒ Sd  S(   N(   s   RationalFunctions   others	   numerators   selfs   denominator(   s   selfs   other(    (    sH   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Rational.pys   __rdiv__]   s    c         C   s3   t  |  i | i |  i | i |  i | i ƒ Sd  S(   N(   s   RationalFunctions   selfs	   numerators   others   denominator(   s   selfs   other(    (    sH   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Rational.pys   __add__a   s    c         C   s3   t  |  i | i |  i | i |  i | i ƒ Sd  S(   N(   s   RationalFunctions   selfs	   numerators   others   denominator(   s   selfs   other(    (    sH   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Rational.pys   __sub__g   s    c         C   s3   t  | i |  i | i |  i |  i | i ƒ Sd  S(   N(   s   RationalFunctions   others	   numerators   selfs   denominator(   s   selfs   other(    (    sH   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Rational.pys   __rsub__l   s    i    c         C   s  t  i |  i i d d ƒ} | d j o  t  i | d g | f ƒ } n |  i i } t
 | ƒ } g  } xY t
 | ƒ | j oE | d | d } | i | ƒ | | | | | | )| d  } qi W| o d g } n | i ƒ  t
 | ƒ d j o d g } n t | ƒ t | | ƒ f Sd S(   s›  Returns a polynomial and a rational function such that the
        sum of the two is equal to the original rational function. The
        returned rational function's numerator is of lower order than
        its denominator.

        The argument |shift| (default: 0) specifies a positive integer
        power of the independent variable by which the numerator
        is multiplied prior to division.
        s   copyi   i    f0.0iÿÿÿÿN(   s   Numerics   arrays   selfs	   numerators   coeffs   nums   shifts   concatenates   denominators   dens   lens	   den_orders   qs   appends   reverses
   Polynomials   RationalFunction(   s   selfs   shifts   qs	   den_orders   nums   dens   coeff(    (    sH   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Rational.pys   divideq   s&    	   
c         C   s   |  i i ƒ  Sd S(   s&   Returns an array containing the zeros.N(   s   selfs	   numerators   zeros(   s   self(    (    sH   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Rational.pys   zeros�   s     c         C   s   |  i i ƒ  Sd S(   s&   Returns an array containing the poles.N(   s   selfs   denominators   zeros(   s   self(    (    sH   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Rational.pys   poles‘   s     (   s   __name__s
   __module__s   __doc__s   __init__s   is_rational_functions   __call__s   __repr__s
   _normalizes	   _truncates
   __coerce__s   __mul__s   __rmul__s   __div__s   __rdiv__s   __add__s   __radd__s   __sub__s   __rsub__s   divides   zeross   poles(    (    (    sH   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Rational.pys   RationalFunction
   s&    												s   __main__f1.0(   s
   Polynomials   Numerics   RationalFunctions   __name__s   ps   invps   pr(   s   prs   Numerics   invps   ps
   Polynomials   RationalFunction(    (    sH   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Rational.pys   ?   s   	Ž
