Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/site-packages/numpy/f2py/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/site-packages/numpy/f2py/__pycache__/rules.cpython-35.pyc



(��^���a@s5dZddlmZmZmZddd�ZddlmZejaddl	Z	ddl
Z
ddlZddlm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZIdd	lmJZJdd
lmKZKddlmLZLddlmMZMdd
lmNZNddlmOZOiaPiZQxcdddddddddddddddddd d!d"d#d$d%d&d'gD]ZRd(eQeR<q�Wd)d*e
jSe
jTe
j
���d+d,d-ed.�d/ed0�d1ed2�d3ed4�d5ed6�d7ed8�d9ed:�d;ed<�d=ed>�d?ed@�dAedB�dCedD�dEedF�dGedH�dIedJ�dKdLdMddGd dGiddNdOdPgd dQdRdSdTgiZUdUdVddWd"dXd!dYd'dZd#d[d%d\dd]d d]d^ed_eEe�d]ii
gZVdMeQdUd`d!dad#dbd"dcdddedfdgdhdidjdkdldmgdedniddodpgd dqdrdSgiZWdMdsd(dtd(dd(dud(dvd(dwdxdyd(dzd(d{d(d|d(d}d~dd(d�d(d�d(d�d(d�d(id�d]d�d]d�d]d�d]d�d]d�d]dd�dd�d�d]d�d]d}d]dd]dyd�dzd�d{d�d|d�d�d�d�d�d�d�d�d�d�d]d�d]d�d]dd�dd�gdd�dd�gdd�dud�dtd�dvd�dsd�d�d]d�d]d�d]d�d]d�d]d�d]d�d]d�d]d�d]d�d]d�d]d�d]d�d]d�ed�eEe�d]ii/d�d�d�d�dd]d�eEe2�id�d�d�d�dd]d�e2id�d�d�eDeEeFe2e$��eEe��d�eDeEe2�e$eEe��d�e2d]ed]id�eEeFe2e$e��d�eDeEe2�e$eEe��d�eDeEe2�e�d�idjeDeEeFe2e$��eEe��d�idsed�gied�ie<d�ied�ieEeFee��d�ie<d�ied�igd�eDe:eEe;��id�d�d�eEeFe2e��d�ed]id�eEeFe2e��d�ed�id�eEeFe2e��d�idjeEeFe2e��d�d�gidsed�gied�ie<d�ieEeFee��d�ied�ie<d�ied�igd�e!id�d�d�eEeFe2e��d�ed]id�eEeFe2e��d�ed�id�eEeFe2e��d�idjeEeFe2e��d�d�gidsed�gied�ie<d�ieEeFee��d�ied�ie<d�ied�igd�e;id�d�d�eEe'�d�id{d�d�d�ed�igdseDee9�d�ieDeeEe9��d�igd�eDe eEe!��id�eDeEeFe2e$��eEe��d�eDeEe2�e$eEe��d�ed]id�eDeEeFe2e$��eEe��d�eDeEe2�e$eEe��d�ed�ided�eEe�d�ied�igdsed�ie<d�ied�ieEeFee��d�ie<d�ied�ieDee�d�ieDeeEe��d�igded�idjeEe�d�ied�ie1d�ie/d�igd�eEe'�d�id�ed�eEeFee'��d�id�eDe eEe9�eEe!��i	d�d�d�eEeFe2e$��d�eDeEe2�e$�d�idd�d�gd�d�dsd�d�d�d�d�d�d�d�ed�ie<d�id�e<d�ied�ied�id�gd�d�d�d�dd�djd�d�d�gd�eDe9eEe!��i
dtd�dud�dvd�d�eig
ZXe0d�e.d�e-d�e>deBde=de@de?deCdeAde6d�iZYdMeQiddedigdddjeYidddjedided	id�eDe5eEe��id�d
d{d�d�dd�dd�eDe5eEe�e*�idd
dedid�eidddgdjdgd�e7iddddgdjdediedligd�eid�eDeeEe��id�eDeeEe�e)�idjd�d�e"dd]idjd�d�e?dd]idjd�d�eCdd]idjd�d�eAdd]idjd�d�edd]id�edidjdd�e8igZZdMeQiddedigdddd]djeYidzeDe3e)�didyeDe4e)�did{e*d�id�eDe3e)�ded�igid�eDe4e)�ded�igid�e*d�eDee'�d�eDee)�digidd]id�dd�dd�eDe)eEe3��id�dd�d d�dd�eDe)e3�id�dd�dd�e*id�e)d!id�e)d"idze)d#id|d$d�d%d�e)d&idd'd(d)d*eEe%�d+igd�e)d,id�e4d-id�e3d-id�e)d.id�e4d/id�e3d/id�d0dwd1d�eEe%�d2idjd3d4gd�eideEe%�d5ie%d6id7ed8eEe%�d9igid:gdd;djd<d=gd�edd]iddded>id�e$deEe$�d?id�e*d
id�eDe5eEe��idjedid�eDe5eEe��idd'd�e4d-id�e3d-id�e4d/id�e3d/ide(d@ide(dAidje(dBid�eDe5eEe�e)�i	dedCdd]ieDe3eEe��dDdd]ieEe,�dEie,dFigddGdjeEe,�dHid�eDe5eEe�e)�dd]ided	idjeYd�eDe5eEe�e'�dd]ided>id�eDe5eEe��dd]idd
d�e$deEe$�d?idedIid�e*dJid�eidd'd�e4d-id�e3d-id�e4d/id�e3d/idje(dBide(dKide(dLid�eDee)�i	dedMieDe3eEe��dDidEgddNdjdHgd�eDee)�dd]ide*d'id�eDee'�idedid�eDee'�dd]ide*dOidjd�gd�eidedIid�edd]idddd'gd�dd�dPdedQid�e*d
idjdgd�e7iddRddSdjdHdd�gd�e7dd]id�e4d-id�e3d-id�e4d/id�e3d/ide(dTide(dAidje(dBid�eDe7e)�id�eDe7e'�idedQid�e7dd]idddddUdVgd�dd�e*dWidjdd�eiddXd�dYd�dZd�d[d�d\d�d]dzd^d�eDee+�idd_d�eDee+�dd]idd`d�dYd�dZd�d[d�dad�d]dzdbd�eDee&�idd_d�eDee&�dd]idjediedligd�edd]idd'd�e4d-id�e3d-id�e4d/id�e3d/id�eDee)�iddcdde'deie)dfidgee)dhie'diiedjidkgigddleEeFe*e'��dmieDe'eEe*��dniedoigd�edd]id�eDeeEe��id�eDeeEe�e)�idjd�d�e"dd]idjd�d�e?dd]idjd�d�eCdd]idjd�d�eAdd]idjd�d�edd]id�edidjdd�e8ig*Z[dedpidjdiddqddrdjdsd�eDe5eEe��dtd]idduddvdjdwd�e7dtd]idjdxddyddzd�edtd]idjd{dd|dd}igZ\d~d�Z]dd�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�dd�i
Z^d�d��Z_dS(�aG

Rules for building C/API module with f2py2e.

Here is a skeleton of a new wrapper function (13Dec2001):

wrapper_function(args)
  declarations
  get_python_arguments, say, `a' and `b'

  get_a_from_python
  if (successful) {

    get_b_from_python
    if (successful) {

      callfortran
      if (successful) {

        put_a_to_python
        if (successful) {

          put_b_to_python
          if (successful) {

            buildvalue = ...

          }

        }

      }

    }
    cleanup_b

  }
  cleanup_a

  return buildvalue

Copyright 1999,2000 Pearu Peterson all rights reserved,
Pearu Peterson <pearu@ioc.ee>
Permission to use, modify, and distribute this software is given under the
terms of the NumPy License.

NO WARRANTY IS EXPRESSED OR IMPLIED.  USE AT YOUR OWN RISK.
$Date: 2005/08/30 08:58:42 $
Pearu Peterson

�)�division�absolute_import�print_functionz$Revision: 1.129 $�
�)�__version__N)=�
applyrules�	debugcapi�
dictappend�errmess�gentitle�getargs2�hascallstatement�hasexternals�hasinitvalue�hasnote�
hasresultnote�isarray�isarrayofstrings�	iscomplex�iscomplexarray�iscomplexfunction�iscomplexfunction_warn�isdummyroutine�
isexternal�
isfunction�isfunction_wrap�isint1array�isintent_aux�
isintent_c�isintent_callback�
isintent_copy�
isintent_hide�isintent_inout�isintent_nothide�isintent_out�isintent_overwrite�	islogical�islong_complex�
islong_double�islong_doublefunction�islong_long�islong_longfunction�ismoduleroutine�
isoptional�
isrequired�isscalar�issigned_long_longarray�isstring�
isstringarray�isstringfunction�issubroutine�issubroutine_wrap�isthreadsafe�
isunsigned�isunsigned_char�isunsigned_chararray�isunsigned_long_long�isunsigned_long_longarray�isunsigned_short�isunsigned_shortarray�l_and�l_not�l_or�outmess�replace�
stripcomma)�	capi_maps)�cfuncs)�common_rules)�	use_rules)�f90mod_rules)�	func2subr�declZ	frompyobj�cleanupfrompyobjZtopyarr�methodZ	pyobjfrom�closepyobjfromZfreemem�userincludes�	includes0�includes�typedefs�typedefs_generated�	cppmacrosrF�	callbacks�latexdoc�restdocZroutine_defsZexternroutinesZinitf2pywraphooks�commonhooksZinitcommonhooks�f90modhooksZinitf90modhooks�
�
modulebodya/* File: #modulename#module.c
 * This file is auto-generated with f2py (version:#f2py_version#).
 * f2py is a Fortran to Python Interface Generator (FPIG), Second Edition,
 * written by Pearu Peterson <pearu@cens.ioc.ee>.
 * See http://cens.ioc.ee/projects/f2py2e/
 * Generation date: z
 * $Rzevision:$
 * $Dz{ate:$
 * Do not edit this file directly unless you know what you are doing!!!
 */

