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

◆ minmag

auto kyosu::minmag = eve::functor<minmag_t>
inlineconstexpr

Callable object computing the minmag operation.

Header file

#include <kyosu/functions.hpp>

Callable Signatures

namespace kyosu
{
template<typename ... Ts> auto minmag(Ts ... zi ) const noexcept
}
constexpr auto minmag
Callable object computing the minmag operation.
Definition minmag.hpp:75
Main KYOSU namespace.
Definition cinf.hpp:13

Parameters

  • zi...: Values to process.
  • tup : tuple of cayley_dickson_like values to process.

Return value

  1. Returns elementwise the value which has the minimum of the absolute values between the parameters.
  2. Returns elementwise the value which has the minimum of the absolute values between tuple members.

Example

#include <eve/wide.hpp>
#include <iostream>
#include <kyosu/kyosu.hpp>
int main()
{
using e_t = float;
using we_t = eve::wide<float, eve::fixed<2>>;
using wc_t = eve::wide<kyosu::complex_t<float>, eve::fixed<2>>;
using wq_t = eve::wide<kyosu::quaternion_t<float>, eve::fixed<2>>;
std::cout << "Real: " << "\n";
e_t e0(1);
e_t e1(2);
std::cout << e0 << ", " << e1 << " -> " << minmag(e0, e1) << "\n";
we_t we0(e0);
we_t we1(e1);
std::cout << we0 << ", " << we1 << " -> " << minmag(we0, we1) << "\n";
std::cout << "Complex: " << "\n";
c_t c0(5);
c_t c1(5, 9);
std::cout << c0 << ", " << c1 << " -> " << minmag(c0, c1) << "\n";
wc_t wc0(c0);
wc_t wc1(c1);
std::cout << wc0 << ", " << wc1 << " -> " << minmag(wc0, wc1) << "\n";
std::cout << "Quaternion: " << "\n";
q_t q0(5, 2, 3);
q_t q1(5, 9, 6, 7);
std::cout << q0 << ", " << q1 << " -> " << minmag(q0, q1) << "\n";
wq_t wq0(q0);
wq_t wq1(q1);
std::cout << wq0 << ", " << wq1 << " -> " << minmag(wq0, wq1) << "\n";
return 0;
}
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition complex.hpp:27
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition quaternion.hpp:24