<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>