;ò
…Rã?c           @   s†  d  k  Z  d  k Z d k l Z d  k Z d f  d „  ƒ  YZ e e _ d e f d „  ƒ  YZ e e _ d „  Z d „  Z	 e
 d j o d	 k  Te d
 d d ƒ Z e e ƒ Z e e f e ƒ Z e d ƒ Ge d ƒ GHe i ƒ  Z e d ƒ Gd e d ƒ GHe i ƒ  Z e d ƒ Gd d d GHe i ƒ  GHe e d  d  … e f ƒ e e ƒ Z e e e f e ƒ Z e d d ƒ Ge d ƒ e d ƒ GHn d  S(   N(   s   index_expressions   InterpolatingFunctionc           B   sþ   t  Z d  Z e d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d d „ Z
 d d	 „ Z d d
 „ Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   sj  Function defined by values on a grid using interpolation

    An interpolating function of n variables with m-dimensional values
    is defined by an (n+m)-dimensional array of values and n
    one-dimensional arrays that define the variables values
    corresponding to the grid points. The grid does not have to be
    equidistant.

    Constructor: InterpolatingFunction(|axes|, |values|, |default|=None)

    Arguments:

    |axes| -- a sequence of one-dimensional arrays, one for each
              variable, specifying the values of the variables at
              the grid points

    |values| -- an array containing the function values on the grid

    |default| -- the value of the function outside the grid. A value
                 of 'None' means that the function is undefined outside
                 the grid and that any attempt to evaluate it there
                 yields an exception.

    Evaluation: 'function(x1, x2, ...)' yields the function value
                obtained by linear interpolation.

    Indexing: all array indexing operations except for the
              NexAxis operator are supported.
    c         C   s~   t  | ƒ t  | i ƒ j o t d ‚ n t | ƒ |  _ | |  _ | |  _ f  |  _ x$ |  i D] } |  i | i |  _ q] Wd  S(   Ns   Inconsistent arguments(	   s   lens   axess   valuess   shapes
   ValueErrors   lists   selfs   defaults   axis(   s   selfs   axess   valuess   defaults   axis(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   __init__/   s    			
 c         G   s  t  | ƒ t  |  i ƒ j o t d ‚ n y t t | |  i ƒ } Wn9 t j
 o- } |  i
 t j	 o |  i
 Sq~ t | ‚ n Xf  } x1 | D]) } | t | d | d d d … } q‹ W|  i | } x4 | D], } d | d | d | d | d } qÌ W| Sd  S(   Ns   Wrong number of argumentsi    i   f1.0i   (   s   lens   pointss   selfs   axess	   TypeErrors   maps   _lookups
   neighbourss
   ValueErrors   texts   defaults   Nones   slicess   items   index_expressions   values(   s   selfs   pointss   slicess   texts   items
   neighbourss   values(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   __call__9   s"     ' *c         C   s   t  |  i d ƒ Sd  S(   Ni    (   s   lens   selfs   axes(   s   self(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   __len__K   s    c         C   si  t  | ƒ } | t  d ƒ j oX t |  i ƒ d j o  |  i d | |  i | f Sqe|  i |  i d |  i | ƒ Snï | t  t t	 ƒ ƒ j o: |  i d | g |  i d } |  i | |  i | ƒ Snœ | t  f  ƒ j o g  } |  i } xG | D]? } t  | ƒ t  d ƒ j o | i | d | ƒ n | d =qô W| | } |  i | |  i | ƒ Sn
 t d ‚ d  S(   Ni    i   s   illegal index type(   s   types   is   tis   lens   selfs   axess   valuess   _constructors   slices   Nones   rests   items   appends	   TypeError(   s   selfs   is   axess   items   rests   ti(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   __getitem__N   s&     "
 
c         C   s@   |  i d | | !g |  i d } |  i | |  i | | !ƒ Sd  S(   Ni    i   (   s   selfs   axess   is   js   _constructors   values(   s   selfs   is   js   axes(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   __getslice__d   s    "c         C   s  | d j of |  i } y | i } Wn t j
 o n X|  i } y | i } Wn n X|  i |  i | | ƒ Sn¨ | d j o‘ y |  i i } Wn  t j
 o d |  i } n X|  i } y |  i i } Wn( y d |  i } Wq÷ t	 } q÷ Xn X|  i |  i | | ƒ Sn
 t
 | ‚ d  S(   Ns   reals   imagi    (   s   attrs   selfs   valuess   reals
   ValueErrors   defaults   _constructors   axess   imags   Nones   AttributeError(   s   selfs   attrs   defaults   values(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   __getattr__h   s6    			i    c         C   s•   |  i | } t i t i | | ƒ t i | | ƒ ƒ } |  i |  t i | | ƒ g |  i | d } t i | |  i | ƒ } |  i | | t ƒ Sd S(   s«   Returns a new InterpolatingFunction whose grid is restricted
        to the interval from |first| to |last| along the variable
        whose number is |variable|.
        i   N(   s   selfs   axess   variables   xs   Numerics   logical_ands   greater_equals   firsts
   less_equals   lasts   cs   compresss   i_axess   valuess   i_valuess   _constructors   None(   s   selfs   firsts   lasts   variables   cs   i_valuess   xs   i_axes(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   selectInterval†   s     /c   	      C   s?  |  i | } | t d d d … t d d d … t d } | t d d d … t d d d … t d } t d d d … t |  i i	 ƒ | d t t
 i } |  i | |  i | | d | d  | } d | d | d  } |  i |  | g |  i | d } t } |  i t j	 o
 d } n |  i | | | ƒ Sd S(   sw   Returns a new InterpolatingFunction describing the derivative
        with respect to |variable| (an integer).
        Ni   .iÿÿÿÿf0.5f0.0(   s   selfs   axess   variables   diffaxiss   index_expressions   uis   lis   lens   valuess   shapes   Numerics   NewAxiss   ais   d_valuess   d_axess   Nones	   d_defaults   defaults   _constructor(	   s   selfs   variables	   d_defaults   ais   d_axess   diffaxiss   lis   d_valuess   ui(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys
   derivative“   s     006,#
c   
      C   sq  |  i | } | t d d d … t d d d … t d } | t d d d … t d d d … t d } t d d d … t |  i i	 ƒ | d t t
 i } t d d d … t |  i i	 ƒ | d t t
 i } d t
 i i |  i | |  i | | | | | | ƒ } t |  i i	 ƒ } d | | <t
 i t | ƒ ƒ }	 |  i |  i t
 i |	 | f | ƒ t ƒ Sd S(   sÿ   Returns a new InterpolatingFunction describing the integral
        with respect to |variable| (an integer). The integration constant
        is defined in such a way that the value of the integral at the
        first grid point along |variable| is zero.Ni   .iÿÿÿÿf0.5(   s   selfs   axess   variables   intaxiss   index_expressions   uis   lis   lens   valuess   shapes   Numerics   NewAxiss   uais   lais   adds
   accumulates   i_valuess   lists   ss   zeross   tuples   zs   _constructors   concatenates   None(
   s   selfs   variables   lais   i_valuess   lis   uais   ss   uis   intaxiss   z(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   integral§   s     00661

c   	      C   se  |  i | } | t d d d … t d d d … t d } | t d d d … t d d d … t d } t d d d … t |  i i	 ƒ | d t t
 i } t d d d … t |  i i	 ƒ | d t t
 i } d t
 i i |  i | |  i | | | | | | ƒ } t |  i ƒ d j o | Sn0 |  i |  |  i | d } |  i | | t ƒ Sd S(   s^  Returns a new InterpolatingFunction describing the definite integral
        with respect to |variable| (an integer). The integration constant
        is defined in such a way that the value of the integral at the
        first grid point along |variable| is zero. In the case of a
        function of one variable, the definite integral is a number.Ni   .iÿÿÿÿf0.5(   s   selfs   axess   variables   intaxiss   index_expressions   uis   lis   lens   valuess   shapes   Numerics   NewAxiss   uais   lais   adds   reduces   i_valuess   i_axess   _constructors   None(	   s   selfs   variables   i_axess   lais   i_valuess   lis   uais   uis   intaxis(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   definiteIntegralÀ   s     00661
c         C   s2   t  |  i ƒ } t i | | t i |  i	 ƒ ƒ Sd S(   sm   Returns a polynomial of |order| with parameters obtained from
        a least-squares fit to the grid values.N(
   s   _combinationss   selfs   axess   pointss
   Polynomials   fitPolynomials   orders   Numerics   ravels   values(   s   selfs   orders   points(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   fitPolynomial×   s     c         C   sO   t  |  i ƒ } y t  |  i ƒ } Wn |  i } n X|  i |  i | | ƒ Sd  S(   N(   s   abss   selfs   valuess   defaults   _constructors   axes(   s   selfs   defaults   values(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   __abs__Þ   s    c         C   sL   |  i t j o
 t } n | |  i ƒ } |  i |  i | |  i ƒ | ƒ Sd  S(   N(   s   selfs   defaults   Nones   functions   _constructors   axess   values(   s   selfs   functions   default(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys	   _mathfuncæ   s    
c         C   s   |  i t i ƒ Sd  S(   N(   s   selfs	   _mathfuncs   Numerics   exp(   s   self(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   expí   s    c         C   s   |  i t i ƒ Sd  S(   N(   s   selfs	   _mathfuncs   Numerics   log(   s   self(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   logð   s    c         C   s   |  i t i ƒ Sd  S(   N(   s   selfs	   _mathfuncs   Numerics   sqrt(   s   self(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   sqrtó   s    c         C   s   |  i t i ƒ Sd  S(   N(   s   selfs	   _mathfuncs   Numerics   sin(   s   self(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   sinö   s    c         C   s   |  i t i ƒ Sd  S(   N(   s   selfs	   _mathfuncs   Numerics   cos(   s   self(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   cosù   s    c         C   s   |  i t i ƒ Sd  S(   N(   s   selfs	   _mathfuncs   Numerics   tan(   s   self(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   tanü   s    c         C   s   |  i t i ƒ Sd  S(   N(   s   selfs	   _mathfuncs   Numerics   sinh(   s   self(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   sinhÿ   s    c         C   s   |  i t i ƒ Sd  S(   N(   s   selfs	   _mathfuncs   Numerics   cosh(   s   self(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   cosh  s    c         C   s   |  i t i ƒ Sd  S(   N(   s   selfs	   _mathfuncs   Numerics   tanh(   s   self(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   tanh  s    c         C   s   |  i t i ƒ Sd  S(   N(   s   selfs	   _mathfuncs   Numerics   arcsin(   s   self(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   arcsin  s    c         C   s   |  i t i ƒ Sd  S(   N(   s   selfs	   _mathfuncs   Numerics   arccos(   s   self(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   arccos  s    c         C   s   |  i t i ƒ Sd  S(   N(   s   selfs	   _mathfuncs   Numerics   arctan(   s   self(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   arctan  s    (   s   __name__s
   __module__s   __doc__s   Nones   __init__s   __call__s   __len__s   __getitem__s   __getslice__s   __getattr__s   selectIntervals
   derivatives   integrals   definiteIntegrals   fitPolynomials   __abs__s	   _mathfuncs   exps   logs   sqrts   sins   coss   tans   sinhs   coshs   tanhs   arcsins   arccoss   arctan(    (    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   InterpolatingFunction   s4    
																			s   NetCDFInterpolatingFunctionc           B   s   t  Z d  Z e d „ Z RS(   s§  Function defined by values on a grid in a netCDF file

    A subclass of InterpolatingFunction.

    Constructor: NetCDFInterpolatingFunction(|filename|, |axesnames|,
                                             |variablename|,
                                             |default|=None)

    Arguments:

    |filename| -- the name of the netCDF file

    |axesnames| -- the names of the netCDF variables that contain the
                   axes information

    |variablename| -- the name of the netCDF variable that contains
                      the data values

    |default| -- the value of the function outside the grid. A value
                 of 'None' means that the function is undefined outside
                 the grid and that any attempt to evaluate it there
                 yields an exception.

    Evaluation: 'function(x1, x2, ...)' yields the function value
                obtained by linear interpolation.
    c         C   sŠ   d k  l } | | d ƒ |  _ t |  i d „ | ƒ |  _ |  i i | |  _
 | |  _ f  |  _ x$ |  i D] } |  i | i |  _ qi Wd  S(   N(   s
   NetCDFFiles   rc         C   s   | i |  S(   N(   s   fs	   variabless   n(   s   ns   f(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   <lambda>6  s    (   s   Scientific.IO.NetCDFs
   NetCDFFiles   filenames   selfs   files   maps	   axesnamess   axess	   variabless   variablenames   valuess   defaults   shapes   axis(   s   selfs   filenames	   axesnamess   variablenames   defaults
   NetCDFFiles   axis(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   __init__3  s    		
 (   s   __name__s
   __module__s   __doc__s   Nones   __init__(    (    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   NetCDFInterpolatingFunction  s    c         C   s¼   t  i i t  i | |  ƒ ƒ } | t | ƒ j o8 |  | | d j o | d | d d f Sqi d } n | d j o t d ‚ n | d } |  | | | | | | } | | | f Sd  S(   Ni   i   f1.0i    s   Point outside grid of values(   s   Numerics   adds   reduces
   less_equals   axiss   points   js   lens
   ValueErrors   is   weight(   s   points   axiss   weights   is   j(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   _lookupB  s    

c         C   sƒ   t  |  ƒ d j o t d „  |  d ƒ SnU t |  d ƒ } g  } x7 |  d D]+ } x" | D] } | i | f | ƒ qY WqL W| Sd  S(   Ni   c         C   s   |  f S(   N(   s   x(   s   x(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   <lambda>Q  s    i    (	   s   lens   axess   maps   _combinationss   rests   ls   xs   ys   append(   s   axess   ls   rests   ys   x(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   _combinationsO  s      s   __main__(   s   *i    f1.1000000000000001f0.10000000000000001f0.22f0.34999999999999998f0.5f0.41999999999999998f1.5f0.23000000000000001f0.77000000000000002(   s   Numerics
   Polynomials   Scientific.indexings   index_expressions   operators   InterpolatingFunctions   _constructors   NetCDFInterpolatingFunctions   _lookups   _combinationss   __name__s   aranges   axiss   sqrts   valuess   ss
   derivatives   sds   integrals   sis   definiteIntegrals   sins   NewAxiss   coss   sc(   s   _combinationss   _lookups   sis   Numerics   operators   ss   valuess   index_expressions   sds
   Polynomials   axiss   scs   NetCDFInterpolatingFunctions   InterpolatingFunction(    (    sM   /mit/python/lib/python2.3/site-packages/Scientific/Functions/Interpolation.pys   ?   s0   			ÿ 	'			&