Hello,  Zhihong.

Thanks for your comments.

1. I am afraid that an equivalence of "floor(val + 0.5)" to "cell(val)" is 
incorrect: "floor(2.1 + 0.5)" returns 2 while  "cell(2.1)" returns 3. We can’t 
use such replacement, as you have suggested.

2. >> For compare_rows(), it seems the computation of oa and ob can be delayed 
to when ba == bb (after the first two if statements).
I have checked some examples of ASM code generated by different compilers with 
-O2/O3 flags on https://gcc.godbolt.org and didn’t see any big benefit in 
result CPU instructions. You can check yourself an attached example below.

Attachment: simplified_compare_rows.c
Description: Binary data


Best regards,
Denis Smirnov | Developer
s...@arenadata.io 
Arenadata | Godovikova 9-17, Moscow 129085 Russia

Reply via email to