zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
U
P±d`„ã@s’dZddlmZejZddlZddlZddlZddlm    Z    ddlm
Z
ddl Tdd    d
d d d ddddddg Z dZ gZiaiZddddddddddddddddddœZdddddd d!d"d#d$d%d%d&d'd'dd(d)œZe rúddd*d dd d!d"d#d$d%d+d,d-d&d'd'ddd.œZd/d0d/d1d1d2d3d4d5d6d7d8d9d:d:d;d;d<œZe rTd/d0d=d2d>d2d?d@d5dAd7d8dBdCd9d:dDdEd;d.œZd/d0d2d2d?d5d7d8dFdFdFdGd;dHœ ZdddIdJdJdKœddLdMddNdOdPdQdRdSœ    dTdTdUdVdVdWœdTdTdUdVdVdKœddXdMddNdYœdZdUidZdIidZdXid[œae t¡ZgZd\d]„Zd^d^d_d`d`dadbdcd`dddedfdedgdgdhdidjdkœZdld„Zdmdn„Zdod    „Zd|dpd
„Zdqd „Zdrd „Z dsd „Z!dtdu„Z"dvd„Z#dwd„Z$dxd„Z%d}dyd„Z&dzd„Z'd{d„Z(dS)~a)
 
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/05/06 10:57:33 $
Pearu Peterson
 
é)Ú __version__éN)Úmarkoutercomma)Úcb_rules)Ú*ÚgetctypeÚ getstrlengthÚ
getarrdimsÚ getpydocsignÚ getarrdocsignÚgetinitÚsign2mapÚ routsign2mapÚ modsign2mapÚ cb_sign2mapÚcb_routsign2mapÚcommon_sign2mapTÚfloatÚintÚlongÚcomplexÚstringÚbytes)ÚdoublerÚ long_doubleÚcharÚ signed_charÚ unsigned_charÚshortÚunsigned_shortrrÚ    long_longÚunsignedÚ complex_floatÚcomplex_doubleÚcomplex_long_doublerÚ    characterZ
NPY_DOUBLEZ    NPY_FLOATZ
NPY_STRINGZ    NPY_UBYTEZNPY_BYTEZ    NPY_SHORTZ
NPY_USHORTZNPY_INTZNPY_UINTZNPY_LONGZ
NPY_CFLOATZ NPY_CDOUBLEZNPY_CHAR)rrrrrrrrrr!rr r"r#r$rr%ZNPY_LONGDOUBLEZ    NPY_ULONGZ NPY_LONGLONGZ NPY_ULONGLONG)rrrrrrrrrr!rÚ unsigned_longr Úunsigned_long_longr"r#r$rr%ÚdÚfÚ1ÚbÚsÚwÚiÚuÚlÚLÚFÚDÚc)rrrrrrrrrr!rr r"r#r$rr%ÚgÚBÚhÚHÚIÚqÚQÚGÚSÚNÚy) rrrrrrrr r"r#r$rr%rr)ÚÚ4Ú8Z12Ú16rrr rrr!r')    r@r*Ú2rArBú-1z-2z-4z-8r"r#r$)r@rBrCZ24Ú32r)r@r*rDrArBr@)ÚrealÚintegerrZ complexkindÚlogicalzdouble complexzdouble precisionÚbytec CsÆt t¡a|dkr&d}tj |¡s&dSzhtd |¡ƒt    |dƒ}t
|  ¡  ¡iiƒ}W5QRX|  ¡D]6\}}| ¡D]}||||  ¡<qz||||  ¡<qj| ¡D]Ú}|tkr¾it|<|| ¡D]¸}|||tkrT|t|krtd||t|||||fƒ|||t||<td|||||fƒt |||¡qÊtd||||||||tt ¡ƒfƒqÊqªtdƒWn0tk
rÀ}ztd|ƒW5d}~XYnXdS)    Nz .f2py_f2cmapzReading f2cmap from {!r} ...
Úrz3    Warning: redefinition of {'%s':{'%s':'%s'->'%s'}}
z    Mapping "%s(kind=%s)" to "%s"
z5    Ignoring map {'%s':{'%s':'%s'}}: '%s' must be in %s
z1Successfully 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ÚlowerÚitemsÚkeysÚc2py_mapÚ f2cmap_mappedÚappendÚerrmessÚlistÚ    Exception)Z f2cmap_filer)r(ÚkÚd1Zk1Úmsg©rdúKd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/f2py/capi_maps.pyÚload_f2cmap_fileµsN
    ÿÿ
 
 
ÿ  ÿrfz%gz%Lgz%dz%hhuz%hdz%huz%uz%ldz%luz(%g,%g)z    (%Lg,%Lg)z\"%s\"z'%c')rrrrrrrrrr!rr&r r"r#r$rr%cCsðd}t|ƒrRd|kr|d}n|d}||dkrBt|d|ƒStd|ƒnšt|ƒr^|St|ƒrjdSt|ƒrvdSd|krÖ|d ¡tkrÖ|d ¡}t|}|d    }d
|krìd |d
krz||d
d }Wn4tk
rtd |dd |d
d fƒYnXnÂd |d
krì|d tkr:t|d }z||d
d }Wn„tk
rÒ|tkrrt|}z|t    |d
d ƒ}WnBtk
rÌtd||d
d |||d
d t
  ¡fƒYnXYnXnt |ƒsìtd|ƒ|S)z
    Determines C type
    ÚvoidÚresultÚnameÚvarsú,getctype: function %s has no return value?!
