3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Quaternion Specializations</title>
5 <link rel="stylesheet" href="../math.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7 <link rel="home" href="../index.html" title="Math Toolkit 2.10.0">
8 <link rel="up" href="../quaternions.html" title="Chapter 14. Quaternions">
9 <link rel="prev" href="quat.html" title="Template Class quaternion">
10 <link rel="next" href="mem_typedef.html" title="Quaternion Member Typedefs">
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr>
14 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
15 <td align="center"><a href="../../../../../index.html">Home</a></td>
16 <td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
17 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19 <td align="center"><a href="../../../../../more/index.htm">More</a></td>
22 <div class="spirit-nav">
23 <a accesskey="p" href="quat.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mem_typedef.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
26 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
27 <a name="math_toolkit.spec"></a><a class="link" href="spec.html" title="Quaternion Specializations">Quaternion Specializations</a>
28 </h2></div></div></div>
29 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
31 <span class="keyword">template</span><span class="special"><></span>
32 <span class="keyword">class</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span>
33 <span class="special">{</span>
34 <span class="keyword">public</span><span class="special">:</span>
35 <span class="keyword">typedef</span> <span class="keyword">float</span> <a class="link" href="mem_typedef.html" title="Quaternion Member Typedefs">value_type</a><span class="special">;</span>
37 <span class="keyword">explicit</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.constructors">quaternion</a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_d</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">);</span>
38 <span class="keyword">explicit</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.constructors">quaternion</a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">>());</span>
39 <span class="keyword">explicit</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
40 <span class="keyword">explicit</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
42 <span class="keyword">float</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.real_and_unreal_parts">real</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
43 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.real_and_unreal_parts">unreal</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
44 <span class="keyword">float</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.individual_real_components">R_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
45 <span class="keyword">float</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.individual_real_components">R_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
46 <span class="keyword">float</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.individual_real_components">R_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
47 <span class="keyword">float</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.individual_real_components">R_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
48 <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.individual_complex_components">C_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
49 <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.individual_complex_components">C_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
51 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
52 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
53 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
54 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
55 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.assignment_operators">operator = </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
57 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
58 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.addition_operators">operator += </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
59 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
60 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
62 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
63 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.subtraction_operators">operator -= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
64 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
65 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
67 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
68 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.multiplication_operators">operator *= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
69 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
70 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
72 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
73 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.division_operators">operator /= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
74 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
75 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
76 <span class="special">};</span>
78 <a name="math_quaternion_double"></a><pre class="programlisting"><span class="keyword">template</span><span class="special"><></span>
79 <span class="keyword">class</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>
80 <span class="special">{</span>
81 <span class="keyword">public</span><span class="special">:</span>
82 <span class="keyword">typedef</span> <span class="keyword">double</span> <a class="link" href="mem_typedef.html" title="Quaternion Member Typedefs">value_type</a><span class="special">;</span>
84 <span class="keyword">explicit</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.constructors">quaternion</a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_d</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">);</span>
85 <span class="keyword">explicit</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.constructors">quaternion</a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">>());</span>
86 <span class="keyword">explicit</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
87 <span class="keyword">explicit</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
89 <span class="keyword">double</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.real_and_unreal_parts">real</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
90 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.real_and_unreal_parts">unreal</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
91 <span class="keyword">double</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.individual_real_components">R_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
92 <span class="keyword">double</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.individual_real_components">R_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
93 <span class="keyword">double</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.individual_real_components">R_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
94 <span class="keyword">double</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.individual_real_components">R_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
95 <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.individual_complex_components">C_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
96 <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.individual_complex_components">C_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
98 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
99 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
100 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
101 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
102 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.assignment_operators">operator = </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
104 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
105 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.addition_operators">operator += </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
106 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
107 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
109 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
110 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.subtraction_operators">operator -= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
111 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
112 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
114 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
115 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.multiplication_operators">operator *= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
116 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
117 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
119 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
120 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.division_operators">operator /= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
121 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
122 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
123 <span class="special">};</span>
125 <a name="math_quaternion_long_double"></a><pre class="programlisting"><span class="keyword">template</span><span class="special"><></span>
126 <span class="keyword">class</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span>
127 <span class="special">{</span>
128 <span class="keyword">public</span><span class="special">:</span>
129 <span class="keyword">typedef</span> <span class="keyword">long</span> <span class="keyword">double</span> <a class="link" href="mem_typedef.html" title="Quaternion Member Typedefs">value_type</a><span class="special">;</span>
131 <span class="keyword">explicit</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.constructors">quaternion</a><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_d</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">);</span>
132 <span class="keyword">explicit</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.constructors">quaternion</a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>());</span>
133 <span class="keyword">explicit</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
134 <span class="keyword">explicit</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
136 <span class="keyword">long</span> <span class="keyword">double</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.real_and_unreal_parts">real</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
137 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.real_and_unreal_parts">unreal</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
138 <span class="keyword">long</span> <span class="keyword">double</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.individual_real_components">R_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
139 <span class="keyword">long</span> <span class="keyword">double</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.individual_real_components">R_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
140 <span class="keyword">long</span> <span class="keyword">double</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.individual_real_components">R_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
141 <span class="keyword">long</span> <span class="keyword">double</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.individual_real_components">R_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
142 <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.individual_complex_components">C_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
143 <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.individual_complex_components">C_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
145 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
146 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
147 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
148 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
149 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.assignment_operators">operator = </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
151 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
152 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.addition_operators">operator += </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
153 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
154 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
156 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
157 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.subtraction_operators">operator -= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
158 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
159 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
161 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
162 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.multiplication_operators">operator *= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
163 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
164 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
166 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
167 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.division_operators">operator /= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
168 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
169 <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span> <a class="link" href="quat_mem_fun.html#math_toolkit.quat_mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
170 <span class="special">};</span>
172 <span class="special">}</span> <span class="comment">// namespace math</span>
173 <span class="special">}</span> <span class="comment">// namespace boost</span>
176 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
177 <td align="left"></td>
178 <td align="right"><div class="copyright-footer">Copyright © 2006-2019 Nikhar
179 Agrawal, Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos,
180 Hubert Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Matthew Pulver, Johan
181 Råde, Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg,
182 Daryle Walker and Xiaogang Zhang<p>
183 Distributed under the Boost Software License, Version 1.0. (See accompanying
184 file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
189 <div class="spirit-nav">
190 <a accesskey="p" href="quat.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mem_typedef.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>