From 5444ca8e51a04a1f87206951af1c91f190e0b6d7 Mon Sep 17 00:00:00 2001 From: jfalcou Date: Sun, 24 Sep 2023 15:08:39 +0000 Subject: [PATCH] deploy: 65412d33d9bec22ee5f9eaa06e4b9d46de302950 --- ...ex_gac49e8cf76fe002ef3d3e480fb80217ff.html | 36 +++- ...ex_gad70670d8278d34dc0f0faf883a48eab8.html | 27 ++- group__functions.html | 8 +- ...ns_ga047b3d79d00d4907df04ec98f2a0fada.html | 55 +++++- ...ns_ga054a9a0efe44dd5dcc9bb675b0f9e89d.html | 29 ++- ...ns_ga1e253b4aba99259dbb98d891247c2a38.html | 29 ++- ...ns_ga25372aaebdff2ad59971a9fee778ba0f.html | 55 +++++- ...ns_ga26c8821ba25972647692322f5236a370.html | 29 ++- ...ns_ga297cbe86ab12760ec934f76879f805d0.html | 29 ++- ...ns_ga2ddfc28eca2aadd941d5fc5e991a5fde.html | 37 +++- ...ns_ga2f8614d64bb1b781e4496b56b0accfa1.html | 29 ++- ...ns_ga308a170dbf61d3a4aba52d975abf902e.html | 29 ++- ...ns_ga3aa2bb7847bd2885618e263ed0f0cd82.html | 29 ++- ...ns_ga3d4a351565ed14e9021990fa72f9de4a.html | 181 ------------------ ...ns_ga4a6cafda405a73a42b6a47c0cad49cad.html | 181 ------------------ ...ns_ga606d275eaf727424c499a9ddb6a09cd6.html | 29 ++- ...ns_ga660e094a5a7d9c646c30eeb9273ef80a.html | 63 +++++- ...ns_ga680756a6a228206f45212247b16d5961.html | 29 ++- ...ns_ga6f78a4312ac7bd38e25d0b09b18fe3e6.html | 29 ++- ...ns_ga761c2a207a0417867f0eb4b3dc30ee2b.html | 29 ++- ...ns_ga764d5554dc7ce3cac3302591c4d75947.html | 55 +++++- ...ns_ga926e8d9f232cf45c07fe4f2a23353bb9.html | 38 +++- ...ns_ga961299cde75efe464ea2e3f9944d1f33.html | 29 ++- ...ns_ga9b2e4c2e043be340f42910dbf5ec54ed.html | 29 ++- ...ns_gaa2dcdb1644aa5086e764ee6de919ad93.html | 1 + ...ns_gaae9065f698fe37841a85e340a16af948.html | 55 +++++- ...ns_gab1054201f9cf583c8723b683ac50abce.html | 55 +++++- ...ns_gabd703393200a757087fb7f2054546dcf.html | 29 ++- ...ns_gabfd2527bde97bcd86c6d1933fce660a1.html | 29 ++- ...ns_gac6ffcc3696c865798531628577792946.html | 29 ++- ...ns_gacb9f75de7a67c7d512f135c26b10cdf1.html | 29 ++- ...ns_gad5a796471bcfd81c38de6db0658fa23a.html | 29 ++- ...ns_gad65d1920bd1721b78982441aeb5b4036.html | 29 ++- ...ns_gae8e08be7b28ad1cf9159ae564115867f.html | 11 +- ...ns_gaf190a649d5907b9f6c177bb100a73c8d.html | 56 +++++- ...ns_gaf34684f4a02ca7468c2f7cb440779a6d.html | 29 ++- group__quaternion.html | 18 +- ...on_ga06868e959a899a9f2348b07c330c0048.html | 26 ++- ...on_ga31804ee3fdb4a806efea330cf1e20898.html | 35 +++- ...on_ga3519a64d1cbe848507cc57a05b5ed1b3.html | 40 +++- ...on_ga3f3485eda1a78b4bb970df61c7b602d7.html | 25 ++- ...on_ga47b1fa117c5671882a31b65c997660d7.html | 29 ++- ...on_ga768dc300e06ddd80f84746662db3c01b.html | 52 ++--- ...on_ga77eff7a7e881497c34bc74d948cf82b0.html | 32 +++- ...on_ga8d6d4d74663080af513e4428dcc01612.html | 56 +++++- ...on_ga943f811be2981809d36a4f31f52b0025.html | 40 ++-- ...on_gaa17a7e084e8ef0ba4c64b55e456b1f57.html | 85 +++++--- ...on_gaa5964ee08fa64046a80d3908056a09c4.html | 28 ++- ...on_gaa82e66812fcb0f8af20b07a448752561.html | 40 +++- ...on_gad7e50e38859bb508a816fdd9d63d7b0a.html | 40 +++- ...on_gae4c3253d49e644eeea3531e3b588fc9c.html | 67 ++----- ...on_gae984161c55fda44efe7d7f9b274334c6.html | 56 +++++- ...on_gaeb24f578562330d825ff8f68da4b9252.html | 32 +++- ...on_gafb8e2e7cadea72110b134c4df850ee3a.html | 26 ++- ...on_gafe4deac1b486b7f1203090424e8df302.html | 40 +++- namespacekyosu.html | 26 +-- search/all_5.js | 6 +- search/all_e.js | 12 +- search/variables_5.js | 6 +- search/variables_e.js | 12 +- 60 files changed, 1734 insertions(+), 589 deletions(-) delete mode 100644 group__functions_ga3d4a351565ed14e9021990fa72f9de4a.html delete mode 100644 group__functions_ga4a6cafda405a73a42b6a47c0cad49cad.html rename group__quaternion_gadcb9029f90743da06cc952f8fe8120f0.html => group__quaternion_ga768dc300e06ddd80f84746662db3c01b.html (69%) rename group__quaternion_ga36f4e319eab743013ddf5a868679fb63.html => group__quaternion_gaa17a7e084e8ef0ba4c64b55e456b1f57.html (58%) rename group__quaternion_ga6bd1f5ec343e8cf12fec6cc72eae2a87.html => group__quaternion_gae4c3253d49e644eeea3531e3b588fc9c.html (65%) diff --git a/group__complex_gac49e8cf76fe002ef3d3e480fb80217ff.html b/group__complex_gac49e8cf76fe002ef3d3e480fb80217ff.html index 7acce905..126f967d 100644 --- a/group__complex_gac49e8cf76fe002ef3d3e480fb80217ff.html +++ b/group__complex_gac49e8cf76fe002ef3d3e480fb80217ff.html @@ -159,7 +159,41 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
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>>;
+
+
std::cout << "Real: "<< "\n";
+
e_t e0(1);
+
e_t e1(-2);
+
std::cout << e0 << " -> " << to_polar(e0) << "\n";
+
std::cout << e1 << " -> " << to_polar(e1) << "\n";
+
we_t we0(e0);
+
we_t we1(e1);
+
std::cout << we0 << " -> " << to_polar(we0) << "\n";
+
std::cout << we1 << " -> " << to_polar(we1) << "\n";
+
+
std::cout << "Complex: "<< "\n";
+
c_t c0(3, -4);
+
std::cout << c0 << " -> " << to_polar(c0) << "\n";
+
wc_t wc0(c0);
+
std::cout << wc0 << " -> " << to_polar(wc0) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__complex_gad70670d8278d34dc0f0faf883a48eab8.html b/group__complex_gad70670d8278d34dc0f0faf883a48eab8.html index 09bcbd74..9841144e 100644 --- a/group__complex_gad70670d8278d34dc0f0faf883a48eab8.html +++ b/group__complex_gad70670d8278d34dc0f0faf883a48eab8.html @@ -158,9 +158,32 @@

Note
: a negative rho is not an error but is treated as {-rho, theta+pi}.

-

