text: //==================================================================================================
  /*
    EVE - Expressive Vector Engine
    Copyright : EVE Contributors & Maintainers
    SPDX-License-Identifier: MIT
  */
  //==================================================================================================
  #pragma once
  
  #include <eve/detail/overload.hpp>
  
  namespace eve
  {
    //================================================================================================
    //! @addtogroup hyperbolic
    //! @{
    //! @var tanh
    //!
    //! @brief Callable object computing tanh: \f$\frac{e^x-e^{-x}}{e^x+e^{-x}}\f$.
    //!
    //! **Required header:** `#include <eve/function/tanh.hpp>`
    //!
    //! #### Members Functions
    //!
    //! | Member       | Effect                                                     |
    //! |:-------------|:-----------------------------------------------------------|
    //! | `operator()` | the  computation of tanh                                   |
    //! | `operator[]` | Construct a conditional version of current function object |
    //!
    //! ---
    //!
    //!  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
    //!  auto operator()(floating_value auto x) const noexcept;
    //!  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //!
    //! **Parameters**
    //!
    //!`x`:   [floating value](@ref eve::floating_value).
    //!
    //! **Return value**
    //!
    //!Returns the [elementwise](@ref glossary_elementwise) hyperbolic tangent of the input.
    //!
    //!In particular:
    //!
    //!   * If the element is \f$\pm0\f$, \f$\pm0\f$ is returned.
    //!   * If the element is \f$\pm\infty\f$, \f$\pm1\f$ returned.
    //!   * If the element is a `NaN`, `NaN` is returned.
    //!
    //! ---
    //!
    //!  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
    //!  auto operator[]( conditional_expression auto cond ) const noexcept;
    //!  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //!
    //!  Higher-order function generating a masked version of eve::tanh
    //!
    //!  **Parameters**
    //!
    //!  `cond` : conditional expression
    //!
    //!  **Return value**
    //!
    //!  A Callable object so that the expression `tanh[cond](x, ...)` is equivalent to `if_else(cond,tanh(x, ...),x)`
    //!
    //! ---
    //!
    //! #### Supported decorators
    //!
    //!  * eve::diff, eve::diff_1st, eve::diff_nth
    //!
    //!     **Required header:** `#include <eve/function/diff/tanh.hpp>`
    //!
    //!     The expression `diff(tanh)(x)` computes the derivative of the function at `x`.
    //!
    //! #### Example
    //!
    //! @godbolt{doc/math/tanh.cpp}
    //!
    //!  @}
    //================================================================================================
    EVE_MAKE_CALLABLE(tanh_, tanh);
  }
  
  #include <eve/module/math/regular/impl/tanh.hpp>
  