Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/doc/html/boost_math/gcd_lcm.html @ 66

Last change on this file since 66 was 29, checked in by landauf, 17 years ago

updated boost from 1_33_1 to 1_34_1

File size: 26.9 KB
Line 
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
4<title> Greatest Common Divisor and Least Common Multiple</title>
5<link rel="stylesheet" href="../boostbook.css" type="text/css">
6<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
7<link rel="start" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
8<link rel="up" href="../boost_math.html" title="Chapter 9. Boost.Math">
9<link rel="prev" href="../boost_math.html" title="Chapter 9. Boost.Math">
10<link rel="next" href="math_special_functions.html" title="Math Special Functions">
11</head>
12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13<table cellpadding="2" width="100%">
14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
15<td align="center"><a href="../../../index.htm">Home</a></td>
16<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
17<td align="center"><a href="../../../people/people.htm">People</a></td>
18<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
19<td align="center"><a href="../../../more/index.htm">More</a></td>
20</table>
21<hr>
22<div class="spirit-nav">
23<a accesskey="p" href="../boost_math.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_math.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="math_special_functions.html"><img src="../images/next.png" alt="Next"></a>
24</div>
25<div class="section" lang="en">
26<div class="titlepage"><div><div><h2 class="title" style="clear: both">
27<a name="boost_math.gcd_lcm"></a> Greatest Common Divisor and Least Common Multiple</h2></div></div></div>
28<div class="toc"><dl>
29<dt><span class="section"><a href="gcd_lcm.html#boost_math.gcd_lcm.introduction">Introduction</a></span></dt>
30<dt><span class="section"><a href="gcd_lcm.html#boost_math.gcd_lcm.synopsis">Synopsis</a></span></dt>
31<dt><span class="section"><a href="gcd_lcm.html#boost_math.gcd_lcm.gcd_function_object">GCD Function Object</a></span></dt>
32<dt><span class="section"><a href="gcd_lcm.html#boost_math.gcd_lcm.lcm_function_object">LCM Function Object</a></span></dt>
33<dt><span class="section"><a href="gcd_lcm.html#boost_math.gcd_lcm.run_time_gcd___lcm_determination">Run-time GCD &amp; LCM Determination</a></span></dt>
34<dt><span class="section"><a href="gcd_lcm.html#boost_math.gcd_lcm.compile_time_gcd_and_lcm_determination">Compile time GCD and LCM determination</a></span></dt>
35<dt><span class="section"><a href="gcd_lcm.html#boost_math.gcd_lcm.header__boost_math_common_factor_hpp_">Header &lt;boost/math/common_factor.hpp&gt;</a></span></dt>
36<dt><span class="section"><a href="gcd_lcm.html#boost_math.gcd_lcm.demonstration_program">Demonstration Program</a></span></dt>
37<dt><span class="section"><a href="gcd_lcm.html#boost_math.gcd_lcm.rationale">Rationale</a></span></dt>
38<dt><span class="section"><a href="gcd_lcm.html#boost_math.gcd_lcm.history">History</a></span></dt>
39<dt><span class="section"><a href="gcd_lcm.html#boost_math.gcd_lcm.credits">Credits</a></span></dt>
40</dl></div>
41<div class="section" lang="en">
42<div class="titlepage"><div><div><h3 class="title">
43<a name="boost_math.gcd_lcm.introduction"></a>Introduction</h3></div></div></div>
44<p>
45        The class and function templates in &lt;boost/math/common_factor.hpp&gt;
46        provide run-time and compile-time evaluation of the greatest common divisor
47        (GCD) or least common multiple (LCM) of two integers. These facilities are
48        useful for many numeric-oriented generic programming problems.
49      </p>
50</div>
51<div class="section" lang="en">
52<div class="titlepage"><div><div><h3 class="title">
53<a name="boost_math.gcd_lcm.synopsis"></a>Synopsis</h3></div></div></div>
54<pre class="programlisting">
55<span class="keyword">namespace</span> <span class="identifier">boost</span>
56<span class="special">{</span>
57<span class="keyword">namespace</span> <span class="identifier">math</span>
58<span class="special">{</span>
59
60<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</span>
61   <span class="keyword">class</span> <span class="identifier">gcd_evaluator</span><span class="special">;</span>
62<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</span>
63   <span class="keyword">class</span> <span class="identifier">lcm_evaluator</span><span class="special">;</span>
64
65<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</span>
66   <span class="identifier">IntegerType</span>  <span class="identifier">gcd</span><span class="special">(</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">b</span> <span class="special">);</span>
67<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</span>
68   <span class="identifier">IntegerType</span>  <span class="identifier">lcm</span><span class="special">(</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">b</span> <span class="special">);</span>
69
70<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">Value2</span> <span class="special">&gt;</span>
71   <span class="keyword">struct</span> <span class="identifier">static_gcd</span><span class="special">;</span>
72<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">Value2</span> <span class="special">&gt;</span>
73   <span class="keyword">struct</span> <span class="identifier">static_lcm</span><span class="special">;</span>
74
75<span class="special">}</span>
76<span class="special">}</span>
77</pre>
78</div>
79<div class="section" lang="en">
80<div class="titlepage"><div><div><h3 class="title">
81<a name="boost_math.gcd_lcm.gcd_function_object"></a>GCD Function Object</h3></div></div></div>
82<p>
83        <span class="bold"><strong>Header: </strong></span> <a href="../../../boost/math/common_factor_rt.hpp" target="_top">&lt;boost/math/common_factor_rt.hpp&gt;</a>
84      </p>
85<pre class="programlisting">
86<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</span>
87<span class="keyword">class</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">gcd_evaluator</span>
88<span class="special">{</span>
89<span class="keyword">public</span><span class="special">:</span>
90   <span class="comment">// Types
91</span>   <span class="keyword">typedef</span> <span class="identifier">IntegerType</span>  <span class="identifier">result_type</span><span class="special">;</span>
92   <span class="keyword">typedef</span> <span class="identifier">IntegerType</span>  <span class="identifier">first_argument_type</span><span class="special">;</span>
93   <span class="keyword">typedef</span> <span class="identifier">IntegerType</span>  <span class="identifier">second_argument_type</span><span class="special">;</span>
94
95   <span class="comment">// Function object interface
96</span>   <span class="identifier">result_type</span>  <span class="keyword">operator</span> <span class="special">()(</span> <span class="identifier">first_argument_type</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">a</span><span class="special">,</span>
97   <span class="identifier">second_argument_type</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">b</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
98<span class="special">};</span>
99</pre>
100<p>
101        The boost::math::gcd_evaluator class template defines a function object class
102        to return the greatest common divisor of two integers. The template is parameterized
103        by a single type, called IntegerType here. This type should be a numeric
104        type that represents integers. The result of the function object is always
105        nonnegative, even if either of the operator arguments is negative.
106      </p>
107<p>
108        This function object class template is used in the corresponding version
109        of the GCD function template. If a numeric type wants to customize evaluations
110        of its greatest common divisors, then the type should specialize on the gcd_evaluator
111        class template.
112      </p>
113</div>
114<div class="section" lang="en">
115<div class="titlepage"><div><div><h3 class="title">
116<a name="boost_math.gcd_lcm.lcm_function_object"></a>LCM Function Object</h3></div></div></div>
117<p>
118        <span class="bold"><strong>Header: </strong></span> <a href="../../../boost/math/common_factor_rt.hpp" target="_top">&lt;boost/math/common_factor_rt.hpp&gt;</a>
119      </p>
120<pre class="programlisting">
121<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</span>
122<span class="keyword">class</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">lcm_evaluator</span>
123<span class="special">{</span>
124<span class="keyword">public</span><span class="special">:</span>
125   <span class="comment">// Types
126</span>   <span class="keyword">typedef</span> <span class="identifier">IntegerType</span>  <span class="identifier">result_type</span><span class="special">;</span>
127   <span class="keyword">typedef</span> <span class="identifier">IntegerType</span>  <span class="identifier">first_argument_type</span><span class="special">;</span>
128   <span class="keyword">typedef</span> <span class="identifier">IntegerType</span>  <span class="identifier">second_argument_type</span><span class="special">;</span>
129
130   <span class="comment">// Function object interface
131</span>   <span class="identifier">result_type</span>  <span class="keyword">operator</span> <span class="special">()(</span> <span class="identifier">first_argument_type</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">a</span><span class="special">,</span>
132   <span class="identifier">second_argument_type</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">b</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
133<span class="special">};</span>
134</pre>
135<p>
136        The boost::math::lcm_evaluator class template defines a function object class
137        to return the least common multiple of two integers. The template is parameterized
138        by a single type, called IntegerType here. This type should be a numeric
139        type that represents integers. The result of the function object is always
140        nonnegative, even if either of the operator arguments is negative. If the
141        least common multiple is beyond the range of the integer type, the results
142        are undefined.
143      </p>
144<p>
145        This function object class template is used in the corresponding version
146        of the LCM function template. If a numeric type wants to customize evaluations
147        of its least common multiples, then the type should specialize on the lcm_evaluator
148        class template.
149      </p>
150</div>
151<div class="section" lang="en">
152<div class="titlepage"><div><div><h3 class="title">
153<a name="boost_math.gcd_lcm.run_time_gcd___lcm_determination"></a>Run-time GCD &amp; LCM Determination</h3></div></div></div>
154<p>
155        <span class="bold"><strong>Header: </strong></span> <a href="../../../boost/math/common_factor_rt.hpp" target="_top">&lt;boost/math/common_factor_rt.hpp&gt;</a>
156      </p>
157<pre class="programlisting">
158<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</span>
159<span class="identifier">IntegerType</span>  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">gcd</span><span class="special">(</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">b</span> <span class="special">);</span>
160
161<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</span>
162<span class="identifier">IntegerType</span>  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">lcm</span><span class="special">(</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">b</span> <span class="special">);</span>
163</pre>
164<p>
165        The boost::math::gcd function template returns the greatest common (nonnegative)
166        divisor of the two integers passed to it. The boost::math::lcm function template
167        returns the least common (nonnegative) multiple of the two integers passed
168        to it. The function templates are parameterized on the function arguments'
169        IntegerType, which is also the return type. Internally, these function templates
170        use an object of the corresponding version of the gcd_evaluator and lcm_evaluator
171        class templates, respectively.
172      </p>
173</div>
174<div class="section" lang="en">
175<div class="titlepage"><div><div><h3 class="title">
176<a name="boost_math.gcd_lcm.compile_time_gcd_and_lcm_determination"></a>Compile time GCD and LCM determination</h3></div></div></div>
177<p>
178        <span class="bold"><strong>Header: </strong></span> <a href="../../../boost/math/common_factor_ct.hpp" target="_top">&lt;boost/math/common_factor_ct.hpp&gt;</a>
179      </p>
180<pre class="programlisting">
181<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">Value2</span> <span class="special">&gt;</span>
182<span class="keyword">struct</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">static_gcd</span>
183<span class="special">{</span>
184   <span class="keyword">static</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="keyword">const</span>  <span class="identifier">value</span> <span class="special">=</span> <span class="identifier">implementation_defined</span><span class="special">;</span>
185<span class="special">};</span>
186
187<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">Value2</span> <span class="special">&gt;</span>
188<span class="keyword">struct</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">static_lcm</span>
189<span class="special">{</span>
190   <span class="keyword">static</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="keyword">const</span>  <span class="identifier">value</span> <span class="special">=</span> <span class="identifier">implementation_defined</span><span class="special">;</span>
191<span class="special">};</span>
192</pre>
193<p>
194        The boost::math::static_gcd and boost::math::static_lcm class templates take
195        two value-based template parameters of the unsigned long type and have a
196        single static constant data member, value, of that same type. The value of
197        that member is the greatest common factor or least common multiple, respectively,
198        of the template arguments. A compile-time error will occur if the least common
199        multiple is beyond the range of an unsigned long.
200      </p>
201<a name="boost_math.gcd_lcm.compile_time_gcd_and_lcm_determination.example"></a><h3>
202<a name="id1252541"></a>
203        Example
204      </h3>
205<pre class="programlisting">
206<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">common_factor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
207<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">algorithm</span><span class="special">&gt;</span>
208<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
209
210
211<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
212<span class="special">{</span>
213   <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span>
214   <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
215
216   <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"The GCD and LCM of 6 and 15 are "</span>
217   <span class="special">&lt;&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">gcd</span><span class="special">(</span><span class="number">6</span><span class="special">,</span> <span class="number">15</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">" and "</span>
218   <span class="special">&lt;&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">lcm</span><span class="special">(</span><span class="number">6</span><span class="special">,</span> <span class="number">15</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">", respectively."</span>
219   <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
220
221   <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"The GCD and LCM of 8 and 9 are "</span>
222   <span class="special">&lt;&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">static_gcd</span><span class="special">&lt;</span><span class="number">8</span><span class="special">,</span> <span class="number">9</span><span class="special">&gt;::</span><span class="identifier">value</span>
223   <span class="special">&lt;&lt;</span> <span class="string">" and "</span>
224   <span class="special">&lt;&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">static_lcm</span><span class="special">&lt;</span><span class="number">8</span><span class="special">,</span> <span class="number">9</span><span class="special">&gt;::</span><span class="identifier">value</span>
225   <span class="special">&lt;&lt;</span> <span class="string">", respectively."</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
226
227   <span class="keyword">int</span>  <span class="identifier">a</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">4</span><span class="special">,</span> <span class="number">5</span><span class="special">,</span> <span class="number">6</span> <span class="special">},</span> <span class="identifier">b</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">7</span><span class="special">,</span> <span class="number">8</span><span class="special">,</span> <span class="number">9</span> <span class="special">},</span> <span class="identifier">c</span><span class="special">[</span><span class="number">3</span><span class="special">];</span>
228   <span class="identifier">std</span><span class="special">::</span><span class="identifier">transform</span><span class="special">(</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">a</span> <span class="special">+</span> <span class="number">3</span><span class="special">,</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">c</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">gcd_evaluator</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;()</span> <span class="special">);</span>
229   <span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span> <span class="identifier">c</span><span class="special">,</span> <span class="identifier">c</span> <span class="special">+</span> <span class="number">3</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">" "</span><span class="special">)</span> <span class="special">);</span>
230<span class="special">}</span>
231</pre>
232</div>
233<div class="section" lang="en">
234<div class="titlepage"><div><div><h3 class="title">
235<a name="boost_math.gcd_lcm.header__boost_math_common_factor_hpp_"></a>Header &lt;boost/math/common_factor.hpp&gt;</h3></div></div></div>
236<p>
237        This header simply includes the headers <a href="../../../boost/math/common_factor_ct.hpp" target="_top">&lt;boost/math/common_factor_ct.hpp&gt;</a>
238        and <a href="../../../boost/math/common_factor_rt.hpp" target="_top">&lt;boost/math/common_factor_rt.hpp&gt;</a>.
239      </p>
240<p>
241        Note this is a legacy header: it used to contain the actual implementation,
242        but the compile-time and run-time facilities were moved to separate headers
243        (since they were independent of each other).
244      </p>
245</div>
246<div class="section" lang="en">
247<div class="titlepage"><div><div><h3 class="title">
248<a name="boost_math.gcd_lcm.demonstration_program"></a>Demonstration Program</h3></div></div></div>
249<p>
250        The program <a href="../../../libs/math/test/common_factor_test.cpp" target="_top">common_factor_test.cpp</a>
251        is a demonstration of the results from instantiating various examples of
252        the run-time GCD and LCM function templates and the compile-time GCD and
253        LCM class templates. (The run-time GCD and LCM class templates are tested
254        indirectly through the run-time function templates.)
255      </p>
256</div>
257<div class="section" lang="en">
258<div class="titlepage"><div><div><h3 class="title">
259<a name="boost_math.gcd_lcm.rationale"></a>Rationale</h3></div></div></div>
260<p>
261        The greatest common divisor and least common multiple functions are greatly
262        used in some numeric contexts, including some of the other Boost libraries.
263        Centralizing these functions to one header improves code factoring and eases
264        maintainence.
265      </p>
266</div>
267<div class="section" lang="en">
268<div class="titlepage"><div><div><h3 class="title">
269<a name="boost_math.gcd_lcm.history"></a>History</h3></div></div></div>
270<div class="itemizedlist"><ul type="disc">
271<li>
272          17 Dec 2005: Converted documentation to Quickbook Format.
273        </li>
274<li>
275          2 Jul 2002: Compile-time and run-time items separated to new headers.
276        </li>
277<li>
278          7 Nov 2001: Initial version
279        </li>
280</ul></div>
281</div>
282<div class="section" lang="en">
283<div class="titlepage"><div><div><h3 class="title">
284<a name="boost_math.gcd_lcm.credits"></a>Credits</h3></div></div></div>
285<p>
286        The author of the Boost compilation of GCD and LCM computations is Daryle
287        Walker. The code was prompted by existing code hiding in the implementations
288        of Paul Moore's rational library and Steve Cleary's pool library. The code
289        had updates by Helmut Zeisel.
290      </p>
291</div>
292</div>
293<table width="100%"><tr>
294<td align="left"></td>
295<td align="right"><small>Copyright © 2001 -2002 Daryle Walker, 2001-2003 Hubert Holin, 2005
296      John Maddock</small></td>
297</tr></table>
298<hr>
299<div class="spirit-nav">
300<a accesskey="p" href="../boost_math.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_math.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="math_special_functions.html"><img src="../images/next.png" alt="Next"></a>
301</div>
302</body>
303</html>
Note: See TracBrowser for help on using the repository browser.