+

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <array>
+
#include <iostream>
+
+
int main()
+
{
+ + + +
+
+
auto theta = eve::pio_3(eve::as<double>());
+
auto rho = 3.0;
+
+
std::cout << " <- theta = " << theta << std::endl;
+
std::cout << " <- rho = " << rho << std::endl;
+
std::cout << " -> " << kyosu::from_polar(theta, rho) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions.html b/group__functions.html index 6bae5d46..bf823ffa 100644 --- a/group__functions.html +++ b/group__functions.html @@ -209,7 +209,7 @@  Computes the conjugate value.
  constexpr tags::callable_convert kyosu::convert = {} - Select a value between two arguments based on a logical mask.
+ convert to a target typek
  constexpr tags::callable_cos kyosu::cos = {}  Computes the cosine of the argument.
@@ -417,9 +417,6 @@ constexpr tags::callable_oneminus kyosu::oneminus = {}  Computes the value 1 minus the argument.
  -constexpr tags::callable_polar kyosu::polar = {} - complex number from modulus and argument.
-  constexpr tags::callable_pow kyosu::pow = {}  Computes the computing the pow operation \(x^y\).
  @@ -435,9 +432,6 @@ constexpr tags::callable_proj kyosu::proj = {}  Callable object computing proj(x), the projection of the cayley_dickson number z onto the (hyper) Riemann sphere.
  -constexpr tags::callable_purepart kyosu::purepart = {} - Extracts the pure part of a value.
-  constexpr tags::callable_quaternion kyosu::quaternion = {}  Constructs a kyosu::quaternion.
  diff --git a/group__functions_ga047b3d79d00d4907df04ec98f2a0fada.html b/group__functions_ga047b3d79d00d4907df04ec98f2a0fada.html index 61bf2889..25b0dbed 100644 --- a/group__functions_ga047b3d79d00d4907df04ec98f2a0fada.html +++ b/group__functions_ga047b3d79d00d4907df04ec98f2a0fada.html @@ -162,7 +162,60 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
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 << " -> " << powm1(e0, e1) << "\n";
+
std::cout << e0 << ", " << e0 << " -> " << powm1(e0, e0) << "\n";
+
we_t we0(e0);
+
we_t we1(e1);
+
std::cout << we0 << ", " << we1 << " -> " << powm1(we0, we1) << "\n";
+
+
std::cout << "Complex: "<< "\n";
+
c_t c0(1, 5);
+
c_t c1(5, 9);
+
std::cout << c0 << ", " << c1 << " -> " << powm1(c0, c1) << "\n";
+
std::cout << c0 << ", " << c0 << " -> " << powm1(c0, c0) << "\n";
+
wc_t wc0(c0, c1);
+
wc_t wc1(c1, c1);
+
std::cout << wc0 << ", " << wc1 << " -> " << powm1(wc0, wc1) << "\n";
+
+
std::cout << "Quaternion: "<< "\n";
+
q_t q0(1, 5, 2, 3);
+
q_t q1(5, 9, 6, 7);
+
std::cout << q0 << ", " << q1 << " -> " << powm1(q0, q1) << "\n";
+
std::cout << q0 << ", " << q0 << " -> " << powm1(q0, q0) << "\n";
+
wq_t wq0(q0, q1);
+
wq_t wq1(q1, q1);
+
std::cout << wq0 << ", " << wq1 << " -> " << powm1(wq0, wq1) << "\n";
+
+
std::cout << "Mixed: "<< "\n";
+
std::cout << kyosu::powm1(c0, q1) << std::endl;
+
std::cout << kyosu::powm1(e0, q1) << std::endl;
+
std::cout << kyosu::powm1(c0, wq1) << std::endl;
+
std::cout << kyosu::powm1(we0, q1) << std::endl;
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_ga054a9a0efe44dd5dcc9bb675b0f9e89d.html b/group__functions_ga054a9a0efe44dd5dcc9bb675b0f9e89d.html index 3cd44278..89c1b6be 100644 --- a/group__functions_ga054a9a0efe44dd5dcc9bb675b0f9e89d.html +++ b/group__functions_ga054a9a0efe44dd5dcc9bb675b0f9e89d.html @@ -160,7 +160,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << rec(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << rec(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << rec(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << rec(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_ga1e253b4aba99259dbb98d891247c2a38.html b/group__functions_ga1e253b4aba99259dbb98d891247c2a38.html index a603f1a5..a82335e8 100644 --- a/group__functions_ga1e253b4aba99259dbb98d891247c2a38.html +++ b/group__functions_ga1e253b4aba99259dbb98d891247c2a38.html @@ -160,7 +160,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << sinh(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << sinh(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << sinh(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << sinh(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_ga25372aaebdff2ad59971a9fee778ba0f.html b/group__functions_ga25372aaebdff2ad59971a9fee778ba0f.html index 74667bea..be615c8a 100644 --- a/group__functions_ga25372aaebdff2ad59971a9fee778ba0f.html +++ b/group__functions_ga25372aaebdff2ad59971a9fee778ba0f.html @@ -162,7 +162,60 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
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 << " -> " << pow(e0, e1) << "\n";
+
std::cout << e0 << ", " << e0 << " -> " << pow(e0, e0) << "\n";
+
we_t we0(e0);
+
we_t we1(e1);
+
std::cout << we0 << ", " << we1 << " -> " << pow(we0, we1) << "\n";
+
+
std::cout << "Complex: "<< "\n";
+
c_t c0(1, 5);
+
c_t c1(5, 9);
+
std::cout << c0 << ", " << c1 << " -> " << pow(c0, c1) << "\n";
+
std::cout << c0 << ", " << c0 << " -> " << pow(c0, c0) << "\n";
+
wc_t wc0(c0, c1);
+
wc_t wc1(c1, c1);
+
std::cout << wc0 << ", " << wc1 << " -> " << pow(wc0, wc1) << "\n";
+
+
std::cout << "Quaternion: "<< "\n";
+
q_t q0(1, 5, 2, 3);
+
q_t q1(5, 9, 6, 7);
+
std::cout << q0 << ", " << q1 << " -> " << pow(q0, q1) << "\n";
+
std::cout << q0 << ", " << q0 << " -> " << pow(q0, q0) << "\n";
+
wq_t wq0(q0, q1);
+
wq_t wq1(q1, q1);
+
std::cout << wq0 << ", " << wq1 << " -> " << pow(wq0, wq1) << "\n";
+
+
std::cout << "Mixed: "<< "\n";
+
std::cout << kyosu::pow(c0, q1) << std::endl;
+
std::cout << kyosu::pow(e0, q1) << std::endl;
+
std::cout << kyosu::pow(c0, wq1) << std::endl;
+
std::cout << kyosu::pow(we0, q1) << std::endl;
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_ga26c8821ba25972647692322f5236a370.html b/group__functions_ga26c8821ba25972647692322f5236a370.html index 3dcb578c..ebc4160f 100644 --- a/group__functions_ga26c8821ba25972647692322f5236a370.html +++ b/group__functions_ga26c8821ba25972647692322f5236a370.html @@ -160,7 +160,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << sin(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << sin(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << sin(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << sin(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_ga297cbe86ab12760ec934f76879f805d0.html b/group__functions_ga297cbe86ab12760ec934f76879f805d0.html index b6a70a23..67aaa4a2 100644 --- a/group__functions_ga297cbe86ab12760ec934f76879f805d0.html +++ b/group__functions_ga297cbe86ab12760ec934f76879f805d0.html @@ -161,7 +161,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << sqr_abs(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << sqr_abs(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << sqr_abs(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << sqr_abs(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_ga2ddfc28eca2aadd941d5fc5e991a5fde.html b/group__functions_ga2ddfc28eca2aadd941d5fc5e991a5fde.html index 39c034a9..8ef83246 100644 --- a/group__functions_ga2ddfc28eca2aadd941d5fc5e991a5fde.html +++ b/group__functions_ga2ddfc28eca2aadd941d5fc5e991a5fde.html @@ -169,7 +169,42 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
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>>;
+
+
std::cout << "Real: "<< "\n";
+
e_t e0(1);
+
e_t e1(2);
+
std::cout << e0 << ", " << e1 << " -> " << rising_factorial(e0, e1) << "\n";
+
std::cout << e0 << ", " << e0 << " -> " << rising_factorial(e0, e0) << "\n";
+
we_t we0(e0);
+
we_t we1(e1);
+
std::cout << we0 << ", " << we1 << " -> " << rising_factorial(we0, we1) << "\n";
+
+
std::cout << "Complex: "<< "\n";
+
c_t c0(1, 5);
+
c_t c1(5, 9);
+
std::cout << c0 << ", " << c1 << " -> " << rising_factorial(c0, c1) << "\n";
+
std::cout << c0 << ", " << c0 << " -> " << rising_factorial(c0, c0) << "\n";
+
wc_t wc0(c0, c1);
+
wc_t wc1(c1, c1);
+
std::cout << wc0 << ", " << wc1 << " -> " << rising_factorial(wc0, wc1) << "\n";
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_ga2f8614d64bb1b781e4496b56b0accfa1.html b/group__functions_ga2f8614d64bb1b781e4496b56b0accfa1.html index 02839376..ff6f8af8 100644 --- a/group__functions_ga2f8614d64bb1b781e4496b56b0accfa1.html +++ b/group__functions_ga2f8614d64bb1b781e4496b56b0accfa1.html @@ -160,7 +160,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << tan(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << tan(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << tan(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << tan(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_ga308a170dbf61d3a4aba52d975abf902e.html b/group__functions_ga308a170dbf61d3a4aba52d975abf902e.html index ad8cc33b..0ade5206 100644 --- a/group__functions_ga308a170dbf61d3a4aba52d975abf902e.html +++ b/group__functions_ga308a170dbf61d3a4aba52d975abf902e.html @@ -160,7 +160,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << sec(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << sec(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << sec(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << sec(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_ga3aa2bb7847bd2885618e263ed0f0cd82.html b/group__functions_ga3aa2bb7847bd2885618e263ed0f0cd82.html index 57cd5b9c..c322862e 100644 --- a/group__functions_ga3aa2bb7847bd2885618e263ed0f0cd82.html +++ b/group__functions_ga3aa2bb7847bd2885618e263ed0f0cd82.html @@ -160,7 +160,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << sinhcosh(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << sinhcosh(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << sinhcosh(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << sinhcosh(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_ga3d4a351565ed14e9021990fa72f9de4a.html b/group__functions_ga3d4a351565ed14e9021990fa72f9de4a.html deleted file mode 100644 index 0e4078c6..00000000 --- a/group__functions_ga3d4a351565ed14e9021990fa72f9de4a.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - - -kyosu: kyosu::purepart - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - -
-
kyosu v0.1.0 -
-
Complex Without Complexes
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
- -

◆ purepart

- -
-
- - - - - -
- - - - -
kyosu::purepart = {}
-
-inlineconstexpr
-
- -

Extracts the pure part of a value.

-

Defined in Header

-
#include <kyosu/functions.hpp>
-

Callable Signatures

-
namespace kyosu
-
{
-
template<kyosu::concepts::cayley_dickson T> constexpr auto purepart(T const& z) noexcept;
-
template<eve::ordered_value T> constexpr T purepart(T const& z) noexcept;
-
}
-
constexpr tags::callable_purepart purepart
Extracts the pure part of a value.
Definition: purepart.hpp:72
-
Main KYOSU namespace.
Definition: acos.hpp:14
-

Parameters

-
    -
  • z : Original value.
  • -
-

Return value

-

Returns the pure part of its argument, ie the tuple of all its non-real components. For real inputs, the call returns 0.

-

Example

-
-
-
-
-
- - - - - - - - - - diff --git a/group__functions_ga4a6cafda405a73a42b6a47c0cad49cad.html b/group__functions_ga4a6cafda405a73a42b6a47c0cad49cad.html deleted file mode 100644 index c24b17ee..00000000 --- a/group__functions_ga4a6cafda405a73a42b6a47c0cad49cad.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - - -kyosu: kyosu::polar - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - -
-
kyosu v0.1.0 -
-
Complex Without Complexes
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
- -

◆ polar

- -
-
- - - - - -
- - - - -
kyosu::polar = {}
-
-inlineconstexpr
-
- -

complex number from modulus and argument.

-

Defined in Header

-
#include <kyosu/functions.hpp>
-

Callable Signatures

-
namespace kyosu
-
{
-
template<eve::ordered_value T0, eve::ordered_value T1> constexpr auto polar(T0 rho, T1 theta) noexcept;
-
}
-
constexpr tags::callable_polar polar
complex number from modulus and argument.
Definition: polar.hpp:77
-
Main KYOSU namespace.
Definition: acos.hpp:14
-

Parameters

-
    -
  • rho : modulus.
  • -
  • theta : argument.
  • -
-

Return value

-

Returns elementwise true the polarument of the complex number i.e. \(\rho e^{i\theta}\).

-

Example

-
-
-
-
-
- - - - - - - - - - diff --git a/group__functions_ga606d275eaf727424c499a9ddb6a09cd6.html b/group__functions_ga606d275eaf727424c499a9ddb6a09cd6.html index 3b3b8cf5..afb7075e 100644 --- a/group__functions_ga606d275eaf727424c499a9ddb6a09cd6.html +++ b/group__functions_ga606d275eaf727424c499a9ddb6a09cd6.html @@ -160,7 +160,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << secpi(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << secpi(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << secpi(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << secpi(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_ga660e094a5a7d9c646c30eeb9273ef80a.html b/group__functions_ga660e094a5a7d9c646c30eeb9273ef80a.html index 328ab1e7..05897c36 100644 --- a/group__functions_ga660e094a5a7d9c646c30eeb9273ef80a.html +++ b/group__functions_ga660e094a5a7d9c646c30eeb9273ef80a.html @@ -163,7 +163,68 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
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>>;
+
using kyosu::sign;
+
+
std::cout << "Real: "<< "\n";
+
e_t e0(1);
+
e_t e1(-1);
+
e_t t(0.3);
+
std::cout << e0 << ", " << e1 << ", " << t << " -> " << slerp(e0, e1, t) << "\n";
+
std::cout << e0 << ", " << e0 << ", " << t << " -> " << slerp(e0, e0, t) << "\n";
+
we_t we0(e0);
+
we_t we1(e1);
+
std::cout << we0 << ", " << we1 << ", " << t<< " -> " << slerp(we0, we1, t) << "\n";
+
+
std::cout << "Complex: "<< "\n";
+
c_t c0(1, 5);
+
c_t c1(5, 9);
+
c0 = sign(c0);
+
c1 = sign(c1);
+
std::cout << c0 << ", " << c1 << ", " << t << " -> " << slerp(c0, c1, t) << "\n";
+
std::cout << c0 << ", " << c0 << ", " << t << " -> " << slerp(c0, c0, t) << "\n";
+
wc_t wc0(c0, c1);
+
wc_t wc1(c1, c1);
+
std::cout << wc0 << ", " << wc1 << ", " << t << " -> " << slerp(wc0, wc1, t) << "\n";
+
+
std::cout << "Quaternion: "<< "\n";
+
q_t q0(1, 5, 2, 3);
+
q_t q1(5, 9, 6, 7);
+
q0 = sign(q0);
+
q1 = sign(q1);
+
std::cout << q0 << ", " << q1 << ", " << t << " -> " << slerp(q0, q1, t) << "\n";
+
std::cout << q0 << ", " << q0 << ", " << t << " -> " << slerp(q0, q0, t) << "\n";
+
wq_t wq0(q0, q1);
+
wq_t wq1(q1, q1);
+
std::cout << wq0 << ", " << wq1 << ", " << t << " -> " << slerp(wq0, wq1, t) << "\n";
+
+
std::cout << "Mixed: "<< "\n";
+
std::cout << c0 << ", " << q1 << ", " << t << " -> " << kyosu::slerp(c0, q1, t) << std::endl;
+
std::cout << e0 << ", " << q1 << ", " << t << " -> " << kyosu::slerp(e0, q1, t) << std::endl;
+
std::cout << c0 << ", " << wq1<< ", " << t << " -> " << kyosu::slerp(c0, wq1, t) << std::endl;
+
std::cout << we0<< ", " << wq1 << ", " << t << " -> " << kyosu::slerp(we0, wq1, t) << std::endl;
+
std::cout << we0<< ", " << q1 << ", " << t << " -> " << kyosu::slerp(we0, q1, t) << std::endl;
+
+
return 0;
+
}
+
constexpr tags::callable_sign sign
Computes tne normalized value z/abs(z) if z is not zero else 0.
Definition: sign.hpp:75
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_ga680756a6a228206f45212247b16d5961.html b/group__functions_ga680756a6a228206f45212247b16d5961.html index c45f6bba..5b48aab3 100644 --- a/group__functions_ga680756a6a228206f45212247b16d5961.html +++ b/group__functions_ga680756a6a228206f45212247b16d5961.html @@ -160,7 +160,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << tanpi(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << tanpi(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << tanpi(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << tanpi(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_ga6f78a4312ac7bd38e25d0b09b18fe3e6.html b/group__functions_ga6f78a4312ac7bd38e25d0b09b18fe3e6.html index 6392ab1f..3ebfdb86 100644 --- a/group__functions_ga6f78a4312ac7bd38e25d0b09b18fe3e6.html +++ b/group__functions_ga6f78a4312ac7bd38e25d0b09b18fe3e6.html @@ -160,7 +160,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << sqrt(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << sqrt(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << sqrt(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << sqrt(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_ga761c2a207a0417867f0eb4b3dc30ee2b.html b/group__functions_ga761c2a207a0417867f0eb4b3dc30ee2b.html index a1d0f141..402e2c9e 100644 --- a/group__functions_ga761c2a207a0417867f0eb4b3dc30ee2b.html +++ b/group__functions_ga761c2a207a0417867f0eb4b3dc30ee2b.html @@ -160,7 +160,34 @@

exp(i*z).

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+ + + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << exp_ipi(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << exp_ipi(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << exp_ipi(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << exp_ipi(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_ga764d5554dc7ce3cac3302591c4d75947.html b/group__functions_ga764d5554dc7ce3cac3302591c4d75947.html index 7ee2f72e..99fe9a88 100644 --- a/group__functions_ga764d5554dc7ce3cac3302591c4d75947.html +++ b/group__functions_ga764d5554dc7ce3cac3302591c4d75947.html @@ -162,7 +162,60 @@

abs(z1)*log(z0))

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
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 << " -> " << pow_abs(e0, e1) << "\n";
+
std::cout << e0 << ", " << e0 << " -> " << pow_abs(e0, e0) << "\n";
+
we_t we0(e0);
+
we_t we1(e1);
+
std::cout << we0 << ", " << we1 << " -> " << pow_abs(we0, we1) << "\n";
+
+
std::cout << "Complex: "<< "\n";
+
c_t c0(1, 5);
+
c_t c1(5, 9);
+
std::cout << c0 << ", " << c1 << " -> " << pow_abs(c0, c1) << "\n";
+
std::cout << c0 << ", " << c0 << " -> " << pow_abs(c0, c0) << "\n";
+
wc_t wc0(c0, c1);
+
wc_t wc1(c1, c1);
+
std::cout << wc0 << ", " << wc1 << " -> " << pow_abs(wc0, wc1) << "\n";
+
+
std::cout << "Quaternion: "<< "\n";
+
q_t q0(1, 5, 2, 3);
+
q_t q1(5, 9, 6, 7);
+
std::cout << q0 << ", " << q1 << " -> " << pow_abs(q0, q1) << "\n";
+
std::cout << q0 << ", " << q0 << " -> " << pow_abs(q0, q0) << "\n";
+
wq_t wq0(q0, q1);
+
wq_t wq1(q1, q1);
+
std::cout << wq0 << ", " << wq1 << " -> " << pow_abs(wq0, wq1) << "\n";
+
+
std::cout << "Mixed: "<< "\n";
+
std::cout << kyosu::pow_abs(c0, q1) << std::endl;
+
std::cout << kyosu::pow_abs(e0, q1) << std::endl;
+
std::cout << kyosu::pow_abs(c0, wq1) << std::endl;
+
std::cout << kyosu::pow_abs(we0, q1) << std::endl;
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_ga926e8d9f232cf45c07fe4f2a23353bb9.html b/group__functions_ga926e8d9f232cf45c07fe4f2a23353bb9.html index 4d210cc2..3d90af7d 100644 --- a/group__functions_ga926e8d9f232cf45c07fe4f2a23353bb9.html +++ b/group__functions_ga926e8d9f232cf45c07fe4f2a23353bb9.html @@ -169,7 +169,43 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
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>>;
+
+
std::cout << "Real: "<< "\n";
+
e_t e0(1);
+
e_t e1(2);
+
std::cout << e0 << ", " << e1 << " -> " << lrising_factorial(e0, e1) << "\n";
+
std::cout << e0 << ", " << e0 << " -> " << lrising_factorial(e0, e0) << "\n";
+
we_t we0(e0);
+
we_t we1(e1);
+
std::cout << we0 << ", " << we1 << " -> " << lrising_factorial(we0, we1) << "\n";
+
+
std::cout << "Complex: "<< "\n";
+
c_t c0(1, 5);
+
c_t c1(5, 9);
+
std::cout << c0 << ", " << c1 << " -> " << lrising_factorial(c0, c1) << "\n";
+
std::cout << c0 << ", " << c0 << " -> " << lrising_factorial(c0, c0) << "\n";
+
wc_t wc0(c0, c1);
+
wc_t wc1(c1, c1);
+
std::cout << wc0 << ", " << wc1 << " -> " << lrising_factorial(wc0, wc1) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_ga961299cde75efe464ea2e3f9944d1f33.html b/group__functions_ga961299cde75efe464ea2e3f9944d1f33.html index 4e4e215e..1e0393cd 100644 --- a/group__functions_ga961299cde75efe464ea2e3f9944d1f33.html +++ b/group__functions_ga961299cde75efe464ea2e3f9944d1f33.html @@ -160,7 +160,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << sign(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << sign(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << sign(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << sign(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_ga9b2e4c2e043be340f42910dbf5ec54ed.html b/group__functions_ga9b2e4c2e043be340f42910dbf5ec54ed.html index 39cfe950..ba516256 100644 --- a/group__functions_ga9b2e4c2e043be340f42910dbf5ec54ed.html +++ b/group__functions_ga9b2e4c2e043be340f42910dbf5ec54ed.html @@ -160,7 +160,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << sech(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << sech(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << sech(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << sech(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_gaa2dcdb1644aa5086e764ee6de919ad93.html b/group__functions_gaa2dcdb1644aa5086e764ee6de919ad93.html index 89e7d360..d8a1c3dc 100644 --- a/group__functions_gaa2dcdb1644aa5086e764ee6de919ad93.html +++ b/group__functions_gaa2dcdb1644aa5086e764ee6de919ad93.html @@ -205,6 +205,7 @@

Example

std::cout << wq0 << ", " << q1 << " -> " << dot(wq0, q1) << "\n";
std::cout << wq0 << ", " << c1 << " -> " << dot(wq0, c1) << "\n";
std::cout << wq0 << ", " << e1 << " -> " << dot(wq0, e1) << "\n";
+
std::cout << q0 << ", " << we1 << " -> " << dot(q0, we1) << "\n";
return 0;
}
diff --git a/group__functions_gaae9065f698fe37841a85e340a16af948.html b/group__functions_gaae9065f698fe37841a85e340a16af948.html index 3459a177..8b2e060b 100644 --- a/group__functions_gaae9065f698fe37841a85e340a16af948.html +++ b/group__functions_gaae9065f698fe37841a85e340a16af948.html @@ -162,7 +162,60 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
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 << " -> " << pow1p(e0, e1) << "\n";
+
std::cout << e0 << ", " << e0 << " -> " << pow1p(e0, e0) << "\n";
+
we_t we0(e0);
+
we_t we1(e1);
+
std::cout << we0 << ", " << we1 << " -> " << pow1p(we0, we1) << "\n";
+
+
std::cout << "Complex: "<< "\n";
+
c_t c0(1, 5);
+
c_t c1(5, 9);
+
std::cout << c0 << ", " << c1 << " -> " << pow1p(c0, c1) << "\n";
+
std::cout << c0 << ", " << c0 << " -> " << pow1p(c0, c0) << "\n";
+
wc_t wc0(c0, c1);
+
wc_t wc1(c1, c1);
+
std::cout << wc0 << ", " << wc1 << " -> " << pow1p(wc0, wc1) << "\n";
+
+
std::cout << "Quaternion: "<< "\n";
+
q_t q0(1, 5, 2, 3);
+
q_t q1(5, 9, 6, 7);
+
std::cout << q0 << ", " << q1 << " -> " << pow1p(q0, q1) << "\n";
+
std::cout << q0 << ", " << q0 << " -> " << pow1p(q0, q0) << "\n";
+
wq_t wq0(q0, q1);
+
wq_t wq1(q1, q1);
+
std::cout << wq0 << ", " << wq1 << " -> " << pow1p(wq0, wq1) << "\n";
+
+
std::cout << "Mixed: "<< "\n";
+
std::cout << kyosu::pow1p(c0, q1) << std::endl;
+
std::cout << kyosu::pow1p(e0, q1) << std::endl;
+
std::cout << kyosu::pow1p(c0, wq1) << std::endl;
+
std::cout << kyosu::pow1p(we0, q1) << std::endl;
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_gab1054201f9cf583c8723b683ac50abce.html b/group__functions_gab1054201f9cf583c8723b683ac50abce.html index d0d89497..46884c1c 100644 --- a/group__functions_gab1054201f9cf583c8723b683ac50abce.html +++ b/group__functions_gab1054201f9cf583c8723b683ac50abce.html @@ -162,7 +162,60 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
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 << " -> " << ldiv(e0, e1) << "\n";
+
std::cout << e0 << ", " << e0 << " -> " << ldiv(e0, e0) << "\n";
+
we_t we0(e0);
+
we_t we1(e1);
+
std::cout << we0 << ", " << we1 << " -> " << ldiv(we0, we1) << "\n";
+
+
std::cout << "Complex: "<< "\n";
+
c_t c0(1, 5);
+
c_t c1(5, 9);
+
std::cout << c0 << ", " << c1 << " -> " << ldiv(c0, c1) << "\n";
+
std::cout << c0 << ", " << c0 << " -> " << ldiv(c0, c0) << "\n";
+
wc_t wc0(c0, c1);
+
wc_t wc1(c1, c1);
+
std::cout << wc0 << ", " << wc1 << " -> " << ldiv(wc0, wc1) << "\n";
+
+
std::cout << "Quaternion: "<< "\n";
+
q_t q0(1, 5, 2, 3);
+
q_t q1(5, 9, 6, 7);
+
std::cout << q0 << ", " << q1 << " -> " << ldiv(q0, q1) << "\n";
+
std::cout << q0 << ", " << q0 << " -> " << ldiv(q0, q0) << "\n";
+
wq_t wq0(q0, q1);
+
wq_t wq1(q1, q1);
+
std::cout << wq0 << ", " << wq1 << " -> " << ldiv(wq0, wq1) << "\n";
+
+
std::cout << "Mixed: "<< "\n";
+
std::cout << kyosu::ldiv(c0, q1) << std::endl;
+
std::cout << kyosu::ldiv(e0, q1) << std::endl;
+
std::cout << kyosu::ldiv(c0, wq1) << std::endl;
+
std::cout << kyosu::ldiv(we0, q1) << std::endl;
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_gabd703393200a757087fb7f2054546dcf.html b/group__functions_gabd703393200a757087fb7f2054546dcf.html index 580a3557..62e3feb4 100644 --- a/group__functions_gabd703393200a757087fb7f2054546dcf.html +++ b/group__functions_gabd703393200a757087fb7f2054546dcf.html @@ -161,7 +161,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << radinpi(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << radinpi(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << radinpi(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << radinpi(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_gabfd2527bde97bcd86c6d1933fce660a1.html b/group__functions_gabfd2527bde97bcd86c6d1933fce660a1.html index 5bf3ef20..37457c9a 100644 --- a/group__functions_gabfd2527bde97bcd86c6d1933fce660a1.html +++ b/group__functions_gabfd2527bde97bcd86c6d1933fce660a1.html @@ -160,7 +160,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << sinpicospi(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << sinpicospi(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << sinpicospi(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << sinpicospi(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_gac6ffcc3696c865798531628577792946.html b/group__functions_gac6ffcc3696c865798531628577792946.html index 498cec21..7633a10e 100644 --- a/group__functions_gac6ffcc3696c865798531628577792946.html +++ b/group__functions_gac6ffcc3696c865798531628577792946.html @@ -160,7 +160,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << sinc(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << sinc(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << sinc(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << sinc(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_gacb9f75de7a67c7d512f135c26b10cdf1.html b/group__functions_gacb9f75de7a67c7d512f135c26b10cdf1.html index 21beccbe..8a05f512 100644 --- a/group__functions_gacb9f75de7a67c7d512f135c26b10cdf1.html +++ b/group__functions_gacb9f75de7a67c7d512f135c26b10cdf1.html @@ -160,7 +160,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << sinpi(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << sinpi(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << sinpi(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << sinpi(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_gad5a796471bcfd81c38de6db0658fa23a.html b/group__functions_gad5a796471bcfd81c38de6db0658fa23a.html index f2c246ef..6e0d3e10 100644 --- a/group__functions_gad5a796471bcfd81c38de6db0658fa23a.html +++ b/group__functions_gad5a796471bcfd81c38de6db0658fa23a.html @@ -160,7 +160,34 @@

exp(i*z).

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
using kyosu::exp_i;
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << exp_i(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << exp_i(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << exp_i(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << exp_i(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_gad65d1920bd1721b78982441aeb5b4036.html b/group__functions_gad65d1920bd1721b78982441aeb5b4036.html index 982f9a25..4f83f14a 100644 --- a/group__functions_gad65d1920bd1721b78982441aeb5b4036.html +++ b/group__functions_gad65d1920bd1721b78982441aeb5b4036.html @@ -160,7 +160,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << tanh(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << tanh(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << tanh(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << tanh(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_gae8e08be7b28ad1cf9159ae564115867f.html b/group__functions_gae8e08be7b28ad1cf9159ae564115867f.html index e590293b..7cc76b42 100644 --- a/group__functions_gae8e08be7b28ad1cf9159ae564115867f.html +++ b/group__functions_gae8e08be7b28ad1cf9159ae564115867f.html @@ -142,20 +142,21 @@

-

Select a value between two arguments based on a logical mask.

+

convert to a target typek

Defined in Header

#include <kyosu/functions.hpp>

Callable Signatures

{
-
template<eve::value T, eve::value U, eve::value V>
-
constexpr auto convert(T x, U, y, V z ) noexcept;
+
template<eve::value T, eve::value U, eve::value U>
+
constexpr auto convert(T x, eve::as<U> ) noexcept;
}
-
constexpr tags::callable_convert convert
Select a value between two arguments based on a logical mask.
Definition: convert.hpp:75
+
constexpr tags::callable_convert convert
convert to a target typek
Definition: convert.hpp:76
Main KYOSU namespace.
Definition: acos.hpp:14

Parameters

    -
  • z : Value to process.
  • +
  • x : Value to process.
  • +
  • U`: target scalar type to convert to.

Return value

Example

diff --git a/group__functions_gaf190a649d5907b9f6c177bb100a73c8d.html b/group__functions_gaf190a649d5907b9f6c177bb100a73c8d.html index a82c4c72..4f15cb5d 100644 --- a/group__functions_gaf190a649d5907b9f6c177bb100a73c8d.html +++ b/group__functions_gaf190a649d5907b9f6c177bb100a73c8d.html @@ -163,7 +163,61 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
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);
+
e_t t(0.3);
+
std::cout << e0 << ", " << e1 << ", " << t << " -> " << lerp(e0, e1, t) << "\n";
+
std::cout << e0 << ", " << e0 << ", " << t << " -> " << lerp(e0, e0, t) << "\n";
+
we_t we0(e0);
+
we_t we1(e1);
+
std::cout << we0 << ", " << we1 << ", " << t<< " -> " << lerp(we0, we1, t) << "\n";
+
+
std::cout << "Complex: "<< "\n";
+
c_t c0(1, 5);
+
c_t c1(5, 9);
+
std::cout << c0 << ", " << c1 << ", " << t << " -> " << lerp(c0, c1, t) << "\n";
+
std::cout << c0 << ", " << c0 << ", " << t << " -> " << lerp(c0, c0, t) << "\n";
+
wc_t wc0(c0, c1);
+
wc_t wc1(c1, c1);
+
std::cout << wc0 << ", " << wc1 << ", " << t << " -> " << lerp(wc0, wc1, t) << "\n";
+
+
std::cout << "Quaternion: "<< "\n";
+
q_t q0(1, 5, 2, 3);
+
q_t q1(5, 9, 6, 7);
+
std::cout << q0 << ", " << q1 << ", " << t << " -> " << lerp(q0, q1, t) << "\n";
+
std::cout << q0 << ", " << q0 << ", " << t << " -> " << lerp(q0, q0, t) << "\n";
+
wq_t wq0(q0, q1);
+
wq_t wq1(q1, q1);
+
std::cout << wq0 << ", " << wq1 << ", " << t << " -> " << lerp(wq0, wq1, t) << "\n";
+
+
std::cout << "Mixed: "<< "\n";
+
std::cout << c0 << ", " << q1 << ", " << t << " -> " << kyosu::lerp(c0, q1, t) << std::endl;
+
std::cout << e0 << ", " << q1 << ", " << t << " -> " << kyosu::lerp(e0, q1, t) << std::endl;
+
std::cout << c0 << ", " << wq1<< ", " << t << " -> " << kyosu::lerp(c0, wq1, t) << std::endl;
+
std::cout << we0<< ", " << q1 << ", " << t << " -> " << kyosu::lerp(we0, q1, t) << std::endl;
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__functions_gaf34684f4a02ca7468c2f7cb440779a6d.html b/group__functions_gaf34684f4a02ca7468c2f7cb440779a6d.html index e79a4486..d73e1fed 100644 --- a/group__functions_gaf34684f4a02ca7468c2f7cb440779a6d.html +++ b/group__functions_gaf34684f4a02ca7468c2f7cb440779a6d.html @@ -160,7 +160,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << sincos(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << sincos(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << sincos(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << sincos(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__quaternion.html b/group__quaternion.html index c57697cf..f25beca8 100644 --- a/group__quaternion.html +++ b/group__quaternion.html @@ -136,21 +136,21 @@ constexpr tags::callable_from_cylindrical kyosu::from_cylindrical = {}  Callable object computing a quaternion from its cylindrical representation.
  -constexpr tags::callable_from_cylindrospherical kyosu::from_cylindrospherical = {} - Callable object computing a quaternion from its cylindrospherical representation.
-  +constexpr tags::callable_from_cylindrospherical kyosu::from_cylindrospherical = {} + Callable object computing a quaternion from its cylindrospherical representation.
+  constexpr tags::callable_from_euler kyosu::from_euler = {}  Callable object computing a quaternion from its euler representation.
  -constexpr tags::callable_from_multipolar kyosu::from_multipolar = {} - Callable object computing a quaternion from its multipolar representation.
-  +constexpr tags::callable_from_multipolar kyosu::from_multipolar = {} + Callable object computing a quaternion from its multipolar representation.
+  constexpr tags::callable_from_rotation_matrix kyosu::from_rotation_matrix = {}  Callable object computing a quaternion from its rotation_matrix representation.
  -constexpr tags::callable_from_semipolar kyosu::from_semipolar = {} - Callable object computing a quaternion from its semipolar representation.
-  +constexpr tags::callable_from_semipolar kyosu::from_semipolar = {} + Callable object computing a quaternion from its semipolar representation.
+  constexpr tags::callable_from_spherical kyosu::from_spherical = {}  Callable object computing a quaternion from its spherical representation.
  diff --git a/group__quaternion_ga06868e959a899a9f2348b07c330c0048.html b/group__quaternion_ga06868e959a899a9f2348b07c330c0048.html index b1536f24..c10a1d51 100644 --- a/group__quaternion_ga06868e959a899a9f2348b07c330c0048.html +++ b/group__quaternion_ga06868e959a899a9f2348b07c330c0048.html @@ -161,7 +161,31 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + +
+
auto r = 2.0;
+
auto a = eve::pio_3(eve::as(r));
+
auto h1 = 3.0;
+
auto h2 = 4.0;
+
std::cout << " <- modulus " << r << std::endl;
+
std::cout << " <- angle " << a << std::endl;
+
std::cout << " <- h1 " << h1<< std::endl;
+
std::cout << " <- h2 " << h2<< std::endl;
+
std::cout << " -> " << from_cylindrical(r, a, h1, h2) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__quaternion_ga31804ee3fdb4a806efea330cf1e20898.html b/group__quaternion_ga31804ee3fdb4a806efea330cf1e20898.html index 43bd22dc..11881465 100644 --- a/group__quaternion_ga31804ee3fdb4a806efea330cf1e20898.html +++ b/group__quaternion_ga31804ee3fdb4a806efea330cf1e20898.html @@ -159,7 +159,40 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+ + + +
using e_t = float;
+ + +
+
std::cout << "Real: "<< "\n";
+
e_t e0(1);
+
auto [ae, axe] = to_angle_axis(e0);
+
std::cout << e0 << " -> " << ae << ", (" << axe[0] << ", " << axe[1] << ", " << axe[2] << ") " "\n";
+
+
std::cout << "Complex: "<< "\n";
+
c_t c0(1, 5);
+
auto [ac, axc] = to_angle_axis(c0);
+
std::cout << c0 << " -> " << ac << ", (" << axc[0] << ", " << axc[1] << ", " << axc[2] << ") " "\n";
+
+
+
std::cout << "Quaternion: "<< "\n";
+
q_t q0(1, 5, 2, 3);
+
auto [aq, axq] = to_angle_axis(q0);
+
std::cout << q0 << " -> " << aq << ", (" << axq[0] << ", " << axq[1] << ", " << axq[2] << ") " "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__quaternion_ga3519a64d1cbe848507cc57a05b5ed1b3.html b/group__quaternion_ga3519a64d1cbe848507cc57a05b5ed1b3.html index b5bcd053..f07049e9 100644 --- a/group__quaternion_ga3519a64d1cbe848507cc57a05b5ed1b3.html +++ b/group__quaternion_ga3519a64d1cbe848507cc57a05b5ed1b3.html @@ -159,7 +159,45 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
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);
+
std::cout << e0 << " -> " << to_semipolar(e0) << "\n";
+
we_t we0(e0);
+
std::cout << we0 << " -> " << to_semipolar(we0) << "\n";
+
+
std::cout << "Complex: "<< "\n";
+
c_t c0(1, 5);
+
std::cout << c0 << " -> " << to_semipolar(c0) << "\n";
+
wc_t wc0(c0);
+
std::cout << wc0 << " -> " << to_semipolar(wc0) << "\n";
+
+
std::cout << "Quaternion: "<< "\n";
+
q_t q0(1, 5, 2, 3);
+
std::cout << q0 << " -> " << to_semipolar(q0) << "\n";
+
wq_t wq0(q0);
+
std::cout << wq0 << " -> " << to_semipolar(wq0) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__quaternion_ga3f3485eda1a78b4bb970df61c7b602d7.html b/group__quaternion_ga3f3485eda1a78b4bb970df61c7b602d7.html index b0c39084..89ad895b 100644 --- a/group__quaternion_ga3f3485eda1a78b4bb970df61c7b602d7.html +++ b/group__quaternion_ga3f3485eda1a78b4bb970df61c7b602d7.html @@ -172,7 +172,30 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+
using kyosu::X_;
+
using kyosu::Z_;
+
using kyosu::extrinsic;
+
+
auto psi = eve::pio_3(eve::as(0.0));
+
auto theta= eve::pio_4(eve::as(0.0));
+
auto phi = eve::pio_6(eve::as(0.0));
+
+
std::cout << " <- psi " << psi << std::endl;
+
std::cout << " <- theta " << theta << std::endl;
+
std::cout << " <- phi " << phi<< std::endl;
+
std::cout << " -> from_euler(psi, theta, phi, X_, Z_, X_, extrinsic) "
+
<< kyosu::from_euler(psi, theta, phi, X_, Z_, X_, extrinsic) << "\n";
+
+
return 0;
+
}
+
diff --git a/group__quaternion_ga47b1fa117c5671882a31b65c997660d7.html b/group__quaternion_ga47b1fa117c5671882a31b65c997660d7.html index aa30721d..92463dd3 100644 --- a/group__quaternion_ga47b1fa117c5671882a31b65c997660d7.html +++ b/group__quaternion_ga47b1fa117c5671882a31b65c997660d7.html @@ -159,7 +159,34 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+ + + +
+
std::cout << "Real: ";
+
std::cout << 72.9f << " -> " << rot_angle(72.9f) << "\n";
+
+
std::cout << "Complex: ";
+
std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> " << rot_angle(kyosu::complex_t<float>(3.5f,-2.9f)) << "\n";
+
+
std::cout << "Quaternion: ";
+
std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << rot_angle(kyosu::quaternion_t<double>(1.,2.,3.,4.)) << "\n";
+
+
std::cout << "SIMD: ";
+
using wc_t = eve::wide<kyosu::complex_t<double>, eve::fixed<2>>;
+
std::cout << wc_t(kyosu::complex_t<double>(1.3,-3.7)) << " -> " << rot_angle(wc_t(kyosu::complex_t<double>(1.3,-3.7))) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__quaternion_gadcb9029f90743da06cc952f8fe8120f0.html b/group__quaternion_ga768dc300e06ddd80f84746662db3c01b.html similarity index 69% rename from group__quaternion_gadcb9029f90743da06cc952f8fe8120f0.html rename to group__quaternion_ga768dc300e06ddd80f84746662db3c01b.html index 93ca7a3a..db695d80 100644 --- a/group__quaternion_gadcb9029f90743da06cc952f8fe8120f0.html +++ b/group__quaternion_ga768dc300e06ddd80f84746662db3c01b.html @@ -96,7 +96,7 @@
@@ -122,8 +122,8 @@
- -

◆ from_multipolar

+ +

◆ from_multipolar

@@ -132,7 +132,7 @@

- +
constexpr tags::callable_from_multipolar kyosu::from_multipolar = {}kyosu::from_multipolar = {}
@@ -150,33 +150,41 @@

Callable Signatures

namespace eve
{
-
auto from_multipolar( auto rho1, auto theta1 auto rho2, auto theta2) const noexcept;
+
auto from_multipolar( auto rho1, auto theta1 auto rho2, auto theta2) const noexcept;
}
-
constexpr tags::callable_from_multipolar from_multipolar
Callable object computing a quaternion from its multipolar representation.
Definition: from_multipolar.hpp:97
+
constexpr tags::callable_from_multipolar from_multipolar
Callable object computing a quaternion from its multipolar representation.
Definition: from_multipolar.hpp:97

Parameters

rho1, rho2: the moduli 'theta1', 'theta2': the angles in radian

Return value

the quaternion value


-

+

Example

-

This function build quaternions in a way similar to the way polar builds complex numbers from a multipolar representation of an \(\mathbb{R}^4\) element.

-

from_multipolar the two \(\mathbb{C}\) components of the quaternion are given in polar coordinates

-

Defined in header

-
#include eve/module/quaternion.hpp>`
-

Callable Signatures

-
namespace eve
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
{
-
auto from_multipolar( auto rho1, auto theta1 auto rho2, auto theta2) const noexcept;
+ + + +
+
auto r1 = 2.0;
+
auto t1 = eve::pio_3(eve::as(r1));
+
auto r2 = 3.0;
+
auto t2 = eve::pio_2(eve::as(r1));
+
std::cout << " <- r1 " << r1 << std::endl;
+
std::cout << " <- t1 " << t1<< std::endl;
+
std::cout << " <- r2 " << r2<< std::endl;
+
std::cout << " <- t2 " << t2<< std::endl;
+
std::cout << " -> " << from_multipolar(r1, t1, r2, t2) << "\n";
+
+
return 0;
}
-

Parameters

-

rho1, rho2: the moduli 'theta1', 'theta2': the angles in radian

-

Return value

-

the quaternion value

-
-

-Example

-
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+

diff --git a/group__quaternion_ga77eff7a7e881497c34bc74d948cf82b0.html b/group__quaternion_ga77eff7a7e881497c34bc74d948cf82b0.html index bc40b078..0cbd1481 100644 --- a/group__quaternion_ga77eff7a7e881497c34bc74d948cf82b0.html +++ b/group__quaternion_ga77eff7a7e881497c34bc74d948cf82b0.html @@ -164,7 +164,37 @@

Note
use this function if you really need the rotation matrix, but to rotate vectors prefer the function rot_vec that directly uses the quaternion.

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
int main()
+
{
+
+ + + +
+
+
std::cout << "Quaternion: "<< "\n";
+
q_t q0(1, 5, 2, 3);
+
auto m = to_rotation_matrix(q0);
+
std::cout << "q0 = " << q0 << std::endl;
+
std::cout << "to_rotation_matrix(q0) = \n";
+
for(int i=0; i <3 ; ++i)
+
{
+
std::cout << " ";
+
for(int j=0; j < 2 ; ++j)
+
{
+
std::cout << m[i][j] << ", ";
+
}
+
std::cout << m[i][2] << "\n";
+
}
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__quaternion_ga8d6d4d74663080af513e4428dcc01612.html b/group__quaternion_ga8d6d4d74663080af513e4428dcc01612.html index b22ba005..600b4bca 100644 --- a/group__quaternion_ga8d6d4d74663080af513e4428dcc01612.html +++ b/group__quaternion_ga8d6d4d74663080af513e4428dcc01612.html @@ -171,7 +171,61 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
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 << " -> " << average(e0, e1) << "\n";
+
std::cout << e0 << ", " << e0 << " -> " << average(e0, e0) << "\n";
+
we_t we0(e0);
+
we_t we1(e1);
+
std::cout << we0 << ", " << we1 << " -> " << average(we0, we1) << "\n";
+
+
std::cout << "Complex: "<< "\n";
+
c_t c0(1, 5);
+
c_t c1(5, 9);
+
std::cout << c0 << ", " << c1 << " -> " << average(c0, c1) << "\n";
+
std::cout << c0 << ", " << c0 << " -> " << average(c0, c0) << "\n";
+
wc_t wc0(c0, c1);
+
wc_t wc1(c1, c1);
+
std::cout << wc0 << ", " << wc1 << " -> " << average(wc0, wc1) << "\n";
+
+
std::cout << "Quaternion: "<< "\n";
+
q_t q0(1, 5, 2, 3);
+
q_t q1(5, 9, 6, 7);
+
std::cout << q0 << ", " << q1 << " -> " << average(q0, q1) << "\n";
+
std::cout << q0 << ", " << q0 << " -> " << average(q0, q0) << "\n";
+
wq_t wq0(q0, q1);
+
wq_t wq1(q1, q1);
+
std::cout << wq0 << ", " << wq1 << " -> " << average(wq0, wq1) << "\n";
+
+
std::cout << "Mixed: "<< "\n";
+
std::cout << kyosu::average(c0, q1) << std::endl;
+
std::cout << kyosu::average(e0, q1) << std::endl;
+
std::cout << kyosu::average(c0, wq1) << std::endl;
+
std::cout << kyosu::average(we0, q1) << std::endl;
+
+
return 0;
+
}
+
constexpr tags::callable_average average
Computes the average of the two parameters.
Definition: average.hpp:77
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__quaternion_ga943f811be2981809d36a4f31f52b0025.html b/group__quaternion_ga943f811be2981809d36a4f31f52b0025.html index 2cc151e7..b14d8c46 100644 --- a/group__quaternion_ga943f811be2981809d36a4f31f52b0025.html +++ b/group__quaternion_ga943f811be2981809d36a4f31f52b0025.html @@ -161,40 +161,32 @@

+

Example

-
#include <eve/module/quaternion.hpp>
+
#include <kyosu/kyosu.hpp>
#include <eve/wide.hpp>
#include <iostream>
-
using wide_ft = eve::wide <float, eve::fixed<4>>;
-
int main()
{
-
wide_ft a = { 0.0f, 1.0f, -1.0f, 0.5f};
-
wide_ft b = { 2.0f , -1.0, -5.0, 0.0};
-
wide_ft c = { 1.0f, -3.0f, -4.0f, 1.5f};
-
wide_ft d = { -2.0, 1.5f, 2.3f, 6.7f};
-
wide_ft r1= { 1.0f, 2.0f, 3.0f, 0.0f};
-
wide_ft r2= { 0.0f, 3.0f, 4.0f, 10.0f};
+ + +
-
std::cout
-
<< "---- simd" << std::endl
-
<< "<- a = " << a << std::endl
-
<< "<- b = " << b << std::endl
-
<< "<- c = " << c << std::endl
-
<< "<- d = " << d << std::endl
-
<< "<- r1 = " << c << std::endl
-
<< "<- r2 = " << d << std::endl
-
<< "-> cylindrical(r1, b, c, d) = " << eve::from_cylindrical(r1, b, c, d) << std::endl
-
<< "-> cylindrospherical(r1, r2, c, d) = " << eve::from_cylindrospherical(r1, r2, c, d) << std::endl
-
<< "-> multipolar(r1, c, r2, d) = " << eve::from_multipolar(r1, c, r2, d) << std::endl
-
<< "-> semipolar(r1, b, c, d) = " << eve::from_semipolar(r1, b, c, d) << std::endl
-
<< "-> spherical(r1, b, c, d) = " << eve::from_spherical(r1, b, c, d) << std::endl
-
;
+
auto r = 2.0;
+
auto theta = eve::pio_3(eve::as(r));
+
auto phi1 = eve::pio_4(eve::as(r));
+
auto phi2 = eve::pio_2(eve::as(r));
+
std::cout << " <- r " << r << std::endl;
+
std::cout << " <- theta " << theta<< std::endl;
+
std::cout << " <- phi1 " << phi1<< std::endl;
+
std::cout << " <- phi2 " << phi2<< std::endl;
+
std::cout << " -> " << from_spherical(r, theta, phi1, phi2) << "\n";
return 0;
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
diff --git a/group__quaternion_ga36f4e319eab743013ddf5a868679fb63.html b/group__quaternion_gaa17a7e084e8ef0ba4c64b55e456b1f57.html similarity index 58% rename from group__quaternion_ga36f4e319eab743013ddf5a868679fb63.html rename to group__quaternion_gaa17a7e084e8ef0ba4c64b55e456b1f57.html index ae283d37..822dab9c 100644 --- a/group__quaternion_ga36f4e319eab743013ddf5a868679fb63.html +++ b/group__quaternion_gaa17a7e084e8ef0ba4c64b55e456b1f57.html @@ -96,7 +96,7 @@
@@ -122,8 +122,8 @@
- -

◆ from_cylindrospherical

+ +

◆ from_cylindrospherical

@@ -132,7 +132,7 @@

- +
kyosu::from_cylindrospherical = {}constexpr tags::callable_from_cylindrospherical kyosu::from_cylindrospherical = {}
@@ -149,9 +149,9 @@

Callable Signatures

namespace eve
{
-
auto from_cylindrospherical(auto t, auto radius, auto longitude, auto latitude) const noexcept;
+
auto from_cylindrospherical(auto t, auto radius, auto longitude, auto latitude) const noexcept;
}
-
constexpr tags::callable_from_cylindrospherical from_cylindrospherical
Callable object computing a quaternion from its cylindrospherical representation.
Definition: from_cylindricospherical.hpp:98
+
constexpr tags::callable_from_cylindrospherical from_cylindrospherical
Callable object computing a quaternion from its cylindrospherical representation.
Definition: from_cylindricospherical.hpp:98

Parameters

  • t, radius: the moduli
  • @@ -162,35 +162,64 @@

    Example

    -
    #include <eve/module/quaternion.hpp>
    +
    #include <kyosu/kyosu.hpp>
    #include <eve/wide.hpp>
    #include <iostream>
    -
    using wide_ft = eve::wide <float, eve::fixed<4>>;
    +
    int main()
    +
    {
    + + +
    +
    auto radius = 2.0;
    +
    auto t = eve::pio_3(eve::as(radius));
    +
    auto longitude = eve::pio_4(eve::as(radius));
    +
    auto latitude = eve::pio_2(eve::as(radius));
    +
    std::cout << " <- radius " << radius << std::endl;
    +
    std::cout << " <- t " << t << std::endl;
    +
    std::cout << " <- longitude " << longitude << std::endl;
    +
    std::cout << " <- latitude " << latitude << std::endl;
    +
    std::cout << " -> " << from_cylindrospherical(radius, t, longitude, latitude) << "\n";
    +
    +
    return 0;
    +
    }
    +
    as_cayley_dickson_n_t< 4, T > quaternion_t
    Type alias for quaternion numbers.
    Definition: quaternion.hpp:27
    +

    cylindrospherical is specific to quaternions. It is often interesting to consider \(\mathbb{H}\) as the cartesian product of \(\mathbb{R}\) by \(\mathbb{R3}\) (the quaternionic multiplication has then a special form, as given here). This function therefore builds a quaternion from this representation, with the \(\mathbb{R3}\) component given in usual \(\mathbb{R3}\) spherical coordinates.

    +

    Defined in header

    +
    #include eve/module/quaternion.hpp>`
    +

    Callable Signatures

    +
    namespace eve
    +
    {
    +
    auto from_cylindrospherical(auto t, auto radius, auto longitude, auto latitude) const noexcept;
    +
    }
    +

    Parameters

    +
      +
    • t, radius: the moduli
    • +
    • longitude, latitude: angles in radian
    • +
    +

    Return value

    +

    the quaternion value

    +
    +

    +Example

    +
    #include <kyosu/kyosu.hpp>
    +
    #include <eve/wide.hpp>
    +
    #include <iostream>
    int main()
    {
    -
    wide_ft a = { 0.0f, 1.0f, -1.0f, 0.5f};
    -
    wide_ft b = { 2.0f , -1.0, -5.0, 0.0};
    -
    wide_ft c = { 1.0f, -3.0f, -4.0f, 1.5f};
    -
    wide_ft d = { -2.0, 1.5f, 2.3f, 6.7f};
    -
    wide_ft r1= { 1.0f, 2.0f, 3.0f, 0.0f};
    -
    wide_ft r2= { 0.0f, 3.0f, 4.0f, 10.0f};
    + +
    -
    std::cout
    -
    << "---- simd" << std::endl
    -
    << "<- a = " << a << std::endl
    -
    << "<- b = " << b << std::endl
    -
    << "<- c = " << c << std::endl
    -
    << "<- d = " << d << std::endl
    -
    << "<- r1 = " << c << std::endl
    -
    << "<- r2 = " << d << std::endl
    -
    << "-> cylindrical(r1, b, c, d) = " << eve::from_cylindrical(r1, b, c, d) << std::endl
    -
    << "-> cylindrospherical(r1, r2, c, d) = " << eve::from_cylindrospherical(r1, r2, c, d) << std::endl
    -
    << "-> multipolar(r1, c, r2, d) = " << eve::from_multipolar(r1, c, r2, d) << std::endl
    -
    << "-> semipolar(r1, b, c, d) = " << eve::from_semipolar(r1, b, c, d) << std::endl
    -
    << "-> spherical(r1, b, c, d) = " << eve::from_spherical(r1, b, c, d) << std::endl
    -
    ;
    +
    auto radius = 2.0;
    +
    auto t = eve::pio_3(eve::as(radius));
    +
    auto longitude = eve::pio_4(eve::as(radius));
    +
    auto latitude = eve::pio_2(eve::as(radius));
    +
    std::cout << " <- radius " << radius << std::endl;
    +
    std::cout << " <- t " << t << std::endl;
    +
    std::cout << " <- longitude " << longitude << std::endl;
    +
    std::cout << " <- latitude " << latitude << std::endl;
    +
    std::cout << " -> " << from_cylindrospherical(radius, t, longitude, latitude) << "\n";
    return 0;
    }
    diff --git a/group__quaternion_gaa5964ee08fa64046a80d3908056a09c4.html b/group__quaternion_gaa5964ee08fa64046a80d3908056a09c4.html index e0cc9854..d9c58b90 100644 --- a/group__quaternion_gaa5964ee08fa64046a80d3908056a09c4.html +++ b/group__quaternion_gaa5964ee08fa64046a80d3908056a09c4.html @@ -159,7 +159,33 @@

    Example

    -
    +
    #include <kyosu/kyosu.hpp>
    +
    #include <eve/wide.hpp>
    +
    #include <iostream>
    +
    +
    int main()
    +
    {
    + + + +
    +
    std::cout << "Real: ";
    +
    auto v = rot_axis(kyosu::complex_t<float>(3.5f,-2.9f));
    +
    std::cout << 72.9f << " -> (" << v[0] << ", " << v[1] << ", " << v[2] << ")\n";
    +
    +
    std::cout << "Complex: ";
    +
    auto vc = rot_axis(kyosu::complex_t<float>(3.5f,-2.9f));
    +
    std::cout << kyosu::complex_t<float>(3.5f,-2.9f) << " -> (" << vc[0] << ", " << vc[1] << ", " << vc[2] << ")\n";
    +
    +
    std::cout << "Quaternion: ";
    +
    auto vq = rot_axis(kyosu::quaternion_t<double>(1.,2.,3.,4.));
    +
    std::cout << kyosu::quaternion_t<double>(1.,2.,3.,4.) << " -> " << vq[0] << ", " << vq[1] << ", " << vq[2] << ")\n";
    +
    +
    return 0;
    +
    }
    +
    as_cayley_dickson_n_t< 4, T > quaternion_t
    Type alias for quaternion numbers.
    Definition: quaternion.hpp:27
    +
    as_cayley_dickson_n_t< 2, T > complex_t
    Type alias for complex numbers.
    Definition: complex.hpp:27
    +

diff --git a/group__quaternion_gaa82e66812fcb0f8af20b07a448752561.html b/group__quaternion_gaa82e66812fcb0f8af20b07a448752561.html index c9ce5223..ddada835 100644 --- a/group__quaternion_gaa82e66812fcb0f8af20b07a448752561.html +++ b/group__quaternion_gaa82e66812fcb0f8af20b07a448752561.html @@ -159,7 +159,45 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
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);
+
std::cout << e0 << " -> " << to_cylindrical(e0) << "\n";
+
we_t we0(e0);
+
std::cout << we0 << " -> " << to_cylindrical(we0) << "\n";
+
+
std::cout << "Complex: "<< "\n";
+
c_t c0(1, 5);
+
std::cout << c0 << " -> " << to_cylindrical(c0) << "\n";
+
wc_t wc0(c0);
+
std::cout << wc0 << " -> " << to_cylindrical(wc0) << "\n";
+
+
std::cout << "Quaternion: "<< "\n";
+
q_t q0(1, 5, 2, 3);
+
std::cout << q0 << " -> " << to_cylindrical(q0) << "\n";
+
wq_t wq0(q0);
+
std::cout << wq0 << " -> " << to_cylindrical(wq0) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__quaternion_gad7e50e38859bb508a816fdd9d63d7b0a.html b/group__quaternion_gad7e50e38859bb508a816fdd9d63d7b0a.html index edfea2c4..12f3cbcf 100644 --- a/group__quaternion_gad7e50e38859bb508a816fdd9d63d7b0a.html +++ b/group__quaternion_gad7e50e38859bb508a816fdd9d63d7b0a.html @@ -159,7 +159,45 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
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);
+
std::cout << e0 << " -> " << to_spherical(e0) << "\n";
+
we_t we0(e0);
+
std::cout << we0 << " -> " << to_spherical(we0) << "\n";
+
+
std::cout << "Complex: "<< "\n";
+
c_t c0(1, 5);
+
std::cout << c0 << " -> " << to_spherical(c0) << "\n";
+
wc_t wc0(c0);
+
std::cout << wc0 << " -> " << to_spherical(wc0) << "\n";
+
+
std::cout << "Quaternion: "<< "\n";
+
q_t q0(1, 5, 2, 3);
+
std::cout << q0 << " -> " << to_spherical(q0) << "\n";
+
wq_t wq0(q0);
+
std::cout << wq0 << " -> " << to_spherical(wq0) << "\n";
+
+
return 0;
+
}
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__quaternion_ga6bd1f5ec343e8cf12fec6cc72eae2a87.html b/group__quaternion_gae4c3253d49e644eeea3531e3b588fc9c.html similarity index 65% rename from group__quaternion_ga6bd1f5ec343e8cf12fec6cc72eae2a87.html rename to group__quaternion_gae4c3253d49e644eeea3531e3b588fc9c.html index a15efbca..f10dcc11 100644 --- a/group__quaternion_ga6bd1f5ec343e8cf12fec6cc72eae2a87.html +++ b/group__quaternion_gae4c3253d49e644eeea3531e3b588fc9c.html @@ -96,7 +96,7 @@
@@ -122,8 +122,8 @@
- -

◆ from_semipolar

+ +

◆ from_semipolar

@@ -132,7 +132,7 @@

- +
constexpr tags::callable_from_semipolar kyosu::from_semipolar = {}kyosu::from_semipolar = {}
@@ -150,9 +150,9 @@

Callable Signatures

{
-
auto from_semipolar(auto r, auto angle, auto h1, auto h2) const noexcept;
+
auto from_semipolar(auto r, auto angle, auto h1, auto h2) const noexcept;
}
-
constexpr tags::callable_from_semipolar from_semipolar
Callable object computing a quaternion from its semipolar representation.
Definition: from_semipolar.hpp:96
+
constexpr tags::callable_from_semipolar from_semipolar
Callable object computing a quaternion from its semipolar representation.
Definition: from_semipolar.hpp:96
Main KYOSU namespace.
Definition: acos.hpp:14

Parameters

diff --git a/group__quaternion_gae984161c55fda44efe7d7f9b274334c6.html b/group__quaternion_gae984161c55fda44efe7d7f9b274334c6.html index f96a0c72..e6701117 100644 --- a/group__quaternion_gae984161c55fda44efe7d7f9b274334c6.html +++ b/group__quaternion_gae984161c55fda44efe7d7f9b274334c6.html @@ -159,7 +159,61 @@

Example

-
+
#include <kyosu/kyosu.hpp>
+
#include <eve/wide.hpp>
+
#include <iostream>
+
+
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 << " -> " << average(e0, e1) << "\n";
+
std::cout << e0 << ", " << e0 << " -> " << average(e0, e0) << "\n";
+
we_t we0(e0);
+
we_t we1(e1);
+
std::cout << we0 << ", " << we1 << " -> " << average(we0, we1) << "\n";
+
+
std::cout << "Complex: "<< "\n";
+
c_t c0(1, 5);
+
c_t c1(5, 9);
+
std::cout << c0 << ", " << c1 << " -> " << average(c0, c1) << "\n";
+
std::cout << c0 << ", " << c0 << " -> " << average(c0, c0) << "\n";
+
wc_t wc0(c0, c1);
+
wc_t wc1(c1, c1);
+
std::cout << wc0 << ", " << wc1 << " -> " << average(wc0, wc1) << "\n";
+
+
std::cout << "Quaternion: "<< "\n";
+
q_t q0(1, 5, 2, 3);
+
q_t q1(5, 9, 6, 7);
+
std::cout << q0 << ", " << q1 << " -> " << average(q0, q1) << "\n";
+
std::cout << q0 << ", " << q0 << " -> " << average(q0, q0) << "\n";
+
wq_t wq0(q0, q1);
+
wq_t wq1(q1, q1);
+
std::cout << wq0 << ", " << wq1 << " -> " << average(wq0, wq1) << "\n";
+
+
std::cout << "Mixed: "<< "\n";
+
std::cout << kyosu::average(c0, q1) << std::endl;
+
std::cout << kyosu::average(e0, q1) << std::endl;
+
std::cout << kyosu::average(c0, wq1) << std::endl;
+
std::cout << kyosu::average(we0, q1) << std::endl;
+
+
return 0;
+
}
+
constexpr tags::callable_average average
Computes the average of the two parameters.
Definition: average.hpp:77
+
as_cayley_dickson_n_t< 4, T > quaternion_t
Type alias for quaternion numbers.
Definition: quaternion.hpp:27
+
as_cayley_dickson_n_t< 2, T > complex_t
Type alias for complex numbers.
Definition: complex.hpp:27
+
diff --git a/group__quaternion_gaeb24f578562330d825ff8f68da4b9252.html b/group__quaternion_gaeb24f578562330d825ff8f68da4b9252.html index 577c5f81..60e5107b 100644 --- a/group__quaternion_gaeb24f578562330d825ff8f68da4b9252.html +++ b/group__quaternion_gaeb24f578562330d825ff8f68da4b9252.html @@ -151,7 +151,7 @@

{
auto from_angle_axis(auto angle, auto axis, auto norming = normalize) const noexcept;
}
-
constexpr tags::callable_from_angle_axis from_angle_axis
Callable object computing a quaternion from its angle_axis representation.
Definition: from_angle_axis.hpp:89
+
constexpr tags::callable_from_angle_axis from_angle_axis
Callable object computing a quaternion from its angle_axis representation.
Definition: from_angle_axis.hpp:90
Main KYOSU namespace.
Definition: acos.hpp:14

Parameters

    @@ -162,7 +162,35 @@

    Example

    -
    +
    #include <kyosu/kyosu.hpp>
    +
    #include <eve/wide.hpp>
    +
    #include <array>
    +
    #include <iostream>
    +
    +
    int main()
    +
    {
    +
    + + +
    +
    +
    auto theta = eve::pio_3(eve::as<double>());
    +
    std::array<double, 3> ax{1., 2., 3.};
    +
    +
    std::cout << " <- theta = " << theta << std::endl;
    +
    std::cout << " <- axis = (" << ax[0] << ", " << ax[1] << ", " << ax[2] << ")" << std::endl;
    +
    auto q = kyosu::from_angle_axis(theta, ax);
    +
    std::cout << " -> " << kyosu::from_angle_axis(theta, ax) << "\n";
    +
    auto [aa, axx] = kyosu::to_angle_axis(q);
    +
    std::cout << " ->theta = " << aa << std::endl;
    +
    std::cout << " -> axis = (" << axx[0] << ", " << axx[1] << ", " << axx[2] << ")" << std::endl;
    +
    +
    return 0;
    +
    }
    +
    constexpr tags::callable_to_angle_axis to_angle_axis
    Callable object computing the angle_axis coordinates from a quaternion.
    Definition: to_angle_axis.hpp:85
    +
    as_cayley_dickson_n_t< 4, T > quaternion_t
    Type alias for quaternion numbers.
    Definition: quaternion.hpp:27
    +
    as_cayley_dickson_n_t< 2, T > complex_t
    Type alias for complex numbers.
    Definition: complex.hpp:27
    +
    diff --git a/group__quaternion_gafb8e2e7cadea72110b134c4df850ee3a.html b/group__quaternion_gafb8e2e7cadea72110b134c4df850ee3a.html index 237e32e2..1a9fbec5 100644 --- a/group__quaternion_gafb8e2e7cadea72110b134c4df850ee3a.html +++ b/group__quaternion_gafb8e2e7cadea72110b134c4df850ee3a.html @@ -150,15 +150,35 @@

    {
    auto rotate_vec( auto q) const noexcept;
    }
    -
    constexpr tags::callable_rotate_vec rotate_vec
    Callable object rotating an vector using a quaternion.
    Definition: rotate_vec.hpp:105
    +
    constexpr tags::callable_rotate_vec rotate_vec
    Callable object rotating an vector using a quaternion.
    Definition: rotate_vec.hpp:104

    Parameters

    -

    q: quaternion defining the rotation. x: span of 3 elements to rotate

    +

    q: quaternion value defining the rotation. x: span of 3 elements to rotate

    Return value

    the span rotated by q


    Example

    -
    +
    #include <kyosu/kyosu.hpp>
    +
    #include <eve/wide.hpp>
    +
    #include <iostream>
    +
    +
    int main()
    +
    {
    + +
    +
    auto theta = eve::pio_3(eve::as<double>());
    +
    std::array<double, 3> ax{1., 2., 3.};
    +
    std::array<double, 3> v{ 1.5, 2.0, -3.0};
    +
    auto q = kyosu::from_angle_axis(theta, ax);
    +
    std::cout << " v " << v[0] << ", " << v[1] << ", " << v[2] << ")\n";
    +
    std::cout << " q " << q << std::endl;
    +
    auto rv = kyosu::rotate_vec(q, std::span<double, 3>(v));
    +
    std::cout << " rotate_vec(q, v) " << " -> (" << rv[0] << ", " << rv[1] << ", " << rv[2] << ")\n";
    +
    +
    return 0;
    +
    }
    +
    constexpr tags::callable_from_angle_axis from_angle_axis
    Callable object computing a quaternion from its angle_axis representation.
    Definition: from_angle_axis.hpp:90
    +
    diff --git a/group__quaternion_gafe4deac1b486b7f1203090424e8df302.html b/group__quaternion_gafe4deac1b486b7f1203090424e8df302.html index f555f8f3..414481d5 100644 --- a/group__quaternion_gafe4deac1b486b7f1203090424e8df302.html +++ b/group__quaternion_gafe4deac1b486b7f1203090424e8df302.html @@ -152,7 +152,7 @@

    template < typename M >
    auto from_rotation_matrix(auto m) const noexcept
    }
    -
    constexpr tags::callable_from_rotation_matrix from_rotation_matrix
    Callable object computing a quaternion from its rotation_matrix representation.
    Definition: from_rotation_matrix.hpp:114
    +
    constexpr tags::callable_from_rotation_matrix from_rotation_matrix
    Callable object computing a quaternion from its rotation_matrix representation.
    Definition: from_rotation_matrix.hpp:111

    Parameters

    • m the rotation matrix. The actual implementation assumes that m[i][j] will return the ith line and jth column element of the matrix (indices starting from 0).

      @@ -163,7 +163,43 @@

      Example

      -
      +
      #include <kyosu/kyosu.hpp>
      +
      #include <eve/wide.hpp>
      +
      #include <iostream>
      +
      +
      int main()
      +
      {
      +
      + + + + +
      +
      +
      std::cout << "Quaternion: "<< "\n";
      +
      q_t q0(1, 5, 2, 3);
      +
      q0 = kyosu::sign(q0); //normalization is optional
      +
      auto m = to_rotation_matrix(q0);
      +
      std::cout << "q0 = " << q0 << std::endl;
      +
      std::cout << "m = to_rotation_matrix(q0) = \n";
      +
      for(int i=0; i <3 ; ++i)
      +
      {
      +
      std::cout << " ";
      +
      for(int j=0; j < 2 ; ++j)
      +
      {
      +
      std::cout << m[i][j] << ", ";
      +
      }
      +
      std::cout << m[i][2] << "\n";
      +
      }
      +
      std::cout << "from_rotation_matrix(m) = " << from_rotation_matrix(m) << std::endl;
      +
      +
      return 0;
      +
      }
      +
      constexpr tags::callable_sign sign
      Computes tne normalized value z/abs(z) if z is not zero else 0.
      Definition: sign.hpp:75
      +
      constexpr tags::callable_to_rotation_matrix to_rotation_matrix
      Callable object computing a quaternion from its to_rotation_matrix representation.
      Definition: to_rotation_matrix.hpp:115
      +
      as_cayley_dickson_n_t< 4, T > quaternion_t
      Type alias for quaternion numbers.
      Definition: quaternion.hpp:27
      +
      as_cayley_dickson_n_t< 2, T > complex_t
      Type alias for complex numbers.
      Definition: complex.hpp:27
      +
      diff --git a/namespacekyosu.html b/namespacekyosu.html index a83f84db..7c6a432a 100644 --- a/namespacekyosu.html +++ b/namespacekyosu.html @@ -341,7 +341,7 @@  Computes the conjugate value.
        constexpr tags::callable_convert convert = {} - Select a value between two arguments based on a logical mask.
      + convert to a target typek
        constexpr tags::callable_cos cos = {}  Computes the cosine of the argument.
      @@ -441,24 +441,24 @@ constexpr tags::callable_from_cylindrical from_cylindrical = {}  Callable object computing a quaternion from its cylindrical representation.
        -constexpr tags::callable_from_cylindrospherical from_cylindrospherical = {} - Callable object computing a quaternion from its cylindrospherical representation.
      -  +constexpr tags::callable_from_cylindrospherical from_cylindrospherical = {} + Callable object computing a quaternion from its cylindrospherical representation.
      +  constexpr tags::callable_from_euler from_euler = {}  Callable object computing a quaternion from its euler representation.
        -constexpr tags::callable_from_multipolar from_multipolar = {} - Callable object computing a quaternion from its multipolar representation.
      -  +constexpr tags::callable_from_multipolar from_multipolar = {} + Callable object computing a quaternion from its multipolar representation.
      +  constexpr tags::callable_from_polar from_polar = {}  Callable object computing a complex from its polar coordinates.
        constexpr tags::callable_from_rotation_matrix from_rotation_matrix = {}  Callable object computing a quaternion from its rotation_matrix representation.
        -constexpr tags::callable_from_semipolar from_semipolar = {} - Callable object computing a quaternion from its semipolar representation.
      -  +constexpr tags::callable_from_semipolar from_semipolar = {} + Callable object computing a quaternion from its semipolar representation.
      +  constexpr tags::callable_from_spherical from_spherical = {}  Callable object computing a quaternion from its spherical representation.
        @@ -580,9 +580,6 @@ constexpr tags::callable_oneminus oneminus = {}  Computes the value 1 minus the argument.
        -constexpr tags::callable_polar polar = {} - complex number from modulus and argument.
      -  constexpr tags::callable_pow pow = {}  Computes the computing the pow operation \(x^y\).
        @@ -598,9 +595,6 @@ constexpr tags::callable_proj proj = {}  Callable object computing proj(x), the projection of the cayley_dickson number z onto the (hyper) Riemann sphere.
        -constexpr tags::callable_purepart purepart = {} - Extracts the pure part of a value.
      -  constexpr tags::callable_quaternion quaternion = {}  Constructs a kyosu::quaternion.
        diff --git a/search/all_5.js b/search/all_5.js index 5429d92d..16729a1d 100644 --- a/search/all_5.js +++ b/search/all_5.js @@ -5,11 +5,11 @@ var searchData= ['frac_2',['frac',['../group__functions_ga4c6ee3532d93a937aaa603ba4699b3ed.html#ga4c6ee3532d93a937aaa603ba4699b3ed',1,'kyosu']]], ['from_5fangle_5faxis_3',['from_angle_axis',['../group__quaternion_gaeb24f578562330d825ff8f68da4b9252.html#gaeb24f578562330d825ff8f68da4b9252',1,'kyosu']]], ['from_5fcylindrical_4',['from_cylindrical',['../group__quaternion_ga06868e959a899a9f2348b07c330c0048.html#ga06868e959a899a9f2348b07c330c0048',1,'kyosu']]], - ['from_5fcylindrospherical_5',['from_cylindrospherical',['../group__quaternion_ga36f4e319eab743013ddf5a868679fb63.html#ga36f4e319eab743013ddf5a868679fb63',1,'kyosu']]], + ['from_5fcylindrospherical_5',['from_cylindrospherical',['../group__quaternion_gaa17a7e084e8ef0ba4c64b55e456b1f57.html#gaa17a7e084e8ef0ba4c64b55e456b1f57',1,'kyosu']]], ['from_5feuler_6',['from_euler',['../group__quaternion_ga3f3485eda1a78b4bb970df61c7b602d7.html#ga3f3485eda1a78b4bb970df61c7b602d7',1,'kyosu']]], - ['from_5fmultipolar_7',['from_multipolar',['../group__quaternion_gadcb9029f90743da06cc952f8fe8120f0.html#gadcb9029f90743da06cc952f8fe8120f0',1,'kyosu']]], + ['from_5fmultipolar_7',['from_multipolar',['../group__quaternion_ga768dc300e06ddd80f84746662db3c01b.html#ga768dc300e06ddd80f84746662db3c01b',1,'kyosu']]], ['from_5fpolar_8',['from_polar',['../group__complex_gad70670d8278d34dc0f0faf883a48eab8.html#gad70670d8278d34dc0f0faf883a48eab8',1,'kyosu']]], ['from_5frotation_5fmatrix_9',['from_rotation_matrix',['../group__quaternion_gafe4deac1b486b7f1203090424e8df302.html#gafe4deac1b486b7f1203090424e8df302',1,'kyosu']]], - ['from_5fsemipolar_10',['from_semipolar',['../group__quaternion_ga6bd1f5ec343e8cf12fec6cc72eae2a87.html#ga6bd1f5ec343e8cf12fec6cc72eae2a87',1,'kyosu']]], + ['from_5fsemipolar_10',['from_semipolar',['../group__quaternion_gae4c3253d49e644eeea3531e3b588fc9c.html#gae4c3253d49e644eeea3531e3b588fc9c',1,'kyosu']]], ['from_5fspherical_11',['from_spherical',['../group__quaternion_ga943f811be2981809d36a4f31f52b0025.html#ga943f811be2981809d36a4f31f52b0025',1,'kyosu']]] ]; diff --git a/search/all_e.js b/search/all_e.js index 1f475b8b..329f0949 100644 --- a/search/all_e.js +++ b/search/all_e.js @@ -1,10 +1,8 @@ var searchData= [ - ['polar_0',['polar',['../group__functions_ga4a6cafda405a73a42b6a47c0cad49cad.html#ga4a6cafda405a73a42b6a47c0cad49cad',1,'kyosu']]], - ['pow_1',['pow',['../group__functions_ga25372aaebdff2ad59971a9fee778ba0f.html#ga25372aaebdff2ad59971a9fee778ba0f',1,'kyosu']]], - ['pow1p_2',['pow1p',['../group__functions_gaae9065f698fe37841a85e340a16af948.html#gaae9065f698fe37841a85e340a16af948',1,'kyosu']]], - ['pow_5fabs_3',['pow_abs',['../group__functions_ga764d5554dc7ce3cac3302591c4d75947.html#ga764d5554dc7ce3cac3302591c4d75947',1,'kyosu']]], - ['powm1_4',['powm1',['../group__functions_ga047b3d79d00d4907df04ec98f2a0fada.html#ga047b3d79d00d4907df04ec98f2a0fada',1,'kyosu']]], - ['proj_5',['proj',['../group__functions_gae97bce0027166d1321885e92abb15836.html#gae97bce0027166d1321885e92abb15836',1,'kyosu']]], - ['purepart_6',['purepart',['../group__functions_ga3d4a351565ed14e9021990fa72f9de4a.html#ga3d4a351565ed14e9021990fa72f9de4a',1,'kyosu']]] + ['pow_0',['pow',['../group__functions_ga25372aaebdff2ad59971a9fee778ba0f.html#ga25372aaebdff2ad59971a9fee778ba0f',1,'kyosu']]], + ['pow1p_1',['pow1p',['../group__functions_gaae9065f698fe37841a85e340a16af948.html#gaae9065f698fe37841a85e340a16af948',1,'kyosu']]], + ['pow_5fabs_2',['pow_abs',['../group__functions_ga764d5554dc7ce3cac3302591c4d75947.html#ga764d5554dc7ce3cac3302591c4d75947',1,'kyosu']]], + ['powm1_3',['powm1',['../group__functions_ga047b3d79d00d4907df04ec98f2a0fada.html#ga047b3d79d00d4907df04ec98f2a0fada',1,'kyosu']]], + ['proj_4',['proj',['../group__functions_gae97bce0027166d1321885e92abb15836.html#gae97bce0027166d1321885e92abb15836',1,'kyosu']]] ]; diff --git a/search/variables_5.js b/search/variables_5.js index 5429d92d..16729a1d 100644 --- a/search/variables_5.js +++ b/search/variables_5.js @@ -5,11 +5,11 @@ var searchData= ['frac_2',['frac',['../group__functions_ga4c6ee3532d93a937aaa603ba4699b3ed.html#ga4c6ee3532d93a937aaa603ba4699b3ed',1,'kyosu']]], ['from_5fangle_5faxis_3',['from_angle_axis',['../group__quaternion_gaeb24f578562330d825ff8f68da4b9252.html#gaeb24f578562330d825ff8f68da4b9252',1,'kyosu']]], ['from_5fcylindrical_4',['from_cylindrical',['../group__quaternion_ga06868e959a899a9f2348b07c330c0048.html#ga06868e959a899a9f2348b07c330c0048',1,'kyosu']]], - ['from_5fcylindrospherical_5',['from_cylindrospherical',['../group__quaternion_ga36f4e319eab743013ddf5a868679fb63.html#ga36f4e319eab743013ddf5a868679fb63',1,'kyosu']]], + ['from_5fcylindrospherical_5',['from_cylindrospherical',['../group__quaternion_gaa17a7e084e8ef0ba4c64b55e456b1f57.html#gaa17a7e084e8ef0ba4c64b55e456b1f57',1,'kyosu']]], ['from_5feuler_6',['from_euler',['../group__quaternion_ga3f3485eda1a78b4bb970df61c7b602d7.html#ga3f3485eda1a78b4bb970df61c7b602d7',1,'kyosu']]], - ['from_5fmultipolar_7',['from_multipolar',['../group__quaternion_gadcb9029f90743da06cc952f8fe8120f0.html#gadcb9029f90743da06cc952f8fe8120f0',1,'kyosu']]], + ['from_5fmultipolar_7',['from_multipolar',['../group__quaternion_ga768dc300e06ddd80f84746662db3c01b.html#ga768dc300e06ddd80f84746662db3c01b',1,'kyosu']]], ['from_5fpolar_8',['from_polar',['../group__complex_gad70670d8278d34dc0f0faf883a48eab8.html#gad70670d8278d34dc0f0faf883a48eab8',1,'kyosu']]], ['from_5frotation_5fmatrix_9',['from_rotation_matrix',['../group__quaternion_gafe4deac1b486b7f1203090424e8df302.html#gafe4deac1b486b7f1203090424e8df302',1,'kyosu']]], - ['from_5fsemipolar_10',['from_semipolar',['../group__quaternion_ga6bd1f5ec343e8cf12fec6cc72eae2a87.html#ga6bd1f5ec343e8cf12fec6cc72eae2a87',1,'kyosu']]], + ['from_5fsemipolar_10',['from_semipolar',['../group__quaternion_gae4c3253d49e644eeea3531e3b588fc9c.html#gae4c3253d49e644eeea3531e3b588fc9c',1,'kyosu']]], ['from_5fspherical_11',['from_spherical',['../group__quaternion_ga943f811be2981809d36a4f31f52b0025.html#ga943f811be2981809d36a4f31f52b0025',1,'kyosu']]] ]; diff --git a/search/variables_e.js b/search/variables_e.js index 1f475b8b..329f0949 100644 --- a/search/variables_e.js +++ b/search/variables_e.js @@ -1,10 +1,8 @@ var searchData= [ - ['polar_0',['polar',['../group__functions_ga4a6cafda405a73a42b6a47c0cad49cad.html#ga4a6cafda405a73a42b6a47c0cad49cad',1,'kyosu']]], - ['pow_1',['pow',['../group__functions_ga25372aaebdff2ad59971a9fee778ba0f.html#ga25372aaebdff2ad59971a9fee778ba0f',1,'kyosu']]], - ['pow1p_2',['pow1p',['../group__functions_gaae9065f698fe37841a85e340a16af948.html#gaae9065f698fe37841a85e340a16af948',1,'kyosu']]], - ['pow_5fabs_3',['pow_abs',['../group__functions_ga764d5554dc7ce3cac3302591c4d75947.html#ga764d5554dc7ce3cac3302591c4d75947',1,'kyosu']]], - ['powm1_4',['powm1',['../group__functions_ga047b3d79d00d4907df04ec98f2a0fada.html#ga047b3d79d00d4907df04ec98f2a0fada',1,'kyosu']]], - ['proj_5',['proj',['../group__functions_gae97bce0027166d1321885e92abb15836.html#gae97bce0027166d1321885e92abb15836',1,'kyosu']]], - ['purepart_6',['purepart',['../group__functions_ga3d4a351565ed14e9021990fa72f9de4a.html#ga3d4a351565ed14e9021990fa72f9de4a',1,'kyosu']]] + ['pow_0',['pow',['../group__functions_ga25372aaebdff2ad59971a9fee778ba0f.html#ga25372aaebdff2ad59971a9fee778ba0f',1,'kyosu']]], + ['pow1p_1',['pow1p',['../group__functions_gaae9065f698fe37841a85e340a16af948.html#gaae9065f698fe37841a85e340a16af948',1,'kyosu']]], + ['pow_5fabs_2',['pow_abs',['../group__functions_ga764d5554dc7ce3cac3302591c4d75947.html#ga764d5554dc7ce3cac3302591c4d75947',1,'kyosu']]], + ['powm1_3',['powm1',['../group__functions_ga047b3d79d00d4907df04ec98f2a0fada.html#ga047b3d79d00d4907df04ec98f2a0fada',1,'kyosu']]], + ['proj_4',['proj',['../group__functions_gae97bce0027166d1321885e92abb15836.html#gae97bce0027166d1321885e92abb15836',1,'kyosu']]] ];