r%rÚtypespecr@Z kindselectorrz$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.
) Ú
isfunctionrr^Z issubroutineZischaracter_or_characterarrayZisstring_or_stringarrayrXrOÚKeyErrorÚstrrPÚgetcwdÚ
isexternal)ÚvarÚctypeÚarlZf2cmaprdrdrerøs^
 
ÿ 
 
ÿÿ
 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\bZ    f2py_slen)ÚreÚsub)ÚexprrdrdreÚf2cexpr+s rycCsÔt|ƒrJd|kr|d}n|d}||dkr>t|d|ƒStd|ƒt|ƒsbtdt|ƒƒd}d|krœ|d}d|krˆ|d}nd    |krœt|d    ƒ}t d
|¡s´t d |¡rÐt|ƒrÌtd t|ƒƒd }|S)Nrhrirjz0getstrlength: function %s has no return value?!
z;getstrlength: expected a signature of a string but got: %s
r*Ú charselectorrÚlenz\(\s*(\*|:)\s*\)z(\*|:)zMgetstrlength:intent(hide): expected a string with defined length but got: %s
rE)    Úisstringfunctionrr^ÚisstringÚreprryrvÚmatchÚ isintent_hide)rsrur{rdrdrer:s2
 
ÿ
 ÿc    Cs„i}t|ƒr4t|ƒs4t|ƒ|d<d|d<d|d<nLt|ƒrXd|d<d|d<d|d<n(t|ƒr€t |d¡}d |¡|d<ztt|dƒƒ|d<Wntk
rªYnXd     |¡|d<tt    |ƒƒ|d<tt    |ƒd
gƒd d
…|d <t
t    |ƒƒD]|}g}||t kr||g}n,t D]&}t   d |||¡r| |¡q|D](}t  |¡t  |¡krFd||<qôqFqôd\|d<}|D].}|d }|dkr‚d|d||f|d<q‚|drÐ|ddd
…|d<d\|d<}|dD]|}|d }|dkrd|d||f|d<nLt|ƒr@td|ƒd|d|df|d<n|rätdt|ƒt|ƒfƒqä|dr€|ddd
…|d<|S)NÚsizeÚ0Úrankr@Zdimsr*Ú    dimensionrú,éÿÿÿÿrz    rank*[-1]z .*?\b%s\b.*)r@r†Zsetdims)rú:z(*)z(:)z%s#varname#_Dims[%d]=%s,Z    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ÚisscalarrLÚjoinr~rVr`r{ÚrangeÚdepargsrvrr]ÚindexÚ isintent_inrSr^)    rursÚverboseÚretÚdimr.ÚvÚvar(rdrdrer    Vs„   
 
 
ÿ
 
