kyosu v0.1.0
Complex Without Complexes
 
Loading...
Searching...
No Matches

◆ acot

kyosu::acot = {}
inlineconstexpr

Computes the arc cotangent of the argument.

Defined in Header

#include <kyosu/functions.hpp>

Callable Signatures

namespace kyosu
{
template<eve::floating_ordered_value T> constexpr auto acot(T z) noexcept; //1
template<kyosu::concepts::complex T> constexpr auto acot(T z) noexcept; //2
template<kyosu::concepts::cayley_dickson T> constexpr auto acot(T z) noexcept; //3
}
constexpr tags::callable_acot acot
Computes the arc cotangent of the argument.
Definition: acot.hpp:84
Main KYOSU namespace.
Definition: types.hpp:14

Parameters

  • z: Value to process.

Return value

  1. A real type input z calls eve::acot(z); and so returns the same type as the input.
  2. Returns elementwise the complex principal value of the arc cotangent of the input as the arc tangent of the inverse of the input.
  3. Returns \(I_z \mathrm{acoth}(z I_z)\) where \(I_z = \frac{\underline{z}}{|\underline{z}|}\) and \(\underline{z}\) is the pure part of \(z\).

Example

#include <kyosu/kyosu.hpp>
#include <eve/wide.hpp>
#include <iostream>
int main()
{
using wide_ft = eve::wide <float, eve::fixed<4>>;
wide_ft ref1 = { 3.0f, 2.0f, 1.0f, 0.5f};
wide_ft imf1 = { 2.0f , -1.0, -5.0, 0.0};
wide_ft ref2 = { 0.0, 1.0, 2.0, 3.0};
auto zc = kyosu::complex_t<wide_ft>(ref1, imf1);
std::cout
<< "---- simd" << std::endl
<< "<- zc = " << zc << std::endl
<< "-> acot(zc) = " << kyosu::acot(zc)<< std::endl
<< "-> acot(ref2) = " << kyosu::acot(ref2) << std::endl;
return 0;
}
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27