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.78.1">
7 <link rel="home" href="../index.html" title="Math Toolkit 2.1.0">
8 <link rel="up" href="../quaternions.html" title="Chapter 9. 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-2010, 2012-2014 Nikhar Agrawal,
179 Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos, Hubert
180 Holin, Bruno Lalande, John Maddock, Johan Råde, Gautam Sewani, Benjamin Sobotta,
181 Thijs van den Berg, Daryle Walker and Xiaogang Zhang<p>
182 Distributed under the Boost Software License, Version 1.0. (See accompanying
183 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>)
188 <div class="spirit-nav">
189 <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>