ÿ 
ÿÿ ÿ
cCsŠt|ƒrPd|kr|d}n|d}||dkr@t||d|ƒStd|ƒdS||}}d}t|ƒrld}n t|ƒrxd}|}t|ƒr²|d    D]$}|dd
…d krŒ|d
d…}q²qŒd}t|ƒ}    t|ƒrÜt||ƒ\}}
d |
}t    |ƒr4t|ƒr d ||t
|    t |    |f}nd||t
|    |f}d|t
|    f}nNt |ƒr„t|ƒr^d||t |ƒ|f}nd||t |ƒ|f}d|t |ƒf}nþt|ƒr|d} tt| ƒƒ} d||| t |    d | ¡|f}||kræd|| t |    d | ¡f}nd|| t |    d | ¡|f}n~t|ƒrvd} |tkrdt|tkrddtt|krdtt|d} | |ks`d| } nd} d|| f}|}n td|ƒ||fS)Nrhrirjrk©r@r@r@Ú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".
)rnr
r^rŽÚisintent_inoutÚ isintent_outrÚ hasinitvaluer r‰r[Ú c2pycode_mapr}rrˆr~r{rŠrrÚlcb_mapÚlcb2_map)rursÚafÚsigZsigoutÚoptÚout_araÚinitrtÚshowinitr‘rƒZuardrdrer
“sœ
 
 
 
 ÿ
 
ÿÿ
 ÿý
ÿÿ
*
 
 ÿcCs„t|ƒ}t|ƒr*t|ƒs*d|t|ƒf}nVt|ƒrJd|t|t|f}n6t|ƒr€|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…)
rr}rˆrr‰r[ržr~r{rŠ)rursrtr¢r‘rƒrdrdrer Ýs&ÿ
ÿ ÿýcCsNt|ƒrd\}}nd\}}t|ƒrF|d}|}t|ƒs@t|ƒrêi}zb|d}d|krzt|dd…ƒ d¡\|d<|d    <n*t|iiƒ}t|jƒt|j    ƒ|d<|d    <Wn$t
k
rÊt d
||fƒ‚YnXt |ƒrèd |d|d    f}n\t|ƒrF|sd\}}|d d kr(d|dd…  dd¡}|d dkrFd|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ÚsplitrVrprGÚimagr`Ú
ValueErrorrˆÚreplace)rursr¥r¦rr’rdrdrer ïsF
 
 
ÿÿ "
ÿ
ÿ
cCsDt|ƒst|ƒr,t|ƒ}|d d|¡}|St|ƒs<t|ƒr@dSdS)NrzZf2py_lenr*)r}Ú isstringarrayrÚgetZ ischaracterZischaracterarray)rsÚelsizerdrdreÚ
get_elsizesr¶c "CsH|}t|ƒr:|dD]$}|dd…dkr|dd…}q:q||t|ƒdœ}g}t ¡D]\}}||ƒrV| d|¡qV|rŠd |¡|d<nd|d<t|ƒr¤d    |d
<n&|d tkrÂt|d |d
<nd |d
<t||ƒ\|d <|d<t    |ƒr$t
|ƒr$t|ƒs$t |d dd…ƒ  d¡\|d<|d<t |ƒr¾||d<|tkrž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¡}|d tkr&t|d |d<t|ƒ|d <t|ƒrÄtd!td"td#td$td%td&t
d't t!t"t
ƒƒd(td)td*t#d+t$d,t%d-t t&t"t%ƒƒd.t d/t'd/t(d0g"}    g}
t)d1t*|    ƒd2ƒD]&} |    | |ƒr |
 |    | d¡q t|ƒrè|
 d3||df¡t|ƒrd4 t+d5d6„|d|ƒ¡} |
 d7| ¡t |ƒrBd8||dd4 |
¡f|d9<n"d:|d ||dd4 |
¡f|d9<t!|ƒr”|d t,kr”d;|t,|d f|d<<t|ƒr®d=||f|d<<t |ƒrÄd>||d<<|d t,krþd?|t,|d f|d@<dAt,|d |dB<t|ƒrdC||f|d@<t-||ƒ\|dD<|dE<t.|ƒrD|dF|dF<|S)Gz†
    varname,ctype,atype
    init,init.r,init.i,pytype
    vardebuginfo,vardebugshowvalue,varshowvalue
    varrformat
 
    intent
    r–Nr—r˜)ÚvarnameZ
