;๒
ี@c           @   sศ   d  k  Z  d  k Z d  k Z e i d  d j o d  k Z n
 d  k Z d k l Z d   Z d   Z	 d   Z
 d   Z g  d  Z d	   Z d
 d  Z g  d  Z d   Z e d j o e   n d  S(   Ni   s   2.3(   s   mkpathc         C   s   t  i d  } t  i d  } t  i d  } | i d |   } | i |  } | i |  } | | } t d   |  } | Sd  S(   Ns   /\*(?:\s|.)*?\*/s%   subroutine (?:\s|.)*?end subroutine.*s!   function (?:\s|.)*?end function.*s    c         C   s   t  i |   S(   N(   s   strings   strips   x(   s   x(    (    sY   /afs/sipb.mit.edu/project/python-lib/src/SciPy_complete-0.3.2/Lib/linalg/interface_gen.pys   <lambda>   s    (   s   res   compiles   comment_block_exps   subroutine_exps   function_exps   subs   interface_ins	   interfaces   findalls   subroutine_lists   function_lists   map(   s   interface_ins   function_exps   function_lists   comment_block_exps   subroutine_lists	   interfaces   subroutine_exp(    (    sY   /afs/sipb.mit.edu/project/python-lib/src/SciPy_complete-0.3.2/Lib/linalg/interface_gen.pys   all_subroutines
   s    
c         C   s   |  Sd  S(   N(   s
   val_string(   s
   val_string(    (    sY   /afs/sipb.mit.edu/project/python-lib/src/SciPy_complete-0.3.2/Lib/linalg/interface_gen.pys   real_convert   s    c         C   s   d |  d Sd  S(   Ns   (s   ,0.)(   s
   val_string(   s
   val_string(    (    sY   /afs/sipb.mit.edu/project/python-lib/src/SciPy_complete-0.3.2/Lib/linalg/interface_gen.pys   complex_convert   s    c         C   s~   t  i d  } |  } x] n oU | i |  } | t j o Pn | | i	 d   } t i | | i	   |  } q  W| Sd  S(   Ns   <type_convert=(.*?)>i   (   s   res   compiles   regexps   interface_ins	   interfaces   searchs   subs   Nones	   converters   groups	   converteds   strings   replace(   s   interface_ins	   converters   subs	   converteds	   interfaces   regexp(    (    sY   /afs/sipb.mit.edu/project/python-lib/src/SciPy_complete-0.3.2/Lib/linalg/interface_gen.pys   convert_types   s       c         C   s  h  d d d t  d f <d d d t  d f <d d d t d f <d d d t d f <d	 d d t d f <d
 d d t d f <d d d t  d f <d d d t  d f <} h  d d <d d <d d <d d <}
 h  d d <d d <d d <d d <} t |   } t |  GHt	 i
 d  } t	 i
 d  } t	 i
 d  } d } x6| D].} | i |  } | t j o | d | } qSn | i d  } t i | d d  } t i | d  } t	 i | d |  } | i |  } | t j	 o t	 i | d |  } n t i |  }	 xe| D]]} | | \ } } } } t |	 |  } t i | d |  } t i | d t i! |   } t i | d |  } t i | d |
 |  } t i | d | |  } t i | d |  } t i | d  |
 |  } t i | d! |  } t i | d" |
 |  } | i" |  } | o3 | i d#  | j o d$ G| i d#  GHq qon d% GH| d | } q WqSW| Sd  S(&   Ns   ss   reals   ds   double precisions   cs   complexs   zs   double complexs   css   zds   scs   dzs   floats   doubles   complex_floats   complex_doubles   voids   <tchar=(.*?)>s   <TCHAR=(.*?)>s*   (subroutine|function)\s*(?P<name>\w+)\s*\(s    s   

