On Sat, Jul 21, 2018 at 6:43 PM, Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote: > On Sat, Jul 21, 2018 at 6:36 PM, Himanshu Jha > <himanshujha199640@xxxxxxxxx> wrote: > >>> > + /* Look up table 1 for the possible gas range values */ >>> > + u32 lookupTable1[16] = {2147483647u, 2147483647u, 2147483647u, >>> > + 2147483647u, 2147483647u, 2126008810u, >>> > + 2147483647u, 2130303777u, 2147483647u, >>> > + 2147483647u, 2143188679u, 2136746228u, >>> > + 2147483647u, 2126008810u, 2147483647u, >>> > + 2147483647u}; > > This one needs perhaps a bit of though, but... > >>> > + /* Look up table 2 for the possible gas range values */ >>> > + u32 lookupTable2[16] = {4096000000u, 2048000000u, 1024000000u, >>> > + 512000000u, 255744255u, 127110228u, 64000000u, >>> > + 32258064u, 16016016u, 8000000u, 4000000u, >>> > + 2000000u, 1000000u, 500000u, 250000u, 125000u}; > > ...this one obviously just a not needed one. You may replace it with a > one constant and simple calculation to get either value (index from > value, or value from index). Indeed this can be reduce to: 125.000 << (15 - idx). The real question here is if we approximate 255.744.255u to 256.00.00u how much different is the result. Being a gas sensor I think it is very hard to appreciate. We can go with this formula + adding a comment with the table with the exact coefficients. thanks, Daniel. -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html