HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/numpy/f2py/__pycache__/capi_maps.cpython-310.pyc
o

���gcw�@srdZddlmZejZddlZddlZddlZddlm	Z	ddlm
Z
ddlmZm
Z
mZddlTgd	�ZgZiaiZid
d�dd�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd�Zid
d�dd�dd�d
d �dd!�dd �dd"�dd#�dd$�dd%�dd&�d'd(�dd)�d*d+�dd,�dd-�dd-�d.d.d/��Zid
d0�dd1�dd2�d
d3�dd4�dd3�dd5�dd6�dd7�dd8�dd9�d'd:�dd;�d*d<�dd=�dd>�dd?�d@dAd/��Zd0d1d3d3d5d7d9d:dBdBdBdCdAdD�
Zddd
dddE�ddddddddd*dF�	ddddddG�ddddddE�dd
ddddH�dIdidId
idId
idJ�ae�e
�e�e�etee�\aZe�t�ZgadKdL�Zid
dM�ddM�ddN�d
dO�ddO�ddP�ddQ�ddR�ddO�ddS�ddT�d'dU�ddT�ddV�ddV�ddW�ddX�ddYi�Z dZd[�Z!d\d]�Z"d^d_�Z#dvd`da�Z$dbdc�Z%ddde�Z&dfdg�Z'dhdi�Z(djdk�Z)dldm�Z*dndo�Z+dwdpdq�Z,drds�Z-dtdu�Z.dS)xa
Copyright 1999 -- 2011 Pearu Peterson all rights reserved.
Copyright 2011 -- present NumPy Developers.
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.
�)�__version__�N)�markoutercomma)�cb_rules)�iso_c_binding_map�isoc_c2pycode_map�iso_c2py_map)�*)
�getctype�getstrlength�
getarrdims�getpydocsign�
getarrdocsign�getinit�sign2map�routsign2map�modsign2map�cb_sign2map�cb_routsign2map�common_sign2map�process_f2cmap_dict�double�float�long_double�char�int�signed_char�
unsigned_char�short�unsigned_short�long�	long_long�unsigned�
complex_float�complex�complex_double�complex_long_double�string�	character�bytes�
NPY_DOUBLE�	NPY_FLOAT�NPY_LONGDOUBLE�NPY_BYTE�	NPY_UBYTE�	NPY_SHORT�
NPY_USHORT�NPY_INT�NPY_UINT�NPY_LONG�
unsigned_long�	NPY_ULONG�NPY_LONGLONG�unsigned_long_long�
NPY_ULONGLONG�
NPY_CFLOAT�NPY_CDOUBLE�
NPY_STRING)r'r(�d�f�g�b�B�h�H�i�I�l�L�q�Q�F�D�G�S�c�N�y)
rrrrrrr r!r#r%r&r'r()��4�8�12�16)	rP�1�2rQrR�-1z-2z-4z-8)rPrRrT�24�32)rPrUrVrQrRrP)�real�integerr$�complexkind�logicalzdouble complexzdouble precision�bytec
Cs�t�t�a|durd}tj�|�sdSz5td�|��t	|��}t
|����ii�}Wd�n1s4wYt
t|td�\aatd�WdStya}z
td|�WYd}~dSd}~ww)Nz.f2py_f2cmapzReading f2cmap from {!r} ...
Tz1Successfully applied user defined f2cmap changes
z;Failed to apply user defined f2cmap changes: %s. Skipping.
)�copy�deepcopy�f2cmap_default�
f2cmap_all�os�path�isfile�outmess�format�open�eval�read�lowerr�c2py_map�
f2cmap_mapped�	Exception�errmess)�f2cmap_filer=r<�msg�rr�?/usr/local/lib/python3.10/dist-packages/numpy/f2py/capi_maps.py�load_f2cmap_file�s 