i   s    s   ,s   <tchar>s   <TCHAR>s	   <type_in>s   <type_in_c>s   <type_in_cc>s
   <rtype_in>s   <rtype_in_c>s
   <type_out>s   <type_out_c>s   names   Skippings/   Possible bug: Failed to determine routines name($   s   real_converts   complex_converts   generic_typess   generic_c_typess   generic_cc_typess   all_subroutiness   generic_interfaces   subss   lens   res   compiles   type_exps   TYPE_EXPs   routine_names	   interfaces   subs   searchs   ms   Nones   groups
   type_charss   strings   replaces   splits   strips   sub_generics   chars   type_ins   type_outs	   converters   rtype_ins   convert_typess   function_defs   uppers   matchs
   skip_names(   s   generic_interfaces
   skip_namess   subss   type_ins   chars   rtype_ins
   type_charss   subs   generic_cc_typess   sub_generics   generic_c_typess   type_outs   function_defs   type_exps   routine_names	   interfaces	   converters   ms   TYPE_EXPs   generic_types(    (    sY   /afs/sipb.mit.edu/project/python-lib/src/SciPy_complete-0.3.2/Lib/linalg/interface_gen.pys   generic_expand'   s`    ฎ**  c         C   s2   d } d | d } d | } | | |  | Sd  S(   Ns   !%f90 -*- f90 -*-
s   
python module s;    ! in
!usercode '''#include "cblas.h"
!'''
    interface  
s    
    end interface
end module %s(   s
   pre_prefixs   module_names   file_prefixs   file_suffixs   interface_in(   s   interface_ins   module_names
   pre_prefixs   file_prefixs   file_suffix(    (    sY   /afs/sipb.mit.edu/project/python-lib/src/SciPy_complete-0.3.2/Lib/linalg/interface_gen.pys   interface_to_moduley   s    
s   .c         C   s{   t  i d  } | i |   } xR | D]J } t t i	 i
 | |   } t i |  d | | i    }  | i   q% W|  Sd  S(   Ns    \n\s*[^!]\s*<include_file=(.*?)>s   <include_file=%s>(   s   res   compiles   include_exps   findalls   interface_ins   include_filess   filenames   opens   oss   paths   joins   sdirs   fs   strings   replaces   reads   close(   s   interface_ins   sdirs   include_exps   fs   filenames   include_files(    (    sY   /afs/sipb.mit.edu/project/python-lib/src/SciPy_complete-0.3.2/Lib/linalg/interface_gen.pys   process_includes   s     	c   
      C   s  d G|  Gd GHt |  } | i   }	 | i   t i i	 |  } t |	 |  }	 t |	 |  }	 t |	 |   } t t i i	 |   t | d  } t i i | |  d  } t i i |  o- t |  } | i | i    | i   n | i |  | i   d  S(   Ns
   generatings	   interfaces   ws   _user_routines.pyf(   s   module_names   opens   src_files   fs   reads   generic_interfaces   closes   oss   paths   dirnames   sdirs   process_includess   generic_expands
   skip_namess   interface_to_modules
   module_defs   mkpaths   target_files   joins   user_routiness   existss   f2s   write(
   s   module_names   src_files   target_files
   skip_namess   f2s   fs   sdirs
   module_defs   user_routiness   generic_interface(    (    sY   /afs/sipb.mit.edu/project/python-lib/src/SciPy_complete-0.3.2/Lib/linalg/interface_gen.pys   generate_interface   s"    
c          C   s9   x2 d d d d g D] }  t |  d |  |  d  q Wd  S(   Ns   fblass   cblass   clapacks   flapacks   generic_%s.pyfs   .pyf(   s   names   generate_interface(   s   name(    (    sY   /afs/sipb.mit.edu/project/python-lib/src/SciPy_complete-0.3.2/Lib/linalg/interface_gen.pys   process_allข   s     s   __main__(   s   strings   oss   syss   versions   res   pres   distutils.dir_utils   mkpaths   all_subroutiness   real_converts   complex_converts   convert_typess   generic_expands   interface_to_modules   process_includess   generate_interfaces   process_alls   __name__(   s   all_subroutiness   generate_interfaces   strings   convert_typess   mkpaths   real_converts   process_alls   syss   res   process_includess   generic_expands   complex_converts   oss   interface_to_module(    (    sY   /afs/sipb.mit.edu/project/python-lib/src/SciPy_complete-0.3.2/Lib/linalg/interface_gen.pys   ?   s   					
R		