#ifdef __cplusplus
extern "C" {
#endif

zSee f2py2e/cfuncs.py: includesz
#includes#
#includes0#

z,See f2py2e/rules.py: mod_rules['modulebody']zM
static PyObject *#modulename#_error;
static PyObject *#modulename#_module;

zSee f2py2e/cfuncs.py: typedefsz
#typedefs#

z(See f2py2e/cfuncs.py: typedefs_generatedz
#typedefs_generated#

zSee f2py2e/cfuncs.py: cppmacrosz
#cppmacros#

zSee f2py2e/cfuncs.py: cfuncsz
#cfuncs#

z"See f2py2e/cfuncs.py: userincludesz
#userincludes#

z"See f2py2e/capi_rules.py: usercodez9
#usercode#

/* See f2py2e/rules.py */
#externroutines#

z#See f2py2e/capi_rules.py: usercode1z
#usercode1#

z%See f2py2e/cb_rules.py: buildcallbackz
#callbacks#

zSee f2py2e/rules.py: buildapiz	
#body#

z&See f2py2e/f90mod_rules.py: buildhooksz
#f90modhooks#

z/See f2py2e/rules.py: module_rules['modulebody']z

z&See f2py2e/common_rules.py: buildhooksz
#commonhooks#

zSee f2py2e/rules.pya�

static FortranDataDef f2py_routine_defs[] = {
#routine_defs#
	{NULL}
};

static PyMethodDef f2py_module_methods[] = {
#pymethoddef#
	{NULL,NULL}
};

#if PY_VERSION_HEX >= 0x03000000
static struct PyModuleDef moduledef = {
	PyModuleDef_HEAD_INIT,
	"#modulename#",
	NULL,
	-1,
	f2py_module_methods,
	NULL,
	NULL,
	NULL,
	NULL
};
#endif

#if PY_VERSION_HEX >= 0x03000000
#define RETVAL m
PyMODINIT_FUNC PyInit_#modulename#(void) {
#else
#define RETVAL
PyMODINIT_FUNC init#modulename#(void) {
#endif
	int i;
	PyObject *m,*d, *s;
#if PY_VERSION_HEX >= 0x03000000
	m = #modulename#_module = PyModule_Create(&moduledef);
#else
	m = #modulename#_module = Py_InitModule("#modulename#", f2py_module_methods);
#endif
	Py_TYPE(&PyFortran_Type) = &PyType_Type;
	import_array();
	if (PyErr_Occurred())
		{PyErr_SetString(PyExc_ImportError, "can't initialize module #modulename# (failed to import numpy)"); return RETVAL;}
	d = PyModule_GetDict(m);
	s = PyString_FromString("$Raevision: $");
	PyDict_SetItemString(d, "__version__", s);
#if PY_VERSION_HEX >= 0x03000000
	s = PyUnicode_FromString(
#else
	s = PyString_FromString(
#endif
		"This module '#modulename#' is auto-generated with f2py (version:#f2py_version#).\nFunctions:\n"
#docs#".");
	PyDict_SetItemString(d, "__doc__", s);
	#modulename#_error = PyErr_NewException ("#modulename#.error", NULL, NULL);
	Py_DECREF(s);
	for(i=0;f2py_routine_defs[i].name!=NULL;i++)
		PyDict_SetItemString(d, f2py_routine_defs[i].name,PyFortranObject_NewAsAttr(&f2py_routine_defs[i]));
#initf2pywraphooks#
#initf90modhooks#
#initcommonhooks#
#interface_usercode#

#ifdef F2PY_REPORT_ATEXIT
	if (! PyErr_Occurred())
		on_exit(f2py_report_on_exit,(void*)"#modulename#");
#endif

	return RETVAL;
}
#ifdef __cplusplus
}
#endif
Z
separatorsforz*\section{Module \texttt{#texmodulename#}}
z
#modnote#
z
#latexdoc#zModule #modulename#
�=�Pz

#restdoc#�bodyz/*eof body*/z/*eof method*/z/*eof externroutines*/z/*eof routine_defs*/z/*eof initf90modhooks*/z/*eof initf2pywraphooks*/z/*eof initcommonhooks*/�Zmodnotez#note#a�
#begintitle#
static char doc_#apiname#[] = "\
#docreturn##name#(#docsignatureshort#)\n\nWrapper for ``#name#``.\
\n#docstrsigns#";
/* #declfortranroutine# */
static PyObject *#apiname#(const PyObject *capi_self,
                           PyObject *capi_args,
                           PyObject *capi_keywds,
                           #functype# (*f2py_func)(#callprotoargument#)) {
	PyObject * volatile capi_buildvalue = NULL;
	volatile int f2py_success = 1;
#decl#
	static char *capi_kwlist[] = {#kwlist##kwlistopt##kwlistxa#NULL};
#usercode#
#routdebugenter#
#ifdef F2PY_REPORT_ATEXIT
f2py_start_clock();
#endif
	if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
		"#argformat##keyformat##xaformat#:#pyname#",\
		capi_kwlist#args_capi##keys_capi##keys_xa#))
		return NULL;
#frompyobj#
/*end of frompyobj*/
#ifdef F2PY_REPORT_ATEXIT
f2py_start_call_clock();
#endif
#callfortranroutine#
if (PyErr_Occurred())
  f2py_success = 0;
#ifdef F2PY_REPORT_ATEXIT
f2py_stop_call_clock();
#endif
/*end of callfortranroutine*/
		if (f2py_success) {
#pyobjfrom#
/*end of pyobjfrom*/
		CFUNCSMESS("Building return value.\n");
		capi_buildvalue = Py_BuildValue("#returnformat#"#return#);
/*closepyobjfrom*/
#closepyobjfrom#
		} /*if (f2py_success) after callfortranroutine*/
/*cleanupfrompyobj*/
#cleanupfrompyobj#
	if (capi_buildvalue == NULL) {
#routdebugfailure#
	} else {
#routdebugleave#
	}
	CFUNCSMESS("Freeing memory.\n");
#freemem#
#ifdef F2PY_REPORT_ATEXIT
f2py_stop_clock();
#endif
	return capi_buildvalue;
}
#endtitle#
z
#routine_def#z#initf2pywraphook#z#declfortranroutine#�docz!#docreturn##name#(#docsignature#)�docshortz&#docreturn##name#(#docsignatureshort#)Zdocsz'"	#docreturn##name#(#docsignature#)\n"
Zneedz
arrayobject.hZ
CFUNCSMESSZMINMAXz#define DEBUGCFUNCSz1\subsection{Wrapper function \texttt{#texname#}}
zk
\noindent{{}\verb@#docreturn##name#@{}}\texttt{(#latexdocsignatureshort#)}
#routnote#

#latexdocstrsigns#
zWrapped function ``#name#``
�-ZcallfortranroutineZroutdebugenterZroutdebugleaveZroutdebugfailureZ	setjmpbufz || �	docstrreq�	docstropt�	docstrout�	docstrcbs�docstrsignsz\n"
"�latexdocstrsignsZlatexdocstrreqZlatexdocstroptZlatexdocstroutZlatexdocstrcbs�kwlistZ	kwlistopt�callfortran�callfortranappend�docsign�
docsignoptz/*decl*/z/*freemem*/Zdocsignshort�docsignoptshortz\nParameters\n----------z$\nOther Parameters\n----------------z\nReturns\n-------z'\nNotes\n-----\nCall-back functions::\nz\noindent Required arguments:z\noindent Optional arguments:z\noindent Return objects:z\noindent Call-back functions:Z	args_capiZ	keys_capiZfunctypez
/*frompyobj*/z/*end of cleanupfrompyobj*/z
/*pyobjfrom*/z/*end of closepyobjfrom*/z/*topyarr*/z/*routdebugleave*/z/*routdebugenter*/z/*routdebugfailure*/z/*callfortranroutine*/�	argformat�	keyformatZneed_cfuncs�	docreturn�returnZreturnformatZrformatZkwlistxaZkeys_xa�xaformat�	docsignxa�docsignxashortZinitf2pywraphookZroutnotez
--- #note#Zapinamezf2py_rout_#modulename#_#name#Zpynamez#modulename#.#name#�_checkz-f2py_rout_#modulename#_#f90modulename#_#name#z##modulename#.#f90modulename#.#name#�voidZdeclfortranroutinezGextern void #F_FUNC#(#fortranname#,#FORTRANNAME#)(#callprotoargument#);z/extern void #fortranname#(#callprotoargument#);Zroutine_defzn	{"#name#",-1,{{-1}},0,(char *)#F_FUNC#(#fortranname#,#FORTRANNAME#),(f2py_init_func)#apiname#,doc_#apiname#},zV	{"#name#",-1,{{-1}},0,(char *)#fortranname#,(f2py_init_func)#apiname#,doc_#apiname#},zE	{"#name#",-1,{{-1}},0,NULL,(f2py_init_func)#apiname#,doc_#apiname#},ZF_FUNCzR	fprintf(stderr,"debug-capi:Fortran subroutine `#fortranname#(#callfortran#)'\n");z4		if (#setjmpbuf#) {
			f2py_success = 0;
		} else {z			Py_BEGIN_ALLOW_THREADSz9				#callstatement#;
				/*(*f2py_func)(#callfortran#);*/z 				(*f2py_func)(#callfortran#);z			Py_END_ALLOW_THREADSz		}zFextern void #F_WRAPPEDFUNC#(#name_lower#,#NAME#)(#callprotoargument#);zm	{"#name#",-1,{{-1}},0,(char *)#F_WRAPPEDFUNC#(#name_lower#,#NAME#),(f2py_init_func)#apiname#,doc_#apiname#},a�
    {
      extern #ctype# #F_FUNC#(#name_lower#,#NAME#)(void);
      PyObject* o = PyDict_GetItemString(d,"#name#");
      PyObject_SetAttrString(o,"_cpointer", F2PyCapsule_FromVoidPtr((void*)#F_FUNC#(#name_lower#,#NAME#),NULL));
#if PY_VERSION_HEX >= 0x03000000
      PyObject_SetAttrString(o,"__name__", PyUnicode_FromString("#name#"));
#else
      PyObject_SetAttrString(o,"__name__", PyString_FromString("#name#"));
#endif
    }
    Z
F_WRAPPEDFUNCzY	fprintf(stderr,"debug-capi:Fortran subroutine `f2pywrap#name_lower#(#callfortran#)'\n");z1	if (#setjmpbuf#) {
		f2py_success = 0;
	} else {z	Py_BEGIN_ALLOW_THREADSz	(*f2py_func)(#callfortran#);z3	#callstatement#;
	/*(*f2py_func)(#callfortran#);*/z	Py_END_ALLOW_THREADSz	}a�
    {
      extern void #F_FUNC#(#name_lower#,#NAME#)(void);
      PyObject* o = PyDict_GetItemString(d,"#name#");
      PyObject_SetAttrString(o,"_cpointer", F2PyCapsule_FromVoidPtr((void*)#F_FUNC#(#name_lower#,#NAME#),NULL));
#if PY_VERSION_HEX >= 0x03000000
      PyObject_SetAttrString(o,"__name__", PyUnicode_FromString("#name#"));
#else
      PyObject_SetAttrString(o,"__name__", PyString_FromString("#name#"));
#endif
    }
    z#ctype#z#rname#,z#pydocsignout#z"\item[]{{}\verb@#pydocsignout#@{}}z--- #resultnote#z�#ifdef USESCOMPAQFORTRAN
	fprintf(stderr,"debug-capi:Fortran function #ctype# #fortranname#(#callcompaqfortran#)\n");
#else
	fprintf(stderr,"debug-capi:Fortran function #ctype# #fortranname#(#callfortran#)\n");
#endif
zW	fprintf(stderr,"debug-capi:Fortran function #ctype# #fortranname#(#callfortran#)\n");
zJextern #ctype# #F_FUNC#(#fortranname#,#FORTRANNAME#)(#callprotoargument#);z2extern #ctype# #fortranname#(#callprotoargument#);z#	#ctype# #name#_return_value={0,0};z	#ctype# #name#_return_value=0;z.	PyObject *#name#_return_value_capi = Py_None;zJ	#callstatement#;
/*	#name#_return_value = (*f2py_func)(#callfortran#);*/
z3	#name#_return_value = (*f2py_func)(#callfortran#);zV	fprintf(stderr,"#routdebugshowvalue#\n",#name#_return_value.r,#name#_return_value.i);z>	fprintf(stderr,"#routdebugshowvalue#\n",#name#_return_value);zE	#name#_return_value_capi = pyobj_from_#ctype#1(#name#_return_value);zpyobj_from_#ctype#1Z	long_longZlong_doublez	#rformat#z,#name#_return_value_capiz,#name#_return_valuez$	#ctype# #name#_return_value = NULL;z!	int #name#_return_value_len = 0;z,#name#_return_value,#name#_return_value_len,z%	#name#_return_value_len = #rlength#;z`	if ((#name#_return_value = (string)malloc(sizeof(char)*(#name#_return_value_len+1))) == NULL) {z6		PyErr_SetString(PyExc_MemoryError, "out of memory");z		f2py_success = 0;z		} else {z8		(#name#_return_value)[#name#_return_value_len] = '\0';z	if (f2py_success) {z		Py_BEGIN_ALLOW_THREADSzj#ifdef USESCOMPAQFORTRAN
		(*f2py_func)(#callcompaqfortran#);
#else
		(*f2py_func)(#callfortran#);
#endif
z		Py_END_ALLOW_THREADSzW		fprintf(stderr,"#routdebugshowvalue#\n",#name#_return_value_len,#name#_return_value);z/	} /* if (f2py_success) after (string)malloc */z!	STRINGFREE(#name#_return_value);Z
STRINGFREEzZ	fprintf(stderr,"debug-capi:Python C/API function #modulename#.#name#(#docsignature#)\n");zW	fprintf(stderr,"debug-capi:Python C/API function #modulename#.#name#: successful.\n");zT	fprintf(stderr,"debug-capi:Python C/API function #modulename#.#name#: failure.\n");Zcomplex_long_doubleZ
unsigned_charZunsigned_shortZunsignedZunsigned_long_longz.	/* Processing auxiliary variable #varname# */z$	fprintf(stderr,"#vardebuginfo#\n");z)	/* End of cleaning variable #varname# */z	#ctype# #varname# = 0;zmath.hz	#varname# = #init#;z
,#varname#z
#outvarname#,z#varrformat#z	#ctype# #varname#;z0	#varname#.r = #init.r#, #varname#.i = #init.i#;z	#ctype# #varname# = NULL;z	int slen(#varname#);zlen..z	#ctype# *#varname# = NULL;z1	npy_intp #varname#_Dims[#rank#] = {#rank*[-1]#};z#	const int #varname#_Rank = #rank#;Zforcomb�_dependzflen(#varname#),�stringz$	/* Processing variable #varname# */z#pydocsign#z\item[]{{}\verb@#pydocsign#@{}}z--- See above.Zdependz"#varname#",z
#varname#,z#varname#=#showinit#,z#varname#_extra_args=(),z#varname#_extra_args,z=#varname#_extra_args : input tuple, optional\n    Default: ()z
#cbdocstr#z\item[] #cblatexdocstr#z}\item[]{{}\verb@#varname#_extra_args := () input tuple@{}} --- Extra arguments for call-back function {{}\verb@#varname#@{}}.z$	PyObject *#varname#_capi = Py_None;z)	PyTupleObject *#varname#_xa_capi = NULL;z+	PyTupleObject *#varname#_args_capi = NULL;z 	int #varname#_nofargs_capi = 0;z!	#cbname#_typedef #varname#_cptr;z"#varname#_extra_args",�OzO!z,&#varname#_capiz!,&PyTuple_Type,&#varname#_xa_capiz(setjmp(#cbname#_jmpbuf))z#varname#_cptr,z#cbname#zsetjmp.hz�if(F2PyCapsule_Check(#varname#_capi)) {
  #varname#_cptr = F2PyCapsule_AsVoidPtr(#varname#_capi);
} else {
  #varname#_cptr = #cbname#;
}
a�if (#varname#_capi==Py_None) {
  #varname#_capi = PyObject_GetAttrString(#modulename#_module,"#varname#");
  if (#varname#_capi) {
    if (#varname#_xa_capi==NULL) {
      if (PyObject_HasAttrString(#modulename#_module,"#varname#_extra_args")) {
        PyObject* capi_tmp = PyObject_GetAttrString(#modulename#_module,"#varname#_extra_args");
        if (capi_tmp)
          #varname#_xa_capi = (PyTupleObject *)PySequence_Tuple(capi_tmp);
        else
          #varname#_xa_capi = (PyTupleObject *)Py_BuildValue("()");
        if (#varname#_xa_capi==NULL) {
          PyErr_SetString(#modulename#_error,"Failed to convert #modulename#.#varname#_extra_args to tuple.\n");
          return NULL;
        }
      }
    }
  }
  if (#varname#_capi==NULL) {
    PyErr_SetString(#modulename#_error,"Callback #varname# not defined (as an argument or module #modulename# attribute).\n");
    return NULL;
  }
}
a	#varname#_nofargs_capi = #cbname#_nofargs;
	if (create_cb_arglist(#varname#_capi,#varname#_xa_capi,#maxnofargs#,#nofoptargs#,&#cbname#_nofargs,&#varname#_args_capi,"failed in processing argument list for call-back #varname#.")) {
		jmp_buf #varname#_jmpbuf;z�		fprintf(stderr,"debug-capi:Assuming %d arguments; at most #maxnofargs#(-#nofoptargs#) is expected.\n",#cbname#_nofargs);
		CFUNCSMESSPY("for #varname#=",#cbname#_capi);zE		fprintf(stderr,"#vardebugshowvalue# (call-back in C).\n",#cbname#);z�		CFUNCSMESS("Saving jmpbuf for `#varname#`.\n");
		SWAP(#varname#_capi,#cbname#_capi,PyObject);
		SWAP(#varname#_args_capi,#cbname#_args_capi,PyTupleObject);
		memcpy(&#varname#_jmpbuf,&#cbname#_jmpbuf,sizeof(jmp_buf));a		CFUNCSMESS("Restoring jmpbuf for `#varname#`.\n");
		#cbname#_capi = #varname#_capi;
		Py_DECREF(#cbname#_args_capi);
		#cbname#_args_capi = #varname#_args_capi;
		#cbname#_nofargs = #varname#_nofargs_capi;
		memcpy(&#cbname#_jmpbuf,&#varname#_jmpbuf,sizeof(jmp_buf));
	}ZSWAPZcreate_cb_arglistz3	fprintf(stderr,"#vardebugshowvalue#\n",#varname#);z&#varname#,zW	f2py_success = try_pyarr_from_#ctype#(#varname#_capi,&#varname#);
	if (f2py_success) {z/	} /*if (f2py_success) of #varname# pyobjfrom*/ztry_pyarr_from_#ctype#z8	if (#varname#_capi == Py_None) #varname# = #init#; elsez	if (#varname#_capi != Py_None)z�		f2py_success = #ctype#_from_pyobj(&#varname#,#varname#_capi,"#pyname#() #nth# (#varname#) can't be converted to #ctype#");
	if (f2py_success) {z`		#varname# = (#ctype#)PyObject_IsTrue(#varname#_capi);
		f2py_success = 1;
	if (f2py_success) {z%	} /*if (f2py_success) of #varname#*/z#ctype#_from_pyobjzA	fprintf(stderr,"#vardebugshowvalue#\n",#varname#.r,#varname#.i);z,#varname#_capizY		f2py_success = try_pyarr_from_#ctype#(#varname#_capi,&#varname#);
		if (f2py_success) {z0		} /*if (f2py_success) of #varname# pyobjfrom*/zT	if (#varname#_capi==Py_None) {#varname#.r = #init.r#, #varname#.i = #init.i#;} elsez0	}  /*if (f2py_success) of #varname# frompyobj*/z1	#varname#_capi = pyobj_from_#ctype#1(#varname#);zslen(#varname#),zC	fprintf(stderr,"#vardebugshowvalue#\n",slen(#varname#),#varname#);z�	slen(#varname#) = #length#;
	f2py_success = #ctype#_from_pyobj(&#varname#,&slen(#varname#),#init#,#varname#_capi,"#ctype#_from_pyobj failed in converting #nth# `#varname#' of #pyname# to C #ctype#");
	if (f2py_success) {z?		STRINGFREE(#varname#);
	}  /*if (f2py_success) of #varname#*/zV	f2py_success = try_pyarr_from_#ctype#(#varname#_capi,#varname#);
	if (f2py_success) {z*	PyArrayObject *capi_#varname#_tmp = NULL;z	int capi_#varname#_intent = 0;z,capi_#varname#_tmpz"	int capi_overwrite_#varname# = 1;z"overwrite_#varname#",�iz,&capi_overwrite_#varname#zoverwrite_#varname#=1,zoverwrite_#varname#,z9overwrite_#varname# : input int, optional\n    Default: 1zH	capi_#varname#_intent |= (capi_overwrite_#varname#?0:F2PY_INTENT_COPY);z"	int capi_overwrite_#varname# = 0;zoverwrite_#varname#=0,z9overwrite_#varname# : input int, optional\n    Default: 0z	#setdims#;z#	capi_#varname#_intent |= #intent#;zl	capi_#varname#_tmp = array_from_pyobj(#atype#,#varname#_Dims,#varname#_Rank,capi_#varname#_intent,Py_None);zs	capi_#varname#_tmp = array_from_pyobj(#atype#,#varname#_Dims,#varname#_Rank,capi_#varname#_intent,#varname#_capi);z�	if (capi_#varname#_tmp == NULL) {
		if (!PyErr_Occurred())
			PyErr_SetString(#modulename#_error,"failed in converting #nth# `#varname#' of #pyname# to C/Fortran array" );
	} else {
		#varname# = (#ctype# *)(PyArray_DATA(capi_#varname#_tmp));
z!	if (#varname#_capi == Py_None) {z	{z		#ctype# capi_c;a�		int *_i,capi_i=0;
		CFUNCSMESS("#name#: Initializing #varname#=#init#\n");
		if (initforcomb(PyArray_DIMS(capi_#varname#_tmp),PyArray_NDIM(capi_#varname#_tmp),1)) {
			while ((_i = nextforcomb()))
				#varname#[capi_i++] = #init#; /* fortran way */
		} else {
			if (!PyErr_Occurred())
				PyErr_SetString(#modulename#_error,"Initialization of #nth# #varname# failed (initforcomb).");
			f2py_success = 0;
		}
	}
	if (f2py_success) {z=	}  /*if (capi_#varname#_tmp == NULL) ... else of #varname#*/zY	if((PyObject *)capi_#varname#_tmp!=#varname#_capi) {
		Py_XDECREF(capi_#varname#_tmp); }z!		Py_XDECREF(capi_#varname#_tmp);z+	}  /*if (f2py_success) of #varname# init*/z3	fprintf(stderr,"debug-capi:Checking `#check#'\n");zN	CHECKSCALAR(#check#,"#check#","#nth# #varname#","#varshowvalue#",#varname#) {z	} /*CHECKSCALAR(#check#)*/ZCHECKSCALAR�_breakzN	CHECKSTRING(#check#,"#check#","#nth# #varname#","#varshowvalue#",#varname#) {z	} /*CHECKSTRING(#check#)*/ZCHECKSTRINGZ
CHECKARRAYz2	CHECKARRAY(#check#,"#check#","#nth# #varname#") {z	} /*CHECKARRAY(#check#)*/ZCHECKGENERICz4	CHECKGENERIC(#check#,"#check#","#nth# #varname#") {z	} /*CHECKGENERIC(#check#)*/cCsY	td|d�i}tdd�}tj|�}tdti|�}g}g}xj|dD]^}d}	x[|dD]O}
|
ddks�td	�qzx)|
dD]}|d|kr�|}	Pq�WqzW|	s�td
|�qc|	g}d|	krQxU|	dj�D]C\}
}tj	|	�}|d=|
|d<||d<|j
|�q
Wxm|D]e}	t|	�\}}|r�t|	�r�|j
|�n
|j
|�t
||�}t||�}qXWqcWtj|�\}}|r�|j
|�t
||�}t||�}tj|�\}}|r3|j
|�t
||�}t||�}x;|D]3}tj||d
|d�}t||�}qXWtj�}i}x�|j�D]�}g||<xv||D]j}
d}|
tjkr�tj|
}n.|
tjkrtj|
}n|
tjkr2tj|
}n�|
tjkrQtj|
}n�|
tjkrptj|
}n�|
tjkr�tj|
}n�|
tjkr�tj|
}nt|
tjkr�tj|
}nU|
tjkr�tj|
}n6|
tjkrtj|
}ntdt|
��q�||j
|�q�Wq�W|j
|�xW|D]O}d|krq|d|�s}d|krOt
|||�}t||�}qOWt
t |�}t!j"j#t$d|d�}||d<t%|d�}|j&|dj'dd<��|j(�td|d|f�t$dr�t!j"j#t$d|dd�}t%|d�}|j&d�|j&dj#|d��|j(�td t$d|df�t$d!rtt!j"j#t$d|dd"�}||d#<t%|d�}|j&d$t�d%t$kr|j&d&�|j&dj#|d'��d%t$krN|j&d(�|j(�td)t$d|df�|r�t!j"j#t$d|d*�}||d+<t%|d�}|j&d,�|j&d-t�|j&d.�g}x�d/j#|�dj)d�D]�}|rr|d0dkrrxAt*|�d1kr]|j
|dd1�d2�|d1d�}qW|j
|d�q�|j
|d�q�Wdj#|�j'd3d�}|j&|�|j(�td4|�|rU	t!j"j#t$dd5|d�}||d+<t%|d�}|j&d6�|j&d7t�|j&d8�g}x�d/j#|�dj)d�D]�}t*|�d9kr	|d0dkr	|j
|dd9�d:�|d9d�}xAt*|�d1kr�|j
|dd1�d:�|d1d�}q�W|j
|d�qU|j
|d�qUWdj#|�j'd3d�}|j&|�|j(�td;|�|S)=z
    Return
    z	Building module "%s"...