outvarnamertzF2PY_%sú|ZF2PY_INTENT_INr>Z
varrformatrtÚOr¥r¦rr†r¨r©rªZ    cbnamekeyZcbnameÚ
maxnofargsÚ
nofoptargsZdocstrZcbdocstrZ latexdocstrZ cblatexdocstrz5sign2map: Confused: external %s is not in lcb_map%s.
Úlengthr„Úatyperµr•ÚoutputZinoutputÚrequiredÚoptionalÚhiddenzcomplex scalarZscalarrÚarrayz complex arrayz string arrayzcomplex functionÚfunctionÚcallbackZ    auxiliaryréz slen(%s)=%sr…cSs d||fS)Nz%s|%srd)Úxr?rdrdreÚ<lambda>nózsign2map.<locals>.<lambda>zdims(%s)zdebug-capi:%s=>%s:%sZ vardebuginfozdebug-capi:%s %s=%s:%súdebug-capi:%s=%sZvardebugshowvalueú"debug-capi:slen(%s)=%%d %s=\"%%s\"zdebug-capi:%s=%%pz #name#:%s=%sZ varshowvalueú%sÚshowvalueformatz#name#:slen(%s)=%%d %s=\"%%s\"Ú    pydocsignÚ pydocsignoutÚnote)/rœrZ isintent_dictrYr]rŠrˆÚc2buildvalue_mapr rr­rr¯rrrŸr r^r_rZr}rÚ
dictappendr    rLÚ
c2capi_mapr¶Ú    debugcapirŽr›Z
isrequiredÚ
isoptionalr€Zl_andr‰Zl_notr®r³ÚiscomplexfunctionrnÚisintent_callbackZ isintent_auxr‹r{ÚmapÚ cformat_mapr
Úhasnote) rursr¤rarZ intent_flagsr)r,r‘ZilZrlr.Zddimrdrdrer  sú      
 ÿÿ
 
 
ÿ
 
 
  õ 
 
ÿ
ÿ ÿ
 
 
ÿ
 
ÿ
 
 
 
 c     Csø|d}t|ƒ}|| dd¡| ¡| ¡t|ƒtd|ƒ|| ¡t|ƒpJdt|ƒpTdt|ƒp^ddœ }d|krvd|d<nd|d<d|krd    |d
<nd
|d
<iad |kr:|d      ¡D]„}|t
j kr²t
j |D]j}|d }d |d |kr(|d |d      ¡D]*}|d |d ||d krü|}q(qü|dt|<qÊq²n0d|krj|drjt d|dt |dƒfƒt|tƒpxd|d<t|ƒrÔd|krœ|d}n|d}||d<t||ƒ\|d<|d<t|d|ƒ|d<t|ƒr|d|d|d<dg|d|d<|dtkr&t|d|d<nd|d<t dt |dƒƒt|ƒrŒ|dtkrrd|t|df|d<t|ƒrŒd ||f|d<t|ƒrÔt|d|ƒ|d!<|d!d"krÔt d#t |dƒƒd$|d!<t|ƒrô|d|d<dg|d<|S)%zV
    name,NAME,begintitle,endtitle
    rname,ctype,rformat
    routdebugshowvalue
    riÚ_ú\_ú    end of %sr@) riZtexnameZ
name_lowerÚNAMEÚ
begintitleÚendtitleZ fortrannameZ FORTRANNAMEZ callstatementÚusercodeÚ    usercode1Ú    F_FUNC_USÚF_FUNCZF_WRAPPEDFUNC_USZ F_WRAPPEDFUNCZuserr×rZ    externalszMroutsign2map: Confused: function %s has externals %s but no "use" statement.
ZcallprotoargumentrhÚrnamerÍrÎrjrtrÏZ
resultnoteúSee elsewhere.Zrformatr¹z.routsign2map: no c2buildvalue key for type %s
rÉZroutdebugshowvaluerÊZrlengthrEzzroutsign2map: expected explicit specification of the length of the string returned by the fortran function %s; taking 10.
Ú10)Zgetfortrannamer²rXÚupperÚgentitleZgetcallstatementÚ getusercodeÚ getusercode1rŸrZrZcb_mapr^r~Zgetcallprotoargumentrnr
rZ hasresultnoterÐrÓrØr|rrÙ)    ÚroutriÚfnamerr/ZunÚlnrarurdrdrerŠs˜
 
 
 
 
ö 
 
 
 
 
ÿ
 
 
 
 
ÿ
 