���rtz%gz%Lgz%dz%hhuz%hdz%huz%uz%ldz%luz(%g,%g)z	(%Lg,%Lg)z\"%s\"z'%c'cCs�d}t|�r)d|vr|d}n|d}||dvr!t|d|�Std|�|St|�r/|St|�r5dSt|�r;dSd|vr�|d��tvr�|d��}t|}|d	}d
|vr�d|d
vr�z||d
d}W|Sty�td|dd|d
df�Y|Swd
|d
vr�|d
tvr�t|d
}z||d
d
}W|Sty�|tvr�t|}z|t	|d
d
�}WY|Sty�td||d
d
|||d
d
t
��f�YnwY|Sw|St|�s�td|�|S)z
    Determines C type
    �void�result�name�vars�,getctype: function %s has no return value?!
r(r'�typespecrP�kindselectorr	z$getctype: "%s %s %s" not supported.
�kindz}getctype: "%s(kind=%s)" is mapped to C "%s" (to override define dict(%s = dict(%s="<C typespec>")) in %s/.f2py_f2cmap file).
z2getctype: No C-type found in "%s", assuming void.
)
�
isfunctionr
ro�issubroutine�ischaracter_or_characterarray�isstring_or_stringarrayrkrb�KeyError�strrc�getcwd�
isexternal)�var�ctype�arz�f2cmaprrrrrsr
�sp
#����
���
����r
cCst�dd|�}|S)a^Rewrite Fortran expression as f2py supported C expression.

    Due to the lack of a proper expression parser in f2py, this
    function uses a heuristic approach that assumes that Fortran
    arithmetic expressions are valid C arithmetic expressions when
    mapping Fortran function calls to the corresponding C function/CPP
    macros calls.

    z\blen\b�	f2py_slen)�re�sub)�exprrrrrrs�f2cexpr�sr�cCs�t|�r%d|vr
|d}n|d}||dvrt|d|�Std|�t|�s1tdt|��d}d|vrN|d}d|vrD|d}n
d	|vrNt|d	�}t�d
|�sZt�d|�rht|�rftdt|��d
}|S)Nrvrwrxz0getstrlength: function %s has no return value?!
z;getstrlength: expected a signature of a string but got: %s
rU�charselectorr	�lenz\(\s*(\*|:)\s*\)z(\*|:)zMgetstrlength:intent(hide): expected a string with defined length but got: %s
rW)	�isstringfunctionrro�isstring�reprr�r��match�
isintent_hide)r�r�r�rrrrrsr�s2

�
�rc	Csni}t|�rt|�st|�|d<d|d<d|d<|St|�r,d|d<d|d<d|d<|St|��r5t�|d�}d�|�|d<ztt|d��|d<Wn	tyTYnwd	�|�|d<tt	|��|d<tt	|�d
g�dd
�|d<t
t	|��D]9}g}||tvr�||g}ntD]}t�
d
|||�r�|�|�q�|D]}t�|�t�|�kr�d||<nq�qyd\|d<}|D]}|d}|dvr�d|d||f|d<q�|dr�|ddd
�|d<d\|d<}|dD]<}|d}|dvr�d|d||f|d<q�t|��rtd|�d|d|df|d<q�|�r%tdt|�t|�f�q�|d�r5|ddd
�|d<|S)N�size�0�rankrP�dimsrU�	dimensionr	�,���rz	rank*[-1]z.*?\b%s\b.*)rPr��setdims)r	�:z(*)z(:)z%s#varname#_Dims[%d]=%s,�	cbsetdimsz?getarrdims:warning: assumed shape array, using 0 instead of %r
rz]getarrdims: If in call-back function: array argument %s must have bounded dimensions: got %s
)r��isarrayr�isscalarr_�joinr�rirnr��range�depargsr�r��append�index�isintent_inrfro)	r�r��verbose�ret�dimrC�v�var<rrrrrsrs�5�1
��
���

