I doubt this is an expected result for Pypy3.

But what if you use:
result[i] =  float(x) if x else 0.0

...to make result be of homogeneous type?

On Tue, Feb 15, 2022 at 3:36 AM Ioannis Foufoulas <johnf...@gmail.com>
wrote:

> Hi,
> I have an embedded function:
>
> @ffi.def_extern()
> def toint(input,insize,result):
>     for i in range(insize):
>         x = ffi.string(input[i])
>         result[i] =  float(x) if x else 0
>       return 1
>
> It seems that this runs around 30-40% percent slower in PyPy3 than in 2.
>
> Input is a char** c array and result is a float c array. The difference is
> not in ffi.string
> If having `result[i] = 1 if x else 0` it runs same in both versions. Any
> ideas?
>
> _______________________________________________
> pypy-dev mailing list
> pypy-dev@python.org
> https://mail.python.org/mailman/listinfo/pypy-dev
>
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
https://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to