ÿ
 
ÿ
 
 
ÿ
 
cCsüt|ƒr.|d|d ¡|d dd¡dœ}n$|d|d ¡|d dd¡dœ}t|ƒp\g|d<t|ƒrv|d|d<t|ƒp€d|d    <t|ƒpd|d
<|d r¸t|d d ƒp°d|d <nd|d <t|ƒpÊd|d<d|krä|d|d<d|krø|d|d<|S)z
    modulename
    rirÚrÛ)Z f90modulenameZ F90MODULENAMEZtexf90modulename)Ú
modulenameZ
MODULENAMEZ texmodulenameZrestdocrÏr@ràráÚbodyrZinterface_usercodeZ pymethoddefZcoutputZf2py_wrapper_output)Úismodulerçr²Z
getrestdocrÙrérêZgetpymethoddef)ÚmrrdrdrerÛs.
þ
þ   cCs¸d|i}|d|d<t|ƒ|d<|dtkrHt|d|d<t|ƒ|d<|dtkrhdt|d|d<t|ƒr€t|t||ƒƒ}t||ƒ\|d<|d    <t|ƒr´|d
|d
<d g|d
<|S) Nr·Z    varname_irtr½rµrËrÌrÍrÎrÏrå)    rrÒr¶rØrˆrÑr    r
rÙ)rursrrrdrdrerøs      
cCsœd|d|fddœ}t|ƒr`d|dkr0d}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<|ddkrÎd|d<n |d|d<|ddkrt|ƒrúd|d<nd|d<|dtkr$dt|d|d<t|ƒr:t|ƒ|d<t    |ƒrÊd|krX|d}n|d}t
|d|ƒr˜|d|d|d<dg|d|d<||d<t ||ƒ\|d<|d <t|ƒrêd!|d<n t
|ƒrê|d|d<dg|d<d"}d"}d#|krLd|krL|d#D]<}|d|}t t tƒ|ƒr|d$}t|ƒr|d$}qt|ƒ|d%<t|ƒ|d&<t
|ƒr˜t    |ƒr˜d|kr˜|d|d'<dg|d<|S)(z\
    name,begintitle,endtitle,argname
    ctype,rctype,maxnofargs,nofoptargs,returncptr
    z cb_%s_in_%srir@)riÚ
returncptrrÚrârãz    %s(%s,%s)Z callbacknameZexternZstaticršrÞrÜrßrtrgZrctyperz3
#ifdef F2PY_CB_RETURNCOMPLEX
return_value=
#endif
ròz return_value=rËrÌZ    strlengthrhrjrÏrårärÍrÎz8
#ifdef F2PY_CB_RETURNCOMPLEX
#ctype#
#else
void
#endif
rÚargsrrºr»Zroutnote)rÖrXrçrèrrÕrØr|rrnrÙr
Zl_orrŽr›rÔr~)rëZumrrãruZnofargsr»rsrdrdrer
szÿ 
 
þÿ
 
 
 
 
 
 
 
 
 
 
 
 
cCsâ|t|ƒdœ}t|ƒrd|d<|dtkrFt|d|d<t|ƒ|d<|dtkrfdt|d|d<t|ƒr€t|t||ƒƒ}nt|ƒrœt    |ƒ|d<d    |d
<t
||ƒ\|d <|d <t |ƒrÐ|d |d <dg|d <t ||ƒ|d<|S)N)r·rtrrtr½rµrËrÌrr*rƒrÍrÎrÏråZ    arrdocstr) rr³rÒr¶rØrˆrÑr    r}rr
rÙr )rursrrdrdrer\s&     
)r)N))Ú__doc__r@rÚversionZ f2py_versionrLrvrPZ crackfortranrrZauxfuncsÚ__all__Z using_newcorerŒrŸr r[rÒržrÐrOrMrNr\rfrØrryrr    r
r r r¶r rrrrrrdrdrdreÚ<module>s   ýððîðîôÿýþþÿð
,ï3
=J#jQ
R