��
�
�
���
rcCs�t|�r(d|vr
|d}n|d}||dvr t||d|�Std|�dS||}}d}t|�r6d}nt|�r<d}|}t|�rY|d	D]}|dd
�dkrX|d
d�}nqFd}t|�}	t|�rnt||�\}}
d|
}t	|�r�t|�r�d
||t
|	t|	|f}n
d||t
|	|f}d|t
|	f}||fSt|�r�t|�r�d||t
|�|f}n
d||t
|�|f}d|t
|�f}||fSt|��r|d}tt|��}d|||t|	d�|�|f}||kr�d||t|	d�|�f}||fSd||t|	d�|�|f}||fSt|��rDd}
|tv�r8t|tv�r8dtt|v�r8tt|d}
|
|k�s6d|
}
nd}
d||
f}|}||fStd|�||fS)Nrvrwrxry�rPrPrP�inputz	in/output�intent��out=z, optional\n    Default: %sz%s : %s rank-0 array(%s,'%s')%sz%s : %s %s%sz%s : %sz*%s : %s rank-0 array(string(len=%s),'c')%sz%s : %s string(len=%s)%sz%s : string(len=%s)r�z.%s : %s rank-%s array('%s') with bounds (%s)%sr��)%s : rank-%s array('%s') with bounds (%s)z8%s : rank-%s array('%s') with bounds (%s) and %s storage�argnamez => %sz%s : call-back function%sz7getpydocsign: Could not resolve docsignature for "%s".
)r}r
ror��isintent_inout�isintent_outr
�hasinitvaluerr�rl�c2pycode_mapr�rr�r�r�r�r��lcb_map�lcb2_map)r�r��af�sig�sigout�opt�out_a�k�initr��showinitr�r��uarrrrrsr
Vs�

��#���
��
����
�*

��r
cCs�t|�}t|�rt|�sd|t|�f}|St|�r'd|t|t|f}|St|�rB|d}tt|��}d||t|d�	|�f}|S)Nz%%s : rank-0 array(string(len=%s),'c')z%s : rank-0 array(%s,'%s')r�r�r�)
r
r�r�rr�rlr�r�r�r�)r�r�r�r�r�r�rrrrrsr�s*��
�	���rcCsDt|�r	d\}}nd\}}t|�r�|d}|}t|�st|�rti}z1|d}d|vr<t|dd���d�\|d<|d	<nt|ii�}t|j�t|j	�|d<|d	<Wnt
yatd
||f��wt|�rpd|d|d	f}||fSt|�r�|s~d\}}|dd
kr�d|dd��
dd�}|ddkr�d|dd�}||fS)N)z""z''r��=r�rr��@,@�init.r�init.izMgetinit: expected complex number `(r,i)' but got `%s' as initial value of %r.z (capi_c.r=%s,capi_c.i=%s,capi_c)r�'z"%s"�"z\"z'%s')r�r��	iscomplex�iscomplexarrayr�splitrir�rZ�imagrn�
ValueErrorr��replace)r�r�r�r�r�r�rrrrrsr�sJ

���
���	�rcCsDt|�st|�rt|�}|d�d|�}|St|�st|�r dSdS)Nr��f2py_lenrU)r��
isstringarrayr�get�ischaracter�ischaracterarray)r��elsizerrrrrs�
get_elsize�sr�c
Cs~|}t|�r|dD]}|dd�dkr|dd�}nq
||t|�d�}g}t��D]\}}||�r:|�d|�q+|rEd�|�|d<nd|d<t|�rRd	|d
<n|dtvrat|d|d
<nd|d
<t||�\|d
<|d<t	|�r�t
|�r�t|�s�t|d
dd���d�\|d<|d<t
|�r�||d<|tvr�t||d<tt|d|d<tt|d|d<tt|d|d<tt|d|d<n||d<td|tt���f�t|�r�t|�|d<t|�r�t|t||��}t�|d�}|dtv�rt|d|d<t|�|d <t|��r�gt�d!�t�d"�t�d#�t�d$�t�d%�t�d&�t
�d'�t t!t"t
���d(�t�d)�t�d*�t#�d+�t$�d,�t%�d-�t t&t"t%���d.�t
�d/�t'�d/�t(�d0�}	g}
t)d1t*|	�d2�D]}|	||��r}|
�|	|d��qkt|��r�|
�d3||df�t|��r�d4�t+d5d6�|d|��}|
�d7|�t
|��r�d8||dd4�|
�f|d9<nd:|d||dd4�|
�f|d9<t!|��r�|dt,v�r�d;|t,|df|d<<t|��r�d=||f|d<<t
|��r�d>||d<<|dt,v�rd?|t,|df|d@<dAt,|d|dB<t|��r'dC||f|d@<t-||�\|dD<|dE<t.|��r=|dF|dF<|S)Gz�
    varname,ctype,atype
    init,init.r,init.i,pytype
    vardebuginfo,vardebugshowvalue,varshowvalue
    varrformat

    intent
    r�Nr�r�)�varname�
outvarnamer�zF2PY_%s�|�F2PY_INTENT_INrN�
varrformatr��Or�r�rr�r�r�r��	cbnamekey�cbname�
maxnofargs�
nofoptargs�docstr�cbdocstr�latexdocstr�
cblatexdocstrz5sign2map: Confused: external %s is not in lcb_map%s.
�lengthr��atyper�r��output�inoutput�required�optional�hiddenzcomplex scalar�scalarr'�arrayz
complex arrayzstring arrayzcomplex function�function�callback�	auxiliaryr�zslen(%s)=%sr�cSsd||fS)Nz%s|%srr)�xrOrrrrrs�<lambda>1szsign2map.<locals>.<lambda>zdims(%s)zdebug-capi:%s=>%s:%s�vardebuginfozdebug-capi:%s %s=%s:%s�debug-capi:%s=%s�vardebugshowvalue�"debug-capi:slen(%s)=%%d %s=\"%%s\"zdebug-capi:%s=%%pz#name#:%s=%s�varshowvalue�%s�showvalueformatz#name#:slen(%s)=%%d %s=\"%%s\"�	pydocsign�pydocsignout�note)/r�r
�
isintent_dict�itemsr�r�r��c2buildvalue_maprr�r�rr�r�r�r�ro�list�keysr�r�
dictappendrr_�
c2capi_mapr��	debugcapir�r��
isrequired�
isoptionalr��l_andr��l_notr�r��iscomplexfunctionr}�isintent_callback�isintent_auxr�r��map�cformat_mapr
�hasnote)
r�r�r�r�r��intent_flagsr=�sr��il�rlrC�ddimrrrrrsr�s*	��
���
������������������������	�	�
�
���
�

�
�
�

�

�


rc	Cs�|d}t|�}||�dd�|��|��t|�td|�||��t|�p%dt|�p*dt|�p/dd�}d|vr;d|d<nd|d<d|vrHd	|d
<nd
|d
<iad|vr�|d�	�D]@}|t
jvr�t
j|D]3}|d}d
|d|vr�|d|d
�	�D]}|d|d
||dkr�|}nq||dt|<qdqXnd|vr�|dr�td|dt
|d�f�t|t�p�d|d<t|��rbd|vr�|d}n|d}||d<t||�\|d<|d<t|d|�|d<t|�r�|d|d|d<dg|d|d<|dtv�rt|d|d<nd|d<tdt
|d��t|��r>|dtv�r1d|t|df|d<t|��r>d ||f|d<t|��rbt|d|�|d!<|d!d"k�rbtd#t
|d��d$|d!<t|��rr|d|d<dg|d<|S)%zV
    name,NAME,begintitle,endtitle
    rname,ctype,rformat
    routdebugshowvalue
    rw�_�\_�	end of %srP)rw�texname�
name_lower�NAME�
begintitle�endtitle�fortranname�FORTRANNAME�
callstatement�usercode�	usercode1�	F_FUNC_US�F_FUNC�F_WRAPPEDFUNC_US�
F_WRAPPEDFUNC�userrr�	externalszMroutsign2map: Confused: function %s has externals %s but no "use" statement.
�callprotoargumentrv�rnamer�r�rxr�r��
resultnote�See elsewhere.�rformatr�z.routsign2map: no c2buildvalue key for type %s
r��routdebugshowvaluer��rlengthrWzzroutsign2map: expected explicit specification of the length of the string returned by the fortran function %s; taking 10.
�10)�getfortrannamer�rk�upper�gentitle�getcallstatement�getusercode�getusercode1r�rr�cb_mapror��getcallprotoargumentr}r
r
�
hasresultnoter�rrr�rr
)	�routrw�fnamer��u�un�lnr�r�rrrrrsrMs�




