1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>Octonion 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.12.0"> 8<link rel="up" href="../octonions.html" title="Chapter 17. Octonions"> 9<link rel="prev" href="octonion.html" title="Template Class octonion"> 10<link rel="next" href="oct_typedefs.html" title="Octonion Member Typedefs"> 11</head> 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> 20</tr></table> 21<hr> 22<div class="spirit-nav"> 23<a accesskey="p" href="octonion.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.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="oct_typedefs.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> 24</div> 25<div class="section"> 26<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 27<a name="math_toolkit.oct_specialization"></a><a class="link" href="oct_specialization.html" title="Octonion Specializations">Octonion 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> 30 31<span class="keyword">template</span><span class="special"><></span> 32<span class="keyword">class</span> <span class="identifier">octonion</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> <span class="identifier">value_type</span><span class="special">;</span> 36 37 <span class="keyword">explicit</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.constructors">octonion</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> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_e</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_f</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_g</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_h</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="oct_mem_fun.html#math_toolkit.oct_mem_fun.constructors">octonion</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> <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">z2</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="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">z3</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="oct_mem_fun.html#math_toolkit.oct_mem_fun.constructors">octonion</a><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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">q0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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">q1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>());</span> 40 <span class="keyword">explicit</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</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> 41 <span class="keyword">explicit</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</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 43 <span class="keyword">float</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.real_and_unreal_parts">real</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 44 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.real_and_unreal_parts">unreal</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 45 46 <span class="keyword">float</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 47 <span class="keyword">float</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 48 <span class="keyword">float</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 49 <span class="keyword">float</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 50 <span class="keyword">float</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_5</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 51 <span class="keyword">float</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_6</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 52 <span class="keyword">float</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_7</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 53 <span class="keyword">float</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_8</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 54 55 <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="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_complex_components">C_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 56 <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="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_complex_components">C_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 57 <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="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_complex_components">C_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 58 <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="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_complex_components">C_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 59 60 <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_quaternion_components">H_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 61 <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_quaternion_components">H_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 62 63 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</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> 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">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</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> 66 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_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> 67 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_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> 68 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.assignment_operators">operator =</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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> 69 70 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 71 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 72 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator +=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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">rhs</span><span class="special">);</span> 73 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span> 74 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator +=</a> <span class="special">(</span><span class="identifier">octonion</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> 75 76 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 77 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 78 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator -=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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">rhs</span><span class="special">);</span> 79 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span> 80 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator -=</a> <span class="special">(</span><span class="identifier">octonion</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> 81 82 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 83 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 84 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator *=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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">rhs</span><span class="special">);</span> 85 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span> 86 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator *=</a> <span class="special">(</span><span class="identifier">octonion</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> 87 88 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 89 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 90 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator /=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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">rhs</span><span class="special">);</span> 91 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span> 92 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator /=</a> <span class="special">(</span><span class="identifier">octonion</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> 93<span class="special">};</span> 94</pre> 95<a name="math_octonion_double"></a><pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> 96<span class="keyword">class</span> <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> 97<span class="special">{</span> 98<span class="keyword">public</span><span class="special">:</span> 99 <span class="keyword">typedef</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span> 100 101 <span class="keyword">explicit</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.constructors">octonion</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> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_e</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_f</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_g</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_h</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">);</span> 102 <span class="keyword">explicit</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.constructors">octonion</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> <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">z2</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="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">z3</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> 103 <span class="keyword">explicit</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.constructors">octonion</a><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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">q0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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">q1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>());</span> 104 <span class="keyword">explicit</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</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> 105 <span class="keyword">explicit</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</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> 106 107 <span class="keyword">double</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.real_and_unreal_parts">real</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 108 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.real_and_unreal_parts">unreal</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 109 110 <span class="keyword">double</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 111 <span class="keyword">double</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 112 <span class="keyword">double</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 113 <span class="keyword">double</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 114 <span class="keyword">double</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_5</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 115 <span class="keyword">double</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_6</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 116 <span class="keyword">double</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_7</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 117 <span class="keyword">double</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_8</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 118 119 <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="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_complex_components">C_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 120 <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="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_complex_components">C_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 121 <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="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_complex_components">C_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 122 <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="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_complex_components">C_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 123 124 <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_quaternion_components">H_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 125 <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_quaternion_components">H_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 126 127 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</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> 128 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span> 129 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</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> 130 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_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> 131 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_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> 132 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.assignment_operators">operator =</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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> 133 134 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 135 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 136 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator +=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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">rhs</span><span class="special">);</span> 137 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span> 138 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator +=</a> <span class="special">(</span><span class="identifier">octonion</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> 139 140 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 141 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 142 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator -=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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">rhs</span><span class="special">);</span> 143 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span> 144 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator -=</a> <span class="special">(</span><span class="identifier">octonion</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> 145 146 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 147 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 148 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator *=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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">rhs</span><span class="special">);</span> 149 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span> 150 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator *=</a> <span class="special">(</span><span class="identifier">octonion</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> 151 152 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 153 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 154 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator /=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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">rhs</span><span class="special">);</span> 155 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span> 156 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator /=</a> <span class="special">(</span><span class="identifier">octonion</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> 157<span class="special">};</span> 158</pre> 159<a name="math_octonion_long_double"></a><pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> 160<span class="keyword">class</span> <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> 161<span class="special">{</span> 162<span class="keyword">public</span><span class="special">:</span> 163 <span class="keyword">typedef</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span> 164 165 <span class="keyword">explicit</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.constructors">octonion</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> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_e</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_f</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_g</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_h</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">);</span> 166 <span class="keyword">explicit</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.constructors">octonion</a><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">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> <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">z2</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="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">z3</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> 167 <span class="keyword">explicit</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.constructors">octonion</a><span class="special">(</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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">q0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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> 168 <span class="keyword">explicit</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</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> 169 <span class="keyword">explicit</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</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> 170 171 <span class="keyword">long</span> <span class="keyword">double</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.real_and_unreal_parts">real</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 172 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.real_and_unreal_parts">unreal</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 173 174 <span class="keyword">long</span> <span class="keyword">double</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 175 <span class="keyword">long</span> <span class="keyword">double</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 176 <span class="keyword">long</span> <span class="keyword">double</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 177 <span class="keyword">long</span> <span class="keyword">double</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 178 <span class="keyword">long</span> <span class="keyword">double</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_5</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 179 <span class="keyword">long</span> <span class="keyword">double</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_6</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 180 <span class="keyword">long</span> <span class="keyword">double</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_7</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 181 <span class="keyword">long</span> <span class="keyword">double</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_real_components">R_component_8</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 182 183 <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="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_complex_components">C_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 184 <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="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_complex_components">C_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 185 <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="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_complex_components">C_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 186 <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="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_complex_components">C_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 187 188 <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_quaternion_components">H_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 189 <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.individual_quaternion_components">H_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 190 191 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</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> 192 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span> 193 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</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> 194 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_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> 195 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_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> 196 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.assignment_operators">operator =</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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> 197 198 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 199 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 200 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator +=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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">rhs</span><span class="special">);</span> 201 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span> 202 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator +=</a> <span class="special">(</span><span class="identifier">octonion</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> 203 204 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 205 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 206 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator -=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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">rhs</span><span class="special">);</span> 207 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span> 208 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator -=</a> <span class="special">(</span><span class="identifier">octonion</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> 209 210 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 211 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 212 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator *=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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">rhs</span><span class="special">);</span> 213 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span> 214 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator *=</a> <span class="special">(</span><span class="identifier">octonion</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> 215 216 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 217 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_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> 218 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator /=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><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">rhs</span><span class="special">);</span> 219 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span> 220 <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="oct_mem_fun.html#math_toolkit.oct_mem_fun.other_member_operators">operator /=</a> <span class="special">(</span><span class="identifier">octonion</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> 221<span class="special">};</span> 222 223<span class="special">}</span> <span class="special">}</span> <span class="comment">// namespaces</span> 224</pre> 225</div> 226<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 227<td align="left"></td> 228<td align="right"><div class="copyright-footer">Copyright © 2006-2019 Nikhar 229 Agrawal, Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos, 230 Hubert Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Matthew Pulver, Johan 231 Råde, Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg, 232 Daryle Walker and Xiaogang Zhang<p> 233 Distributed under the Boost Software License, Version 1.0. (See accompanying 234 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>) 235 </p> 236</div></td> 237</tr></table> 238<hr> 239<div class="spirit-nav"> 240<a accesskey="p" href="octonion.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.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="oct_typedefs.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> 241</div> 242</body> 243</html> 244