�nameN�f2py_versionZ
interfacedr^�blockZ	interfacez1buildmodule: Expected interface block. Skipping.
zLbuildmodule: Could not found the body of interfaced routine "%s". Skipping.
�entry�argsZuser_zbuildmodule: unknown need %s.
rvZ	buildpathZcoutputZcsrc�wr[�	�� z&	Wrote C/API module "%s" to file "%s"
Z	dorestdoc�
modulenamezmodule.restz.. -*- rest -*-
rZrWz8	ReST Documentation is saved to file "%s/%smodule.rest"
Z
dolatexdocz
module.texZltxz6%% This file is auto-generated with f2py (version:%s)
Z
shortlatexzO\documentclass{article}
\usepackage{a4wide}
\begin{document}
\tableofcontents

rVz\end{document}z2	Documentation is saved to file "%s/%smodule.tex"
Zf2py_wrapper_output�fsrczC     -*- fortran -*-
z8C     This file is autogenerated with f2py (version:%s)
z<C     It contains Fortran 77 wrappers to fortran functions.
z

r�Bz
     &z
     &
z'	Fortran 77 wrappers are saved to "%s"
z%s-f2pywrappers2.f90z!     -*- f90 -*-
z8!     This file is autogenerated with f2py (version:%s)
z<!     It contains Fortran 90 wrappers to fortran functions.
�Hz&
     &z'	Fortran 90 wrappers are saved to "%s"
z  )+rB�defmod_rulesrEZmodsign2mapr
r~r�items�copy�deepcopy�append�buildapir-rrGZ
buildhooksrIrHZbuildusevarsrFZ	get_needs�keysrPrQrOrRrSrTrUrYrX�repr�module_rules�os�path�join�options�open�writerC�close�split�len)�mZum�retZ	mod_rules�vrd�rdZfuncwrappersZ
funcwrappers2�n�nbZbi�bZnb_list�k�aZnb1Zapi�wrap�arZcr�mr�uZneeds�code�c�r�fn�fZwn�lines�l�r��C/opt/alt/python35/lib64/python3.5/site-packages/numpy/f2py/rules.py�buildmodule�sD
		









