<br><br><div class="gmail_quote">On Sun, Nov 9, 2008 at 4:37 PM, Dag Sverre Seljebotn <span dir="ltr"><<a href="mailto:dagss@student.matnat.uio.no">dagss@student.matnat.uio.no</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">Charles R Harris wrote:<br>
<br>
> But mixing python types and numpy types is not a good idea, they exist<br>
> separately and apply to different software. This may be different for<br>
> the buffer interface, which is likely to cross the boundary, but that is<br>
> an argument for being very careful on how the buffer interface is dealt<br>
> with in cython.<br>
><br>
<br>
</div>Which is why an exception is thrown in this mismatch circumstance -- if<br>
we weren't careful, the cast would happen, which would be very bad.</blockquote><div><br>I think the arguments should be copied and explicitly cast. It's nasty, but crossing boundaries always is. There are some old compatibility functions in numpy that do the same thing. <br>
</div><div><br>Isn't this a bit conservative? It looks to me like long and double would be good bets for a lot of these. The boolean type, '?', is also missing.<br><br><div class="parity1"><span class="lineno">   186</span>
</div><div class="parity0"><span class="lineno">   187</span>    ctypedef signed int   npy_byte
</div><div class="parity1"><span class="lineno">   188</span>    ctypedef signed int   npy_short
</div><div class="parity0"><span class="lineno">   189</span>    ctypedef signed int   npy_int
</div><div class="parity1"><span class="lineno">   190</span>    ctypedef signed int   npy_long
</div><div class="parity0"><span class="lineno">   191</span>    ctypedef signed int   npy_longlong
</div><div class="parity1"><span class="lineno">   192</span>
</div><div class="parity0"><span class="lineno">   193</span>    ctypedef unsigned int npy_ubyte
</div><div class="parity1"><span class="lineno">   194</span>    ctypedef unsigned int npy_ushort
</div><div class="parity0"><span class="lineno">   195</span>    ctypedef unsigned int npy_uint
</div><div class="parity1"><span class="lineno">   196</span>    ctypedef unsigned int npy_ulong
</div><div class="parity0"><span class="lineno">   197</span>    ctypedef unsigned int npy_ulonglong
</div><div class="parity1"><span class="lineno">   198</span>
</div><div class="parity0"><span class="lineno">   199</span>    ctypedef float        npy_float
</div><div class="parity1"><span class="lineno">   200</span>    ctypedef float        npy_double
</div><div class="parity0"><span class="lineno">   201</span>    ctypedef float        npy_longdouble
</div><div class="parity1"><span class="lineno">   202</span>
</div><div class="parity0"><span class="lineno">   203</span>    ctypedef signed int   npy_int8
</div><div class="parity1"><span class="lineno">   204</span>    ctypedef signed int   npy_int16
</div><div class="parity0"><span class="lineno">   205</span>    ctypedef signed int   npy_int32
</div><div class="parity1"><span class="lineno">   206</span>    ctypedef signed int   npy_int64
</div><div class="parity0"><span class="lineno">   207</span>    ctypedef signed int   npy_int96
</div><div class="parity1"><span class="lineno">   208</span>    ctypedef signed int   npy_int128    
</div><div class="parity0"><span class="lineno">   209</span>
</div><div class="parity1"><span class="lineno">   210</span>    ctypedef unsigned int npy_uint8
</div><div class="parity0"><span class="lineno">   211</span>    ctypedef unsigned int npy_uint16
</div><div class="parity1"><span class="lineno">   212</span>    ctypedef unsigned int npy_uint32
</div><div class="parity0"><span class="lineno">   213</span>    ctypedef unsigned int npy_uint64
</div><div class="parity1"><span class="lineno">   214</span>    ctypedef unsigned int npy_uint96
</div><div class="parity0"><span class="lineno">   215</span>    ctypedef unsigned int npy_uint128
</div><div class="parity1"><span class="lineno">   216</span>
</div><div class="parity0"><span class="lineno">   217</span>    ctypedef float        npy_float32
</div><div class="parity1"><span class="lineno">   218</span>    ctypedef float        npy_float64
</div><div class="parity0"><span class="lineno">   219</span>    ctypedef float        npy_float80
</div><div class="parity1"><span class="lineno">   220</span>    ctypedef float        npy_float96
</div><div class="parity0"><span class="lineno">   221</span>    ctypedef float        npy_float128
</div><div class="parity1"><span class="lineno"><br></span></div> Chuck</div><br></div><br>