I try to compare two int64 scalar fields and I got this
RuntimeError: [type_check.cpp:visit@46]
if conditions must be of type int32, consider using 'if x != 0:' instead of 'if x:' for float values.
Is there something wrong with my code?
I try to compare two int64 scalar fields and I got this
RuntimeError: [type_check.cpp:visit@46]
if conditions must be of type int32, consider using 'if x != 0:' instead of 'if x:' for float values.
Is there something wrong with my code?
Hi, does using if ti.cast(x != 0, ti.i32):
work for you?
(It seems Taichi have considered the return value of i64 == i64
as i64
, but if
statement only supports i32
)
Thank you archibate, I have tried just now but it didn’t work. It still report the same issue.
I wonder is there a function in taichi which can return the sub bits in a field ? It looks like this:
i64_tensor = ti.field(dtype=ti.i64,shape=(1,2))
i32_tensor = ti.somefunction(i64_tensor,[0,31])//returns the first 32bit interger field whose shape is the same as i64_tensor
i32_tensor = ti.somefunction(i64_tensor,[32,64])//returns the last 32bit interger field whose shape is the same as i64_tensor
But I think this operation may have a bad effect on taichi performance due to the discontinuity access to the memory