�


���
�


�

�

�

�

rcCs�t|�r|d|d��|d�dd�d�}n|d|d��|d�dd�d�}t|�p.g|d<t|�r;|d|d<t|�p@d|d	<t|�pHd|d
<|dr\t|dd�pXd|d
<nd|d
<t|�ped|d<d|vrr|d|d<d|vr||d|d<|S)z
    modulename
    rwrr)�
f90modulename�
F90MODULENAME�texf90modulename)�
modulename�
MODULENAME�
texmodulename�restdocr�rPrr�bodyr�interface_usercode�pymethoddef�coutput�f2py_wrapper_output)�ismoduler/r��
getrestdocr
r2r3�getpymethoddef)�mr�rrrrrsr�s.
�
�rcCs�d|i}|d|d<t|�|d<|dtvr$t|d|d<t|�|d<|dtvr4dt|d|d<t|�r@t|t||��}t||�\|d<|d	<t|�rZ|d
|d
<dg|d
<|S)Nr��	varname_ir�r�r�r�r�r�r�r�r))	r
rr�rr�rrr
r
)r�r�r�r�rrrrrsr�s
rcCs�d|d|fdd�}t|�r0d|dvrd}nd}d||d��|d��f|d	<d
|d<n
|d|d	<d|d<|d|d<t|d�|d
<td|d�|d<t|�|d<d|d<|ddkrgd|d<n|d|d<|ddkr�t|�r|d|d<nd|d<|dtvr�dt|d|d<t|�r�t|�|d<t	|�r�d|vr�|d}n|d}t
|d|�r�|d|d|d<dg|d|d<||d<t||�\|d<|d <t|�r�d!|d<nt
|�r�|d|d<dg|d<d"}d"}d#|v�rd|v�r|d#D]}|d|}tt
t�|��r|d$}t|��r|d$}q�t|�|d%<t|�|d&<t
|��rCt	|��rCd|v�rC|d|d'<dg|d<|S)(z\
    name,begintitle,endtitle,argname
    ctype,rctype,maxnofargs,nofoptargs,returncptr
    zcb_%s_in_%srwrP)rw�
returncptrrr r!z	%s(%s,%s)�callbackname�extern�staticr�rrrr�ru�rctyper'z3
#ifdef F2PY_CB_RETURNCOMPLEX
return_value=
#endif
rMz
return_value=r�r��	strlengthrvrxr�r)r'r�r�z8
#ifdef F2PY_CB_RETURNCOMPLEX
#ctype#
#else
void
#endif
r�argsrr�r��routnote)r	rkr/r0r
rrr�rr}r
r
�l_orr�r�rr�)r7�umr�r!r��nofargsr�r�rrrrrsr�s~�

��



�

�
rcCs�|t|�d�}t|�rd|d<|dtvr#t|d|d<t|�|d<|dtvr3dt|d|d<t|�r@t|t||��}nt|�rNt	|�|d<d	|d
<t
||�\|d<|d<t|�rh|d
|d
<dg|d
<t||�|d<|S)N)r�r�rr�r�r�r�r�r�rUr�r�r�r�r)�	arrdocstr)
r
r�rr�rr�rrr�rr
r
r)r�r�r�rrrrrsrs&
r)r)N)/�__doc__rPr�version�f2py_versionr_r�rc�crackfortranrr�	_isocbindrrr�auxfuncs�__all__r�r�r�rlrr�r�rb�updaterrr`rarmrtrr
r�rrr
rrr�rrrrrrrrrrrrrs�<module>s���������	�
���
������������	�
���
�������������	�
���
������������


��������	�
���
�����3
=J#jQ
R