Lines Matching refs:quaternion
33 In practical terms, a quaternion is simply a quadruple of real numbers __quadrulple,
44 other [@../quaternion/TQE.pdf document]
45 (with [@../quaternion/TQE_EA.pdf errata and addenda]).
56 [@../../../../boost/math/quaternion.hpp quaternion.hpp].
64 template<typename T> class ``[link math_toolkit.quat quaternion]``;
65 template<> class ``[link math_toolkit.spec quaternion<float>]``;
66 template<> class ``[link math_quaternion_double quaternion<double>]``;
67 template<> class ``[link math_quaternion_long_double quaternion<long double>]``;
70 …mplate<typename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_addition_operators opera…
71 …template<typename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_addition_operators ope…
72 …ypename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_addition_operators operator +]``…
73 …template<typename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_addition_operators ope…
74 …<typename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_addition_operators operator +]…
76 …plate<typename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_subtraction_operators ope…
77 …template<typename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_subtraction_operators …
78 …pename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_subtraction_operators operator -]…
79 …template<typename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_subtraction_operators …
80 …typename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_subtraction_operators operator …
82 …ate<typename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_multiplication_operators op…
83 …template<typename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_multiplication_operato…
84 …name T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_multiplication_operators operator *…
85 …template<typename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_multiplication_operato…
86 …pename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_multiplication_operators operator…
88 …mplate<typename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_division_operators opera…
89 …template<typename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_division_operators ope…
90 …ypename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_division_operators operator /]``…
91 …template<typename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_division_operators ope…
92 …<typename T> quaternion<T> ``[link math_toolkit.quat_non_mem.binary_division_operators operator /]…
94 …template<typename T> quaternion<T> ``[link math_toolkit.quat_non_mem.unary_plus operator +]`` (qua…
95 …template<typename T> quaternion<T> ``[link math_toolkit.quat_non_mem.unary_minus operator -]`` (qu…
97 …_toolkit.quat_non_mem.equality_operators operator ==]`` (T const & lhs, quaternion<T> const & rhs);
98 …l ``[link math_toolkit.quat_non_mem.equality_operators operator ==]`` (quaternion<T> const & lhs, …
99 …n_mem.equality_operators operator ==]`` (::std::complex<T> const & lhs, quaternion<T> const & rhs);
100 …l ``[link math_toolkit.quat_non_mem.equality_operators operator ==]`` (quaternion<T> const & lhs, …
101 …h_toolkit.quat_non_mem.equality_operators operator ==]`` (quaternion<T> const & lhs, quaternion<T>…
103 …oolkit.quat_non_mem.inequality_operators operator !=]`` (T const & lhs, quaternion<T> const & rhs);
104 …``[link math_toolkit.quat_non_mem.inequality_operators operator !=]`` (quaternion<T> const & lhs, …
105 …mem.inequality_operators operator !=]`` (::std::complex<T> const & lhs, quaternion<T> const & rhs);
106 …``[link math_toolkit.quat_non_mem.inequality_operators operator !=]`` (quaternion<T> const & lhs, …
107 …toolkit.quat_non_mem.inequality_operators operator !=]`` (quaternion<T> const & lhs, quaternion<T>…
110 …n_mem.stream_extractor operator >>]`` (::std::basic_istream<charT,traits> & is, quaternion<T> & q);
113 ….stream_inserter operator <<]`` (::std::basic_ostream<charT,traits> & os, quaternion<T> const & q);
116 …e T> T ``[link math_toolkit.value_op.real_and_unreal real]``(quaternion<T> const & q);
117 …template<typename T> quaternion<T> ``[link math_toolkit.value_op.real_and_unreal unreal]``(quater…
119 …template<typename T> T ``[link math_toolkit.value_op.sup sup]``(quaternion<T> const &…
120 …template<typename T> T ``[link math_toolkit.value_op.l1 l1]``(quaternion<T> const & q…
121 …template<typename T> T ``[link math_toolkit.value_op.abs abs]``(quaternion<T> const &…
122 …template<typename T> T ``[link math_toolkit.value_op.norm norm]``(quaternion<T>const …
123 …template<typename T> quaternion<T> ``[link math_toolkit.value_op.conj conj]``(quaternion<T> const…
125 …template<typename T> quaternion<T> ``[link math_quaternions.creation_spherical]``(T const & rho, …
126 …template<typename T> quaternion<T> ``[link math_quaternions.creation_semipolar semipolar]``(T con…
127 …template<typename T> quaternion<T> ``[link math_quaternions.creation_multipolar multipolar]``(T c…
128 …template<typename T> quaternion<T> ``[link math_quaternions.creation_cylindrospherical cylindrosp…
129 …template<typename T> quaternion<T> ``[link math_quaternions.creation_cylindrical cylindrical]``(T…
132 …template<typename T> quaternion<T> ``[link math_toolkit.trans.exp exp]``(quaternion<T> const & q);
133 …template<typename T> quaternion<T> ``[link math_toolkit.trans.cos cos]``(quaternion<T> const & q);
134 …template<typename T> quaternion<T> ``[link math_toolkit.trans.sin sin]``(quaternion<T> const & q);
135 …template<typename T> quaternion<T> ``[link math_toolkit.trans.tan tan]``(quaternion<T> const & q);
136 …template<typename T> quaternion<T> ``[link math_toolkit.trans.cosh cosh]``(quaternion<T> const & …
137 …template<typename T> quaternion<T> ``[link math_toolkit.trans.sinh sinh]``(quaternion<T> const & …
138 …template<typename T> quaternion<T> ``[link math_toolkit.trans.tanh tanh]``(quaternion<T> const & …
139 …template<typename T> quaternion<T> ``[link math_toolkit.trans.pow pow]``(quaternion<T> const & q,…
146 [section:quat Template Class quaternion]
151 class quaternion
157 …explicit ``[link math_toolkit.quat_mem_fun.constructors quaternion]``(T const & requested_a = T(),…
158 …explicit ``[link math_toolkit.quat_mem_fun.constructors quaternion]``(::std::complex<T> const & z0…
160 …explicit ``[link math_toolkit.quat_mem_fun.constructors quaternion]``(quaternion<X> const & a_reco…
163 quaternion<T> ``[link math_toolkit.quat_mem_fun.real_and_unreal_parts unreal]``() const;
171 …quaternion<T>& ``[link math_toolkit.quat_mem_fun.assignment_operators operator = ]``(quaternio…
173 …quaternion<T>& ``[link math_toolkit.quat_mem_fun.assignment_operators operator = ]``(quaternio…
174 …quaternion<T>& ``[link math_toolkit.quat_mem_fun.assignment_operators operator = ]``(T const …
175 …quaternion<T>& ``[link math_toolkit.quat_mem_fun.assignment_operators operator = ]``(::std::co…
177 …quaternion<T>& ``[link math_toolkit.quat_mem_fun.addition_operators operator += ]``(T const & …
178 …quaternion<T>& ``[link math_toolkit.quat_mem_fun.addition_operators operator += ]``(::std::com…
180 …quaternion<T>& ``[link math_toolkit.quat_mem_fun.addition_operators operator += ]``(quaternion…
182 …quaternion<T>& ``[link math_toolkit.quat_mem_fun.subtraction_operators operator -= ]``(T const…
183 …quaternion<T>& ``[link math_toolkit.quat_mem_fun.subtraction_operators operator -= ]``(::std::…
185 …quaternion<T>& ``[link math_toolkit.quat_mem_fun.subtraction_operators operator -= ]``(quatern…
187 …quaternion<T>& ``[link math_toolkit.quat_mem_fun.multiplication_operators operator *= ]``(T co…
188 …quaternion<T>& ``[link math_toolkit.quat_mem_fun.multiplication_operators operator *= ]``(::st…
190 …quaternion<T>& ``[link math_toolkit.quat_mem_fun.multiplication_operators operator *= ]``(quat…
192 …quaternion<T>& ``[link math_toolkit.quat_mem_fun.division_operators operator /= ]``(T const & …
193 …quaternion<T>& ``[link math_toolkit.quat_mem_fun.division_operators operator /= ]``(::std::com…
195 …quaternion<T>& ``[link math_toolkit.quat_mem_fun.division_operators operator /= ]``(quaternion…
201 [endsect] [/section:quat Template Class quaternion]
208 class quaternion<float>
213 …explicit ``[link math_toolkit.quat_mem_fun.constructors quaternion]``(float const & requested_a = …
214 …explicit ``[link math_toolkit.quat_mem_fun.constructors quaternion]``(::std::complex<float> const …
215 …explicit ``[link math_toolkit.quat_mem_fun.constructors quaternion]``(quaternion<double> const & a…
216 …explicit ``[link math_toolkit.quat_mem_fun.constructors quaternion]``(quaternion<long double> cons…
219 … quaternion<float> ``[link math_toolkit.quat_mem_fun.real_and_unreal_parts unreal]``() const;
227 …quaternion<float>& ``[link math_toolkit.quat_mem_fun.assignment_operators operator = ]``(quate…
229 …quaternion<float>& ``[link math_toolkit.quat_mem_fun.assignment_operators operator = ]``(quate…
230 …quaternion<float>& ``[link math_toolkit.quat_mem_fun.assignment_operators operator = ]``(float…
231 …quaternion<float>& ``[link math_toolkit.quat_mem_fun.assignment_operators operator = ]``(::std…
233 …quaternion<float>& ``[link math_toolkit.quat_mem_fun.addition_operators operator += ]``(float …
234 …quaternion<float>& ``[link math_toolkit.quat_mem_fun.addition_operators operator += ]``(::std:…
236 …quaternion<float>& ``[link math_toolkit.quat_mem_fun.addition_operators operator += ]``(quater…
238 …quaternion<float>& ``[link math_toolkit.quat_mem_fun.subtraction_operators operator -= ]``(flo…
239 …quaternion<float>& ``[link math_toolkit.quat_mem_fun.subtraction_operators operator -= ]``(::s…
241 …quaternion<float>& ``[link math_toolkit.quat_mem_fun.subtraction_operators operator -= ]``(qua…
243 …quaternion<float>& ``[link math_toolkit.quat_mem_fun.multiplication_operators operator *= ]``(…
244 …quaternion<float>& ``[link math_toolkit.quat_mem_fun.multiplication_operators operator *= ]``(…
246 …quaternion<float>& ``[link math_toolkit.quat_mem_fun.multiplication_operators operator *= ]``(…
248 …quaternion<float>& ``[link math_toolkit.quat_mem_fun.division_operators operator /= ]``(float …
249 …quaternion<float>& ``[link math_toolkit.quat_mem_fun.division_operators operator /= ]``(::std:…
251 …quaternion<float>& ``[link math_toolkit.quat_mem_fun.division_operators operator /= ]``(quater…
257 class quaternion<double>
262 …explicit ``[link math_toolkit.quat_mem_fun.constructors quaternion]``(double const & requested_a =…
263 …explicit ``[link math_toolkit.quat_mem_fun.constructors quaternion]``(::std::complex<double> const…
264 …explicit ``[link math_toolkit.quat_mem_fun.constructors quaternion]``(quaternion<float> const & a_…
265 …explicit ``[link math_toolkit.quat_mem_fun.constructors quaternion]``(quaternion<long double> cons…
268 … quaternion<double> ``[link math_toolkit.quat_mem_fun.real_and_unreal_parts unreal]``() const;
276 …quaternion<double>& ``[link math_toolkit.quat_mem_fun.assignment_operators operator = ]``(quat…
278 …quaternion<double>& ``[link math_toolkit.quat_mem_fun.assignment_operators operator = ]``(quat…
279 …quaternion<double>& ``[link math_toolkit.quat_mem_fun.assignment_operators operator = ]``(doub…
280 …quaternion<double>& ``[link math_toolkit.quat_mem_fun.assignment_operators operator = ]``(::st…
282 …quaternion<double>& ``[link math_toolkit.quat_mem_fun.addition_operators operator += ]``(doubl…
283 …quaternion<double>& ``[link math_toolkit.quat_mem_fun.addition_operators operator += ]``(::std…
285 …quaternion<double>& ``[link math_toolkit.quat_mem_fun.addition_operators operator += ]``(quate…
287 …quaternion<double>& ``[link math_toolkit.quat_mem_fun.subtraction_operators operator -= ]``(do…
288 …quaternion<double>& ``[link math_toolkit.quat_mem_fun.subtraction_operators operator -= ]``(::…
290 …quaternion<double>& ``[link math_toolkit.quat_mem_fun.subtraction_operators operator -= ]``(qu…
292 …quaternion<double>& ``[link math_toolkit.quat_mem_fun.multiplication_operators operator *= ]``…
293 …quaternion<double>& ``[link math_toolkit.quat_mem_fun.multiplication_operators operator *= ]``…
295 …quaternion<double>& ``[link math_toolkit.quat_mem_fun.multiplication_operators operator *= ]``…
297 …quaternion<double>& ``[link math_toolkit.quat_mem_fun.division_operators operator /= ]``(doubl…
298 …quaternion<double>& ``[link math_toolkit.quat_mem_fun.division_operators operator /= ]``(::std…
300 …quaternion<double>& ``[link math_toolkit.quat_mem_fun.division_operators operator /= ]``(quate…
306 class quaternion<long double>
311 …explicit ``[link math_toolkit.quat_mem_fun.constructors quaternion]``(long double const & requeste…
312 …explicit ``[link math_toolkit.quat_mem_fun.constructors quaternion]``(::std::complex<long double> …
313 …explicit ``[link math_toolkit.quat_mem_fun.constructors quaternion]``(quaternion<float> const & a_…
314 …explicit ``[link math_toolkit.quat_mem_fun.constructors quaternion]``(quaternion<double> const & a…
317 …quaternion<long double> ``[link math_toolkit.quat_mem_fun.real_and_unreal_parts unreal]``() c…
325 …quaternion<long double>& ``[link math_toolkit.quat_mem_fun.assignment_operators operator = ]``…
327 …quaternion<long double>& ``[link math_toolkit.quat_mem_fun.assignment_operators operator = ]``…
328 …quaternion<long double>& ``[link math_toolkit.quat_mem_fun.assignment_operators operator = ]``…
329 …quaternion<long double>& ``[link math_toolkit.quat_mem_fun.assignment_operators operator = ]``…
331 …quaternion<long double>& ``[link math_toolkit.quat_mem_fun.addition_operators operator += ]``(…
332 …quaternion<long double>& ``[link math_toolkit.quat_mem_fun.addition_operators operator += ]``(…
334 …quaternion<long double>& ``[link math_toolkit.quat_mem_fun.addition_operators operator += ]``(…
336 …quaternion<long double>& ``[link math_toolkit.quat_mem_fun.subtraction_operators operator -= ]…
337 …quaternion<long double>& ``[link math_toolkit.quat_mem_fun.subtraction_operators operator -= ]…
339 …quaternion<long double>& ``[link math_toolkit.quat_mem_fun.subtraction_operators operator -= ]…
341 …quaternion<long double>& ``[link math_toolkit.quat_mem_fun.multiplication_operators operator *…
342 …quaternion<long double>& ``[link math_toolkit.quat_mem_fun.multiplication_operators operator *…
344 …quaternion<long double>& ``[link math_toolkit.quat_mem_fun.multiplication_operators operator *…
346 …quaternion<long double>& ``[link math_toolkit.quat_mem_fun.division_operators operator /= ]``(…
347 …quaternion<long double>& ``[link math_toolkit.quat_mem_fun.division_operators operator /= ]``(…
349 …quaternion<long double>& ``[link math_toolkit.quat_mem_fun.division_operators operator /= ]``(…
386 …explicit quaternion(T const & requested_a = T(), T const & requested_b = T(), T const & requested_…
387 …explicit quaternion(::std::complex<T> const & z0, ::std::complex<T> const & z1 = ::std::complex<T>…
389 explicit quaternion(quaternion<X> const & a_recopier);
393 …explicit quaternion(float const & requested_a = 0.0f, float const & requested_b = 0.0f, float cons…
394 …explicit quaternion(::std::complex<float> const & z0,::std::complex<float> const & z1 = ::std::com…
395 explicit quaternion(quaternion<double> const & a_recopier);
396 explicit quaternion(quaternion<long double> const & a_recopier);
400 …explicit quaternion(double const & requested_a = 0.0, double const & requested_b = 0.0, double con…
401 …explicit quaternion(::std::complex<double> const & z0, ::std::complex<double> const & z1 = ::std::…
402 explicit quaternion(quaternion<float> const & a_recopier);
403 explicit quaternion(quaternion<long double> const & a_recopier);
407 …explicit quaternion(long double const & requested_a = 0.0L, long double const & requested_b = 0.0L…
408 …explicit quaternion( ::std::complex<long double> const & z0, ::std::complex<long double> const & z…
409 explicit quaternion(quaternion<float> const & a_recopier);
410 explicit quaternion(quaternion<double> const & a_recopier);
431 quaternion<T> unreal() const;
435 Instead there is an "unreal part" which itself is a quaternion,
446 A quaternion having four real components, these are returned by these four
454 A quaternion likewise has two complex components, and as we have seen above,
455 for any quaternion __quat_formula we also have __quat_complex_formula. These functions return them.
461 quaternion<T>& operator = (quaternion<T> const & a_affecter);
463 quaternion<T>& operator = (quaternion<X> const& a_affecter);
464 quaternion<T>& operator = (T const& a_affecter);
465 quaternion<T>& operator = (::std::complex<T> const& a_affecter);
474 quaternion<T>& operator += (T const & rhs)
475 quaternion<T>& operator += (::std::complex<T> const & rhs);
477 quaternion<T>& operator += (quaternion<X> const & rhs);
486 quaternion<T>& operator -= (T const & rhs)
487 quaternion<T>& operator -= (::std::complex<T> const & rhs);
489 quaternion<T>& operator -= (quaternion<X> const & rhs);
499 quaternion<T>& operator *= (T const & rhs)
500 quaternion<T>& operator *= (::std::complex<T> const & rhs);
502 quaternion<T>& operator *= (quaternion<X> const & rhs);
512 quaternion<T>& operator /= (T const & rhs)
513 quaternion<T>& operator /= (::std::complex<T> const & rhs);
515 quaternion<T>& operator /= (quaternion<X> const & rhs);
530 quaternion<T> operator + (quaternion<T> const & q);
537 quaternion<T> operator - (quaternion<T> const & q);
543 template<typename T> quaternion<T> operator + (T const & lhs, quaternion<T> const & rhs);
544 template<typename T> quaternion<T> operator + (quaternion<T> const & lhs, T const & rhs);
545 …template<typename T> quaternion<T> operator + (::std::complex<T> const & lhs, quaternion<T> const …
546 …template<typename T> quaternion<T> operator + (quaternion<T> const & lhs, ::std::complex<T> const …
547 …template<typename T> quaternion<T> operator + (quaternion<T> const & lhs, quaternion<T> const & rh…
549 These operators return `quaternion<T>(lhs) += rhs`.
553 template<typename T> quaternion<T> operator - (T const & lhs, quaternion<T> const & rhs);
554 template<typename T> quaternion<T> operator - (quaternion<T> const & lhs, T const & rhs);
555 …template<typename T> quaternion<T> operator - (::std::complex<T> const & lhs, quaternion<T> const …
556 …template<typename T> quaternion<T> operator - (quaternion<T> const & lhs, ::std::complex<T> const …
557 …template<typename T> quaternion<T> operator - (quaternion<T> const & lhs, quaternion<T> const & rh…
559 These operators return `quaternion<T>(lhs) -= rhs`.
563 template<typename T> quaternion<T> operator * (T const & lhs, quaternion<T> const & rhs);
564 template<typename T> quaternion<T> operator * (quaternion<T> const & lhs, T const & rhs);
565 …template<typename T> quaternion<T> operator * (::std::complex<T> const & lhs, quaternion<T> const …
566 …template<typename T> quaternion<T> operator * (quaternion<T> const & lhs, ::std::complex<T> const …
567 …template<typename T> quaternion<T> operator * (quaternion<T> const & lhs, quaternion<T> const & rh…
569 These operators return `quaternion<T>(lhs) *= rhs`.
573 template<typename T> quaternion<T> operator / (T const & lhs, quaternion<T> const & rhs);
574 template<typename T> quaternion<T> operator / (quaternion<T> const & lhs, T const & rhs);
575 …template<typename T> quaternion<T> operator / (::std::complex<T> const & lhs, quaternion<T> const …
576 …template<typename T> quaternion<T> operator / (quaternion<T> const & lhs, ::std::complex<T> const …
577 …template<typename T> quaternion<T> operator / (quaternion<T> const & lhs, quaternion<T> const & rh…
579 These operators return `quaternion<T>(lhs) /= rhs`. It is of course still an
584 template<typename T> bool operator == (T const & lhs, quaternion<T> const & rhs);
585 template<typename T> bool operator == (quaternion<T> const & lhs, T const & rhs);
586 … template<typename T> bool operator == (::std::complex<T> const & lhs, quaternion<T> const & rhs);
587 … template<typename T> bool operator == (quaternion<T> const & lhs, ::std::complex<T> const & rhs);
588 template<typename T> bool operator == (quaternion<T> const & lhs, quaternion<T> const & rhs);
590 These return true if and only if the four components of `quaternion<T>(lhs)`
591 are equal to their counterparts in `quaternion<T>(rhs)`. As with any
596 template<typename T> bool operator != (T const & lhs, quaternion<T> const & rhs);
597 template<typename T> bool operator != (quaternion<T> const & lhs, T const & rhs);
598 … template<typename T> bool operator != (::std::complex<T> const & lhs, quaternion<T> const & rhs);
599 … template<typename T> bool operator != (quaternion<T> const & lhs, ::std::complex<T> const & rhs);
600 template<typename T> bool operator != (quaternion<T> const & lhs, quaternion<T> const & rhs);
602 These return true if and only if `quaternion<T>(lhs) == quaternion<T>(rhs)` is
608 …ic_istream<charT,traits>& operator >> (::std::basic_istream<charT,traits> & is, quaternion<T> & q);
610 Extracts a quaternion q of one of the following forms
630 …ream<charT,traits>& operator << (::std::basic_ostream<charT,traits> & os, quaternion<T> const & q);
632 Inserts the quaternion q onto the stream `os` as if it were implemented as follows:
637 quaternion<T> const & q)
659 template<typename T> T real(quaternion<T> const & q);
660 template<typename T> quaternion<T> unreal(quaternion<T> const & q);
666 template<typename T> quaternion<T> conj(quaternion<T> const & q);
668 This returns the conjugate of the quaternion.
672 template<typename T> T sup(quaternion<T> const & q);
675 `abs(q.R_component_1())...abs(q.R_component_4()))` of the quaternion.
679 template<typename T> T l1(quaternion<T> const & q);
682 of the quaternion.
686 template<typename T> T abs(quaternion<T> const & q);
688 This return the magnitude (Euclidean norm) of the quaternion.
692 template<typename T> T norm(quaternion<T>const & q);
694 This return the (Cayley) norm of the quaternion.
704 …template<typename T> quaternion<T> spherical(T const & rho, T const & theta, T const & phi1, T con…
705 …template<typename T> quaternion<T> semipolar(T const & rho, T const & alpha, T const & theta1, T c…
706 …template<typename T> quaternion<T> multipolar(T const & rho1, T const & theta1, T const & rho2, T …
707 …template<typename T> quaternion<T> cylindrospherical(T const & t, T const & radius, T const & long…
708 …template<typename T> quaternion<T> cylindrical(T const & r, T const & angle, T const & h1, T const…
725 the first __C component of the quaternion. The third and fourth inputs
726 are placed into the third and fourth __R components of the quaternion,
730 This time, both __C components of the quaternion are given in polar coordinates.
735 therefore builds a quaternion from this representation, with the __R3
739 It takes as a first input the magnitude of the quaternion, as a
741 of the first two __C components of the quaternion are the product of the
745 the quaternion, respectively. As usual, nothing untoward happens if
792 template<typename T> quaternion<T> exp(quaternion<T> const & q);
794 Computes the exponential of the quaternion.
798 template<typename T> quaternion<T> cos(quaternion<T> const & q);
800 Computes the cosine of the quaternion
804 template<typename T> quaternion<T> sin(quaternion<T> const & q);
806 Computes the sine of the quaternion.
810 template<typename T> quaternion<T> tan(quaternion<T> const & q);
812 Computes the tangent of the quaternion.
816 template<typename T> quaternion<T> cosh(quaternion<T> const & q);
818 Computes the hyperbolic cosine of the quaternion.
822 template<typename T> quaternion<T> sinh(quaternion<T> const & q);
824 Computes the hyperbolic sine of the quaternion.
828 template<typename T> quaternion<T> tanh(quaternion<T> const & q);
830 Computes the hyperbolic tangent of the quaternion.
834 template<typename T> quaternion<T> pow(quaternion<T> const & q, int n);
836 Computes the n-th power of the quaternion q.
844 ([@../quaternion/output.txt sample output], with message output
848 additional output ([@../quaternion/output_more.txt verbose output]);
863 *[@../quaternion/TQE.pdf The Quaternionic Exponential (and beyond)]
864 *[@../quaternion/TQE_EA.pdf The Quaternionic Exponential (and beyond) ERRATA & ADDENDA]