(


	


	




#

	

#"

r��str�Znd�r���th�����	c
Cs�tj|�\}}t|�\}}|t_|d}t|�retd|d|df�ntd|d�tj|�}ti|�}xWt	D]O}d|kr�|d|�s�d|kr�t
|||�}t||�}q�Wd<\}	}
i}xO|D]G}tj|||�}t||�r=t
}
n�t}
t||�s�t||�s�|	d}	t|	�t|	d	d
|d<q�|
d}
t|
�t|
d	d|d<n
d
|d<|||<x{|
D]s}d|kr�q�d|kr
|d||�sd|kr�t
||||�}t||�}d|kr�Pq�WqWx
|D]}t||�ryt
}
nt}
||}x{|
D]s}d|kr�q�d|kr�|d||�s�d|kr�t
||||�}t||�}d|kr�Pq�Wd||krZxE||dD]5}||d<t
t|||�}t||�}q&WqZWt|dt�r�|dj�t|dt�r�|dj�ttdd|dd|dd|di��|d<ttdd|dd|di��}|dkr7ttdd|di��|d<n#tdd|dd|i�|d<|djdd �|d!<|d!jd"d#�|d!<ttd$d%|d%d&|d&i��}t|d&�dkr�ttd'd%|d%d&|d&i��|d(<n
||d(<||d%<t|d)t�rKttd*d)|d)i��d+|d)<g|d,<g|d-<x�d.d/d0d1gD]�}||kr�t||t�r�|d,|||d,<d2|}||krrt||t�rr|d-||dd�d3g||dd�d4g|d-<qrW|d5s.|d6r�|d7}t|t�rW|jd8�n;t|t�s�tt|t|�f���|d7d87<t
t|�}t|�r�td9|d:�ntd;|d:�||fS)=N�varsz,			Constructing wrapper function "%s.%s"...
r�r}z(		Constructing wrapper function "%s"...
rvrrrz	 argument�nthz keywordZhiddenrxr|�checkrLrNz #docsign##docsignopt##docsignxa#rlrmrtZdocsignaturez#docsignopt##docsignxa#rurnr_z	#docsign#Zdocsignatureshortz#docsign#[#docsignopt#]�_z\_Zlatexdocsignatureshort�,z, z #callfortran##callfortranappend#rjrkz##callfortran# 0,#callfortranappend#Zcallcompaqfortranrqz#docreturn#z = rgrhrcrdrerfZlatexz\begin{description}z\end{description}rprsro�|z			  %s
raz		  %s
)rr)rJZassubrr
rE�depargsr-rBZroutsign2mapr
�
rout_rulesrZsign2mapr�	aux_rules�	arg_rulesr"r.r��stnd�check_rules�
isinstance�list�reverserDrCr�r��str�AssertionError�type�
routine_rules)Zroutr�r�r��varr�r�r�r�r�ZnthkZsavevrdr�Z_rulesr�ZoptargsZcfsr�ror�r�r�r�Bs�	

(
	
#
#


,	
	

,
	

	
#
	 	'

$


2
r�)`�__doc__�
__future__rrrrr_�versionr~r��timer�Zauxfuncsrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJr�Zsepdictr��asctime�	localtimer�r�r�r�Ztypedef_need_dictr�r�r�r�r�r�r�r�r�r��<module>3s�	�y	k�		!7				'	*					!						!					'	'									!																																																
											�$