khwilson commented on code in PR #44630:
URL: https://github.com/apache/arrow/pull/44630#discussion_r1871972349
##########
cpp/src/arrow/compute/kernels/scalar_arithmetic.cc:
##########
@@ -273,6 +328,29 @@ struct Atan {
}
};
+struct Atanh {
+ template <typename T, typename Arg0>
+ static enable_if_floating_value<Arg0, T> Call(KernelContext*, Arg0 val,
Status*) {
+ static_assert(std::is_same<T, Arg0>::value, "");
+ if (ARROW_PREDICT_FALSE((val < -1.0 || val > 1.0))) {
Review Comment:
Oh totally! I honestly think both implementations can be rigorously
justified and defended.
For instance, I could *define* atanh as the inverse of tanh. And I could
*define* f(oo) = lim_{x -> oo} f(x). And then atanh(1) is clearly oo.
Just a matter of which convention the library wants to follow 😀
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]