tl; dr: Как определить диапазон ввода, определенный реализацией, и точность результата для native_
функций?
В соответствии со спецификацией OpenCL , поддерживаемым диапазоном ввода иТочность результата таких функций, как native_sin
, определяется реализацией.
Таким образом, в основном float native_sin(float x) { return x; }
будет полностью соответствовать спецификации реализации native_sin
, если входной диапазон определен как [0; 0]
.Надеюсь, никто этого не делает, но, как half_sin
, это гарантирует только полезные результаты в диапазоне ввода [-2 ^ 16;+ 2 ^ 16], могут быть реальные ограничения на native_sin
, что может сделать его непригодным для меня.
Следовательно, чтобы узнать, могу ли я использовать native_sin
для своих целей, мне нужнознать действительный диапазон входных и выходных ошибок.Как я могу определить эту информацию?