Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r50221 - in trunk/doc/test/gold: . boost boost/accumulators boost/accumulators/extract boost/accumulators/impl boost/accumulators/tag document_to_test_formatting images/accumulators
From: john_at_[hidden]
Date: 2008-12-09 07:11:14


Author: johnmaddock
Date: 2008-12-09 07:11:12 EST (Tue, 09 Dec 2008)
New Revision: 50221
URL: http://svn.boost.org/trac/boost/changeset/50221

Log:
Added reference build.
Added:
   trunk/doc/test/gold/boost/
   trunk/doc/test/gold/boost/accumulators/
   trunk/doc/test/gold/boost/accumulators/extract/
   trunk/doc/test/gold/boost/accumulators/extract/weighted_tail_quantile.html (contents, props changed)
   trunk/doc/test/gold/boost/accumulators/impl/
   trunk/doc/test/gold/boost/accumulators/impl/weighted_tail_quantile__id226526.html (contents, props changed)
   trunk/doc/test/gold/boost/accumulators/tag/
   trunk/doc/test/gold/boost/accumulators/tag/weighted_tail_quantile.html (contents, props changed)
   trunk/doc/test/gold/boost/array.html (contents, props changed)
   trunk/doc/test/gold/document_to_test_formatting/
   trunk/doc/test/gold/document_to_test_formatting/accumulators.html (contents, props changed)
   trunk/doc/test/gold/document_to_test_formatting/array.html (contents, props changed)
   trunk/doc/test/gold/document_to_test_formatting/basic_formatting.html (contents, props changed)
   trunk/doc/test/gold/document_to_test_formatting/blurbs.html (contents, props changed)
   trunk/doc/test/gold/document_to_test_formatting/code_blocks.html (contents, props changed)
   trunk/doc/test/gold/document_to_test_formatting/images.html (contents, props changed)
   trunk/doc/test/gold/document_to_test_formatting/lists_and_tables.html (contents, props changed)
   trunk/doc/test/gold/document_to_test_formatting/remez.html (contents, props changed)
   trunk/doc/test/gold/document_to_test_formatting/test.html (contents, props changed)
   trunk/doc/test/gold/images/accumulators/
   trunk/doc/test/gold/images/accumulators/doxygen.png (contents, props changed)
   trunk/doc/test/gold/images/accumulators/form_0.png (contents, props changed)
   trunk/doc/test/gold/images/accumulators/form_1.png (contents, props changed)
   trunk/doc/test/gold/images/accumulators/form_2.png (contents, props changed)
   trunk/doc/test/gold/images/accumulators/form_3.png (contents, props changed)
   trunk/doc/test/gold/images/accumulators/form_4.png (contents, props changed)
   trunk/doc/test/gold/images/accumulators/form_5.png (contents, props changed)
   trunk/doc/test/gold/images/accumulators/form_6.png (contents, props changed)
   trunk/doc/test/gold/images/accumulators/form_7.png (contents, props changed)
   trunk/doc/test/gold/images/accumulators/form_8.png (contents, props changed)
   trunk/doc/test/gold/index.html (contents, props changed)

Added: trunk/doc/test/gold/boost/accumulators/extract/weighted_tail_quantile.html
==============================================================================
--- (empty file)
+++ trunk/doc/test/gold/boost/accumulators/extract/weighted_tail_quantile.html 2008-12-09 07:11:12 EST (Tue, 09 Dec 2008)
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Global weighted_tail_quantile</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
+<link rel="home" href="../../../index.html" title="Document To Test Formatting">
+<link rel="up" href="../../../document_to_test_formatting/accumulators.html#header.boost.trunk.doc.test.weighted_tail_quantile_hpp" title="Header &lt;boost/trunk/doc/test/weighted_tail_quantile.hpp&gt;">
+<link rel="prev" href="../../../document_to_test_formatting/accumulators.html" title="Accumulators Example Doxygen Documentation">
+<link rel="next" href="../impl/weighted_tail_quantile__id226526.html" title="Struct template weighted_tail_quantile_impl">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../../../document_to_test_formatting/accumulators.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../document_to_test_formatting/accumulators.html#header.boost.trunk.doc.test.weighted_tail_quantile_hpp"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../impl/weighted_tail_quantile__id226526.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.accumulators.extract.weighted_tail_quantile"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Global weighted_tail_quantile</span></h2>
+<p>boost::accumulators::extract::weighted_tail_quantile</p>
+</div>
+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
+<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: &lt;<a class="link" href="../../../document_to_test_formatting/accumulators.html#header.boost.trunk.doc.test.weighted_tail_quantile_hpp" title="Header &lt;boost/trunk/doc/test/weighted_tail_quantile.hpp&gt;">boost/trunk/doc/test/weighted_tail_quantile.hpp</a>&gt;
+
+</em></span>extractor&lt; tag::quantile &gt; const weighted_tail_quantile;</pre></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2007 John Maddock, Joel de Guzman, Eric Niebler and Matias
+ Capeletto<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../../../document_to_test_formatting/accumulators.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../document_to_test_formatting/accumulators.html#header.boost.trunk.doc.test.weighted_tail_quantile_hpp"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../impl/weighted_tail_quantile__id226526.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/doc/test/gold/boost/accumulators/impl/weighted_tail_quantile__id226526.html
==============================================================================
--- (empty file)
+++ trunk/doc/test/gold/boost/accumulators/impl/weighted_tail_quantile__id226526.html 2008-12-09 07:11:12 EST (Tue, 09 Dec 2008)
@@ -0,0 +1,91 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct template weighted_tail_quantile_impl</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
+<link rel="home" href="../../../index.html" title="Document To Test Formatting">
+<link rel="up" href="../../../document_to_test_formatting/accumulators.html#header.boost.trunk.doc.test.weighted_tail_quantile_hpp" title="Header &lt;boost/trunk/doc/test/weighted_tail_quantile.hpp&gt;">
+<link rel="prev" href="../extract/weighted_tail_quantile.html" title="Global weighted_tail_quantile">
+<link rel="next" href="../tag/weighted_tail_quantile.html" title="Struct template weighted_tail_quantile">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../extract/weighted_tail_quantile.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../document_to_test_formatting/accumulators.html#header.boost.trunk.doc.test.weighted_tail_quantile_hpp"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../tag/weighted_tail_quantile.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.accumulators.impl.weighted_tail_quantile__id226526"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct template weighted_tail_quantile_impl</span></h2>
+<p>boost::accumulators::impl::weighted_tail_quantile_impl &#8212; Tail quantile estimation based on order statistics of weighted samples (for both left and right tails). </p>
+</div>
+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
+<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: &lt;<a class="link" href="../../../document_to_test_formatting/accumulators.html#header.boost.trunk.doc.test.weighted_tail_quantile_hpp" title="Header &lt;boost/trunk/doc/test/weighted_tail_quantile.hpp&gt;">boost/trunk/doc/test/weighted_tail_quantile.hpp</a>&gt;
+
+</em></span><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Sample, <span class="bold"><strong>typename</strong></span> Weight, <span class="bold"><strong>typename</strong></span> LeftRight&gt;
+<span class="bold"><strong>struct</strong></span> <a class="link" href="weighted_tail_quantile__id226526.html" title="Struct template weighted_tail_quantile_impl">weighted_tail_quantile_impl</a> {
+ <span class="emphasis"><em>// types</em></span>
+ <span class="bold"><strong>typedef</strong></span> numeric::functional::average&lt; Weight, std::size_t &gt;::result_type <a name="boost.accumulators.impl.weighted_tail_quantile__id226526.float_type"></a>float_type;
+ <span class="bold"><strong>typedef</strong></span> Sample <a name="boost.accumulators.impl.weighted_tail_quantile__id226526.result_type"></a>result_type;
+
+ <span class="emphasis"><em>// <a class="link" href="weighted_tail_quantile__id226526.html#boost.accumulators.impl.weighted_tail_quantile__id226526construct-copy-destruct">construct/copy/destruct</a></em></span>
+ <a class="link" href="weighted_tail_quantile__id226526.html#id226362-bb">weighted_tail_quantile_impl</a>(dont_care);
+
+ <span class="emphasis"><em>// <a class="link" href="weighted_tail_quantile__id226526.html#id226739-bb">public member functions</a></em></span>
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Args&gt; <span class="type">result_type</span> <a class="link" href="weighted_tail_quantile__id226526.html#id226647-bb">result</a>(Args <span class="bold"><strong>const</strong></span> &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id545120"></a><h2>Description</h2>
+<p>An estimator <span class="inlinemediaobject"><img src="../../../images/accumulators/form_0.png"></span> of tail quantiles with level <span class="inlinemediaobject"><img src="../../../images/accumulators/form_1.png"></span> based on order statistics <span class="inlinemediaobject"><img src="../../../images/accumulators/form_2.png"></span> of weighted samples are given by <span class="inlinemediaobject"><img src="../../../images/accumulators/form_3.png"></span> (left tail) and <span class="inlinemediaobject"><img src="../../../images/accumulators/form_4.png"></span> (right tail), where</p>
+<div class="equation">
+<a name="id545243"></a><p class="title"><b>Equation 1. </b></p>
+<div class="equation-contents"><div class="mediaobject" align="center"><img src="../../../images/accumulators/form_5.png" align="middle"></div></div>
+</div>
+<p><br class="equation-break"></p>
+<p>and</p>
+<div class="equation">
+<a name="id545273"></a><p class="title"><b>Equation 2. </b></p>
+<div class="equation-contents"><div class="mediaobject" align="center"><img src="../../../images/accumulators/form_6.png" align="middle"></div></div>
+</div>
+<p><br class="equation-break"></p>
+<p><span class="inlinemediaobject"><img src="../../../images/accumulators/form_7.png"></span> being the number of samples and <span class="inlinemediaobject"><img src="../../../images/accumulators/form_8.png"></span> the sum of all weights.</p>
+<p>
+</p>
+<div class="refsect2" lang="en">
+<a name="id545349"></a><h3>
+<a name="boost.accumulators.impl.weighted_tail_quantile__id226526construct-copy-destruct"></a><code class="computeroutput">weighted_tail_quantile_impl</code>
+ public
+ construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id226362-bb"></a>weighted_tail_quantile_impl(dont_care);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id545388"></a><h3>
+<a name="id226739-bb"></a><code class="computeroutput">weighted_tail_quantile_impl</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Args&gt; <span class="type">result_type</span> <a name="id226647-bb"></a>result(Args <span class="bold"><strong>const</strong></span> &amp; args) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2007 John Maddock, Joel de Guzman, Eric Niebler and Matias
+ Capeletto<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../extract/weighted_tail_quantile.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../document_to_test_formatting/accumulators.html#header.boost.trunk.doc.test.weighted_tail_quantile_hpp"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../tag/weighted_tail_quantile.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/doc/test/gold/boost/accumulators/tag/weighted_tail_quantile.html
==============================================================================
--- (empty file)
+++ trunk/doc/test/gold/boost/accumulators/tag/weighted_tail_quantile.html 2008-12-09 07:11:12 EST (Tue, 09 Dec 2008)
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct template weighted_tail_quantile</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
+<link rel="home" href="../../../index.html" title="Document To Test Formatting">
+<link rel="up" href="../../../document_to_test_formatting/accumulators.html#header.boost.trunk.doc.test.weighted_tail_quantile_hpp" title="Header &lt;boost/trunk/doc/test/weighted_tail_quantile.hpp&gt;">
+<link rel="prev" href="../impl/weighted_tail_quantile__id226526.html" title="Struct template weighted_tail_quantile_impl">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../impl/weighted_tail_quantile__id226526.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../document_to_test_formatting/accumulators.html#header.boost.trunk.doc.test.weighted_tail_quantile_hpp"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.accumulators.tag.weighted_tail_quantile"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct template weighted_tail_quantile</span></h2>
+<p>boost::accumulators::tag::weighted_tail_quantile</p>
+</div>
+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
+<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: &lt;<a class="link" href="../../../document_to_test_formatting/accumulators.html#header.boost.trunk.doc.test.weighted_tail_quantile_hpp" title="Header &lt;boost/trunk/doc/test/weighted_tail_quantile.hpp&gt;">boost/trunk/doc/test/weighted_tail_quantile.hpp</a>&gt;
+
+</em></span><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> LeftRight&gt;
+<span class="bold"><strong>struct</strong></span> <a class="link" href="weighted_tail_quantile.html" title="Struct template weighted_tail_quantile">weighted_tail_quantile</a> : <span class="bold"><strong>public</strong></span> boost::accumulators::depends_on&lt; sum_of_weights, tail_weights&lt; LeftRight &gt; &gt;
+{
+};</pre></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2007 John Maddock, Joel de Guzman, Eric Niebler and Matias
+ Capeletto<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../impl/weighted_tail_quantile__id226526.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../document_to_test_formatting/accumulators.html#header.boost.trunk.doc.test.weighted_tail_quantile_hpp"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a>
+</div>
+</body>
+</html>

Added: trunk/doc/test/gold/boost/array.html
==============================================================================
--- (empty file)
+++ trunk/doc/test/gold/boost/array.html 2008-12-09 07:11:12 EST (Tue, 09 Dec 2008)
@@ -0,0 +1,641 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template array</title>
+<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
+<link rel="home" href="../index.html" title="Document To Test Formatting">
+<link rel="up" href="../document_to_test_formatting/array.html#header.boost.array_hpp" title="Header &lt;boost/array.hpp&gt;">
+<link rel="prev" href="../document_to_test_formatting/array.html" title="Array Example Boostbook XML Documentation">
+<link rel="next" href="../document_to_test_formatting/accumulators.html" title="Accumulators Example Doxygen Documentation">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../document_to_test_formatting/array.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../document_to_test_formatting/array.html#header.boost.array_hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../document_to_test_formatting/accumulators.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.array"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template array</span></h2>
+<p>boost::array &#8212; STL compliant container wrapper for arrays of constant size</p>
+</div>
+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
+<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: &lt;<a class="link" href="../document_to_test_formatting/array.html#header.boost.array_hpp" title="Header &lt;boost/array.hpp&gt;">boost/array.hpp</a>&gt;
+
+</em></span><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+<span class="bold"><strong>class</strong></span> <a class="link" href="array.html" title="Class template array">array</a> {
+<span class="bold"><strong>public</strong></span>:
+ <span class="emphasis"><em>// types</em></span>
+ <span class="bold"><strong>typedef</strong></span> T <a name="boost.array.value_type"></a>value_type;
+ <span class="bold"><strong>typedef</strong></span> T* <a name="boost.array.iterator"></a>iterator;
+ <span class="bold"><strong>typedef</strong></span> <span class="bold"><strong>const</strong></span> T* <a name="boost.array.const_iterator"></a>const_iterator;
+ <span class="bold"><strong>typedef</strong></span>
+ std::reverse_iterator&lt;iterator&gt;
+ <a name="boost.array.reverse_iterator"></a>reverse_iterator;
+ <span class="bold"><strong>typedef</strong></span>
+ std::reverse_iterator&lt;const_iterator&gt;
+ <a name="boost.array.const_reverse_iterator"></a>const_reverse_iterator;
+ <span class="bold"><strong>typedef</strong></span> T&amp; <a name="boost.array.reference"></a>reference;
+ <span class="bold"><strong>typedef</strong></span> <span class="bold"><strong>const</strong></span> T&amp; <a name="boost.array.const_reference"></a>const_reference;
+ <span class="bold"><strong>typedef</strong></span> std::size_t <a name="boost.array.size_type"></a>size_type;
+ <span class="bold"><strong>typedef</strong></span> std::ptrdiff_t <a name="boost.array.difference_type"></a>difference_type;
+
+ <span class="emphasis"><em>// static constants</em></span>
+ <span class="bold"><strong>static</strong></span> <span class="bold"><strong>const</strong></span> <span class="type">size_type</span> static_size = N;
+
+ <span class="emphasis"><em>// <a class="link" href="array.html#boost.arrayconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U&gt;
+ array&amp; <a class="link" href="array.html#id225116-bb"><span class="bold"><strong>operator</strong></span>=</a>(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;U, N&gt;&amp;
+ );
+
+ <span class="emphasis"><em>// <a class="link" href="array.html#id225163-bb">iterator support</a></em></span>
+ <span class="type">iterator</span> <a class="link" href="array.html#id225172-bb">begin</a>();
+ <span class="type">const_iterator</span> <a class="link" href="array.html#id225179-bb">begin</a>() <span class="bold"><strong>const</strong></span>;
+ <span class="type">iterator</span> <a class="link" href="array.html#id225209-bb">end</a>();
+ <span class="type">const_iterator</span> <a class="link" href="array.html#id185009-bb">end</a>() <span class="bold"><strong>const</strong></span>;
+
+ <span class="emphasis"><em>// <a class="link" href="array.html#id185036-bb">reverse iterator support</a></em></span>
+ <span class="type">reverse_iterator</span> <a class="link" href="array.html#id185046-bb">rbegin</a>();
+ <span class="type">const_reverse_iterator</span> <a class="link" href="array.html#id185053-bb">rbegin</a>() <span class="bold"><strong>const</strong></span>;
+ <span class="type">reverse_iterator</span> <a class="link" href="array.html#id185076-bb">rend</a>();
+ <span class="type">const_reverse_iterator</span> <a class="link" href="array.html#id185084-bb">rend</a>() <span class="bold"><strong>const</strong></span>;
+
+ <span class="emphasis"><em>// <a class="link" href="array.html#id185103-bb">capacity</a></em></span>
+ <span class="type">size_type</span> <a class="link" href="array.html#id185107-bb">size</a>();
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a class="link" href="array.html#id185128-bb">empty</a>();
+ <span class="type">size_type</span> <a class="link" href="array.html#id185156-bb">max_size</a>();
+
+ <span class="emphasis"><em>// <a class="link" href="array.html#id155125-bb">element access</a></em></span>
+ <span class="type">reference</span> <a class="link" href="array.html#id155134-bb"><span class="bold"><strong>operator</strong></span>[]</a>(size_type);
+ <span class="type">const_reference</span> <a class="link" href="array.html#id155151-bb"><span class="bold"><strong>operator</strong></span>[]</a>(size_type) <span class="bold"><strong>const</strong></span>;
+ <span class="type">reference</span> <a class="link" href="array.html#id155207-bb">at</a>(size_type);
+ <span class="type">const_reference</span> <a class="link" href="array.html#id155224-bb">at</a>(size_type) <span class="bold"><strong>const</strong></span>;
+ <span class="type">reference</span> <a class="link" href="array.html#id155281-bb">front</a>();
+ <span class="type">const_reference</span> <a class="link" href="array.html#id155288-bb">front</a>() <span class="bold"><strong>const</strong></span>;
+ <span class="type">reference</span> <a class="link" href="array.html#id155329-bb">back</a>();
+ <span class="type">const_reference</span> <a class="link" href="array.html#id155336-bb">back</a>() <span class="bold"><strong>const</strong></span>;
+ <span class="type"><span class="bold"><strong>const</strong></span> T*</span> <a class="link" href="array.html#id155372-bb">data</a>() <span class="bold"><strong>const</strong></span>;
+ <span class="type">T*</span> <a class="link" href="array.html#id227218-bb">c_array</a>();
+
+ <span class="emphasis"><em>// <a class="link" href="array.html#id227247-bb">modifiers</a></em></span>
+ <span class="type"><span class="bold"><strong>void</strong></span></span> <a class="link" href="array.html#id227252-bb">swap</a>(
+ <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ );
+ <span class="type"><span class="bold"><strong>void</strong></span></span> <a class="link" href="array.html#id227310-bb">assign</a>(<span class="bold"><strong>const</strong></span> T&amp;);
+ <span class="type">T</span> elems[N];
+};
+
+<span class="emphasis"><em>// <a class="link" href="array.html#id227358-bb">specialized algorithms</a></em></span>
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>void</strong></span></span> <a class="link" href="array.html#boost.swap">swap</a>(
+ <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ ,
+
+ <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ );
+
+<span class="emphasis"><em>// <a class="link" href="array.html#id227444-bb">comparisons</a></em></span>
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a class="link" href="array.html#boost.operator=="><span class="bold"><strong>operator</strong></span>==</a>(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ ,
+
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ );
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a class="link" href="array.html#boost.operator!="><span class="bold"><strong>operator</strong></span>!=</a>(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ ,
+
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ );
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a class="link" href="array.html#boost.operator_id227596"><span class="bold"><strong>operator</strong></span>&lt;</a>(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ ,
+
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ );
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a class="link" href="array.html#boost.operator_id227679"><span class="bold"><strong>operator</strong></span>&gt;</a>(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ ,
+
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ );
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a class="link" href="array.html#boost.operator_=_id227747"><span class="bold"><strong>operator</strong></span>&lt;=</a>(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ ,
+
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ );
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a class="link" href="array.html#boost.operator_=_id227814"><span class="bold"><strong>operator</strong></span>&gt;=</a>(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ ,
+
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ );</pre></div>
+<div class="refsect1" lang="en">
+<a name="id542541"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id542545"></a><h3>
+<a name="boost.arrayconstruct-copy-destruct"></a><code class="computeroutput">array</code>
+ public
+ construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U&gt;
+ array&amp; <a name="id225116-bb"></a><span class="bold"><strong>operator</strong></span>=(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;U, N&gt;&amp;
+ other);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term">Effects:</span></p></td>
+<td>
+ <code class="computeroutput">
+ std::copy(rhs.<a class="link" href="array.html#id225167-bb">begin</a>(),rhs.<a class="link" href="array.html#id225205-bb">end</a>(), <a class="link" href="array.html#id225167-bb">begin</a>())
+ </code>
+ </td>
+</tr></tbody>
+</table></div>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id542665"></a><h3>
+<a name="id225163-bb"></a><code class="computeroutput">array</code> iterator support</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id225167-bb"></a><span class="type">iterator</span> <a name="id225172-bb"></a>begin();
+<span class="type">const_iterator</span> <a name="id225179-bb"></a>begin() <span class="bold"><strong>const</strong></span>;</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>iterator for the first element</td>
+</tr>
+<tr>
+<td><p><span class="term">Throws:</span></p></td>
+<td>will not throw</td>
+</tr>
+</tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><a name="id225205-bb"></a><span class="type">iterator</span> <a name="id225209-bb"></a>end();
+<span class="type">const_iterator</span> <a name="id185009-bb"></a>end() <span class="bold"><strong>const</strong></span>;</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>iterator for position after the last element</td>
+</tr>
+<tr>
+<td><p><span class="term">Throws:</span></p></td>
+<td>will not throw</td>
+</tr>
+</tbody>
+</table></div>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id542810"></a><h3>
+<a name="id185036-bb"></a><code class="computeroutput">array</code> reverse iterator support</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id185041-bb"></a><span class="type">reverse_iterator</span> <a name="id185046-bb"></a>rbegin();
+<span class="type">const_reverse_iterator</span> <a name="id185053-bb"></a>rbegin() <span class="bold"><strong>const</strong></span>;</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>reverse iterator for the first element of reverse iteration</td>
+</tr></tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><a name="id185072-bb"></a><span class="type">reverse_iterator</span> <a name="id185076-bb"></a>rend();
+<span class="type">const_reverse_iterator</span> <a name="id185084-bb"></a>rend() <span class="bold"><strong>const</strong></span>;</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>reverse iterator for position after the last element in reverse iteration</td>
+</tr></tbody>
+</table></div>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id542942"></a><h3>
+<a name="id185103-bb"></a><code class="computeroutput">array</code> capacity</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type">size_type</span> <a name="id185107-bb"></a>size();</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>
+ <code class="computeroutput">N</code>
+ </td>
+</tr></tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id185128-bb"></a>empty();</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>
+ <code class="computeroutput">N==0</code>
+ </td>
+</tr>
+<tr>
+<td><p><span class="term">Throws:</span></p></td>
+<td>will not throw</td>
+</tr>
+</tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><span class="type">size_type</span> <a name="id185156-bb"></a>max_size();</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>
+ <code class="computeroutput">N</code>
+ </td>
+</tr>
+<tr>
+<td><p><span class="term">Throws:</span></p></td>
+<td>will not throw</td>
+</tr>
+</tbody>
+</table></div>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id543096"></a><h3>
+<a name="id155125-bb"></a><code class="computeroutput">array</code> element access</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id155129-bb"></a><span class="type">reference</span> <a name="id155134-bb"></a><span class="bold"><strong>operator</strong></span>[](size_type i);
+<span class="type">const_reference</span> <a name="id155151-bb"></a><span class="bold"><strong>operator</strong></span>[](size_type i) <span class="bold"><strong>const</strong></span>;</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term">Requires:</span></p></td>
+<td>
+ <code class="computeroutput">i &lt; N</code>
+ </td>
+</tr>
+<tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>
+ element with index <code class="computeroutput">i</code>
+ </td>
+</tr>
+<tr>
+<td><p><span class="term">Throws:</span></p></td>
+<td>will not throw.</td>
+</tr>
+</tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><a name="id155202-bb"></a><span class="type">reference</span> <a name="id155207-bb"></a>at(size_type i);
+<span class="type">const_reference</span> <a name="id155224-bb"></a>at(size_type i) <span class="bold"><strong>const</strong></span>;</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>
+ element with index <code class="computeroutput">i</code>
+ </td>
+</tr>
+<tr>
+<td><p><span class="term">Throws:</span></p></td>
+<td>
+ <code class="computeroutput">
+ std::range_error
+ </code> if <code class="computeroutput">i &gt;= N</code>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><a name="id155276-bb"></a><span class="type">reference</span> <a name="id155281-bb"></a>front();
+<span class="type">const_reference</span> <a name="id155288-bb"></a>front() <span class="bold"><strong>const</strong></span>;</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term">Requires:</span></p></td>
+<td>
+ <code class="computeroutput">N &gt; 0</code>
+ </td>
+</tr>
+<tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>the first element</td>
+</tr>
+<tr>
+<td><p><span class="term">Throws:</span></p></td>
+<td>will not throw</td>
+</tr>
+</tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><a name="id155324-bb"></a><span class="type">reference</span> <a name="id155329-bb"></a>back();
+<span class="type">const_reference</span> <a name="id155336-bb"></a>back() <span class="bold"><strong>const</strong></span>;</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term">Requires:</span></p></td>
+<td>
+ <code class="computeroutput">N &gt; 0</code>
+ </td>
+</tr>
+<tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>the last element</td>
+</tr>
+<tr>
+<td><p><span class="term">Throws:</span></p></td>
+<td>will not throw</td>
+</tr>
+</tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> T*</span> <a name="id155372-bb"></a>data() <span class="bold"><strong>const</strong></span>;</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>
+ <code class="computeroutput">elems</code>
+ </td>
+</tr>
+<tr>
+<td><p><span class="term">Throws:</span></p></td>
+<td>will not throw</td>
+</tr>
+</tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><span class="type">T*</span> <a name="id227218-bb"></a>c_array();</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>
+ <code class="computeroutput">elems</code>
+ </td>
+</tr>
+<tr>
+<td><p><span class="term">Throws:</span></p></td>
+<td>will not throw</td>
+</tr>
+</tbody>
+</table></div>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id543547"></a><h3>
+<a name="id227247-bb"></a><code class="computeroutput">array</code> modifiers</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id227252-bb"></a>swap(
+ <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ other);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term">Effects:</span></p></td>
+<td>
+ <code class="computeroutput">
+ std::swap_ranges(<a class="link" href="array.html#id225167-bb">begin</a>(), <a class="link" href="array.html#id225205-bb">end</a>(), other.<a class="link" href="array.html#id225167-bb">begin</a>())
+ </code>
+ </td>
+</tr>
+<tr>
+<td><p><span class="term">Complexity:</span></p></td>
+<td>
+ linear in <code class="computeroutput">N</code>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id227310-bb"></a>assign(<span class="bold"><strong>const</strong></span> T&amp; value);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term">Effects:</span></p></td>
+<td>
+ <code class="computeroutput">
+ std::fill_n(<a class="link" href="array.html#id225167-bb">begin</a>(), N, value)
+ </code>
+ </td>
+</tr></tbody>
+</table></div>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id543718"></a><h3>
+<a name="id227358-bb"></a><code class="computeroutput">array</code> specialized algorithms</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="boost.swap"></a>swap(
+ <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ x,
+
+ <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ y);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term">Effects:</span></p></td>
+<td>
+ <code class="computeroutput">
+ x.<a class="link" href="array.html#id227252-bb">swap</a>(y)
+ </code>
+ </td>
+</tr>
+<tr>
+<td><p><span class="term">Throws:</span></p></td>
+<td>will not throw.</td>
+</tr>
+</tbody>
+</table></div>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id543830"></a><h3>
+<a name="id227444-bb"></a><code class="computeroutput">array</code> comparisons</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="boost.operator=="></a><span class="bold"><strong>operator</strong></span>==(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ x,
+
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ y);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>
+ <code class="computeroutput">
+ std::equal(x.<a class="link" href="array.html#id225167-bb">begin</a>(), x.<a class="link" href="array.html#id225205-bb">end</a>(), y.<a class="link" href="array.html#id225167-bb">begin</a>())
+ </code>
+ </td>
+</tr></tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="boost.operator!="></a><span class="bold"><strong>operator</strong></span>!=(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ x,
+
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ y);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>
+ <code class="computeroutput">!(x == y)</code>
+ </td>
+</tr></tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="boost.operator_id227596"></a><span class="bold"><strong>operator</strong></span>&lt;(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ x,
+
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ y);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>
+ <code class="computeroutput">
+ std::lexicographical_compare(x.<a class="link" href="array.html#id225167-bb">begin</a>(), x.<a class="link" href="array.html#id225205-bb">end</a>(), y.<a class="link" href="array.html#id225167-bb">begin</a>(), y.<a class="link" href="array.html#id225205-bb">end</a>())
+ </code>
+ </td>
+</tr></tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="boost.operator_id227679"></a><span class="bold"><strong>operator</strong></span>&gt;(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ x,
+
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ y);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>
+ <code class="computeroutput">y &lt; x</code>
+ </td>
+</tr></tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="boost.operator_=_id227747"></a><span class="bold"><strong>operator</strong></span>&lt;=(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ x,
+
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ y);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>
+ <code class="computeroutput">!(y &lt; x)</code>
+ </td>
+</tr></tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="boost.operator_=_id227814"></a><span class="bold"><strong>operator</strong></span>&gt;=(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ x,
+
+ <span class="bold"><strong>const</strong></span> <a class="link" href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ y);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>
+ <code class="computeroutput">!(x &lt; y)</code>
+ </td>
+</tr></tbody>
+</table></div>
+</li>
+</ol></div>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2007 John Maddock, Joel de Guzman, Eric Niebler and Matias
+ Capeletto<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../document_to_test_formatting/array.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../document_to_test_formatting/array.html#header.boost.array_hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../document_to_test_formatting/accumulators.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/doc/test/gold/document_to_test_formatting/accumulators.html
==============================================================================
--- (empty file)
+++ trunk/doc/test/gold/document_to_test_formatting/accumulators.html 2008-12-09 07:11:12 EST (Tue, 09 Dec 2008)
@@ -0,0 +1,69 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Accumulators Example Doxygen Documentation</title>
+<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
+<link rel="home" href="../index.html" title="Document To Test Formatting">
+<link rel="up" href="../index.html" title="Document To Test Formatting">
+<link rel="prev" href="../boost/array.html" title="Class template array">
+<link rel="next" href="../boost/accumulators/extract/weighted_tail_quantile.html" title="Global weighted_tail_quantile">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../boost/array.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../boost/accumulators/extract/weighted_tail_quantile.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="document_to_test_formatting.accumulators"></a><a class="link" href="accumulators.html" title="Accumulators Example Doxygen Documentation"> Accumulators
+ Example Doxygen Documentation</a>
+</h2></div></div></div>
+<div class="toc"><dl><dt><span class="section">Statistics Library Reference</span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="statistics_library_reference"></a>Statistics Library Reference</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section">Header <boost/trunk/doc/test/weighted_tail_quantile.hpp></span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.trunk.doc.test.weighted_tail_quantile_hpp"></a>Header &lt;boost/trunk/doc/test/weighted_tail_quantile.hpp&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+ <span class="bold"><strong>namespace</strong></span> accumulators {
+ <span class="bold"><strong>namespace</strong></span> extract {
+ extractor&lt; tag::quantile &gt; const <a class="link" href="../boost/accumulators/extract/weighted_tail_quantile.html" title="Global weighted_tail_quantile">weighted_tail_quantile</a>;
+ }
+ <span class="bold"><strong>namespace</strong></span> impl {
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Sample, <span class="bold"><strong>typename</strong></span> Weight, <span class="bold"><strong>typename</strong></span> LeftRight&gt;
+ <span class="bold"><strong>struct</strong></span> <a class="link" href="../boost/accumulators/impl/weighted_tail_quantile__id226526.html" title="Struct template weighted_tail_quantile_impl">weighted_tail_quantile_impl</a>;
+ }
+ <span class="bold"><strong>namespace</strong></span> tag {
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> LeftRight&gt; <span class="bold"><strong>struct</strong></span> <a class="link" href="../boost/accumulators/tag/weighted_tail_quantile.html" title="Struct template weighted_tail_quantile">weighted_tail_quantile</a>;
+ }
+ }
+}</pre>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2007 John Maddock, Joel de Guzman, Eric Niebler and Matias
+ Capeletto<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../boost/array.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../boost/accumulators/extract/weighted_tail_quantile.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/doc/test/gold/document_to_test_formatting/array.html
==============================================================================
--- (empty file)
+++ trunk/doc/test/gold/document_to_test_formatting/array.html 2008-12-09 07:11:12 EST (Tue, 09 Dec 2008)
@@ -0,0 +1,262 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Array Example Boostbook XML Documentation</title>
+<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
+<link rel="home" href="../index.html" title="Document To Test Formatting">
+<link rel="up" href="../index.html" title="Document To Test Formatting">
+<link rel="prev" href="remez.html" title="Sample Article (The Remez Method)">
+<link rel="next" href="../boost/array.html" title="Class template array">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="remez.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../boost/array.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="document_to_test_formatting.array"></a><a class="link" href="array.html" title="Array Example Boostbook XML Documentation"> Array Example Boostbook
+ XML Documentation</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Introduction</span></dt>
+<dt><span class="section">Reference</span></dt>
+<dt><span class="section">Design Rationale</span></dt>
+<dt><span class="section">For more information...</span></dt>
+<dt><span class="section">Acknowledgements</span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="array.intro"></a>Introduction</h3></div></div></div>
+<p>The C++ Standard Template Library STL as part of the C++
+ Standard Library provides a framework for processing algorithms on
+ different kind of containers. However, ordinary arrays don't
+ provide the interface of STL containers (although, they provide
+ the iterator interface of STL containers).</p>
+<p>As replacement for ordinary arrays, the STL provides class
+ <code class="computeroutput">std::vector</code>. However,
+ <code class="computeroutput">std::vector&lt;&gt;</code> provides
+ the semantics of dynamic arrays. Thus, it manages data to be able
+ to change the number of elements. This results in some overhead in
+ case only arrays with static size are needed.</p>
+<p>In his book, <span class="emphasis"><em>Generic Programming and the
+ STL</em></span>, Matthew H. Austern introduces a useful wrapper
+ class for ordinary arrays with static size, called
+ <code class="computeroutput">block</code>. It is safer and has no worse performance than
+ ordinary arrays. In <span class="emphasis"><em>The C++ Programming
+ Language</em></span>, 3rd edition, Bjarne Stroustrup introduces a
+ similar class, called <code class="computeroutput">c_array</code>, which I (Nicolai Josuttis) present
+ slightly modified in my book <span class="emphasis"><em>The C++ Standard Library -
+ A Tutorial and Reference</em></span>, called
+ <code class="computeroutput">carray</code>. This is the essence of these approaches
+ spiced with many feedback from boost.</p>
+<p>After considering different names, we decided to name this
+ class simply <code class="computeroutput"><a class="link" href="../boost/array.html" title="Class template array">array</a></code>.</p>
+<p>Note that this class is suggested to be part of the next
+ Technical Report, which will extend the C++ Standard (see
+ http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1548.htm).</p>
+<p>Class <code class="computeroutput"><a class="link" href="../boost/array.html" title="Class template array">array</a></code> fulfills most
+ but not all of the requirements of "reversible containers" (see
+ Section 23.1, [lib.container.requirements] of the C++
+ Standard). The reasons array is not an reversible STL container is
+ because:
+ </p>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>No constructors are provided.</li>
+<li>Elements may have an undetermined initial value (see <a class="xref" href="array.html#array.rationale" title="Design Rationale">the section called &#8220;Design Rationale&#8221;</a>).</li>
+<li>
+<code class="computeroutput"><a class="link" href="../boost/array.html#boost.swap">swap</a></code>() has no constant complexity.</li>
+<li>
+<code class="computeroutput"><a class="link" href="../boost/array.html#id185107-bb">size</a></code>() is always constant, based on the second template argument of the type.</li>
+<li>The container provides no allocator support.</li>
+</ul></div>
+<p>
+ </p>
+<p>It doesn't fulfill the requirements of a "sequence" (see Section 23.1.1, [lib.sequence.reqmts] of the C++ Standard), except that:
+ </p>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>
+<code class="computeroutput"><a class="link" href="../boost/array.html#id155276-bb">front</a></code>() and <code class="computeroutput"><a class="link" href="../boost/array.html#id155324-bb">back</a></code>() are provided.</li>
+<li>
+<code class="computeroutput"><a class="link" href="../boost/array.html#id155129-bb">operator[]</a></code> and <code class="computeroutput"><a class="link" href="../boost/array.html#id155202-bb">at</a></code>() are provided.</li>
+</ul></div>
+<p>
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id540764"></a>Reference</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section">Header <boost/array.hpp></span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.array_hpp"></a>Header &lt;boost/array.hpp&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt; <span class="bold"><strong>class</strong></span> <a class="link" href="../boost/array.html" title="Class template array">array</a>;
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>void</strong></span></span> <a class="link" href="../boost/array.html#boost.swap">swap</a>(
+ <a class="link" href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ ,
+
+ <a class="link" href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ );
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a class="link" href="../boost/array.html#boost.operator=="><span class="bold"><strong>operator</strong></span>==</a>(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ ,
+
+ <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ );
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a class="link" href="../boost/array.html#boost.operator!="><span class="bold"><strong>operator</strong></span>!=</a>(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ ,
+
+ <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ );
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a class="link" href="../boost/array.html#boost.operator_id227596"><span class="bold"><strong>operator</strong></span>&lt;</a>(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ ,
+
+ <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ );
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a class="link" href="../boost/array.html#boost.operator_id227679"><span class="bold"><strong>operator</strong></span>&gt;</a>(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ ,
+
+ <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ );
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a class="link" href="../boost/array.html#boost.operator_=_id227747"><span class="bold"><strong>operator</strong></span>&lt;=</a>(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ ,
+
+ <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ );
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a class="link" href="../boost/array.html#boost.operator_=_id227814"><span class="bold"><strong>operator</strong></span>&gt;=</a>(
+ <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ ,
+
+ <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;
+ );
+}</pre>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="array.rationale"></a>Design Rationale</h3></div></div></div>
+<p>
+ There was an important design tradeoff regarding the
+ constructors: We could implement array as an "aggregate" (see
+ Section 8.5.1, [dcl.init.aggr], of the C++ Standard). This would
+ mean:
+ </p>
+<div class="itemizedlist"><ul type="disc"><li>
+<p>
+ An array can be initialized with a
+ brace-enclosing, comma-separated list of initializers for the
+ elements of the container, written in increasing subscript
+ order:
+ </p>
+<pre class="programlisting">
+ <code class="computeroutput"><a class="link" href="../boost/array.html" title="Class template array">boost::array</a></code>&lt;int,4&gt; a = { { 1, 2, 3 } };
+ </pre>
+<p>
+ Note that if there are fewer elements in the
+ initializer list, then each remaining element gets
+ default-initialized (thus, it has a defined value).
+ </p>
+</li></ul></div>
+<p>
+ </p>
+<p>
+ However, this approach has its drawbacks: <span class="bold"><strong>
+ passing no initializer list means that the elements
+ have an indetermined initial value
+ </strong></span>, because the rule says
+ that aggregates may have:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>No user-declared constructors.</li>
+<li>No private or protected non-static data members.</li>
+<li>No base classes.</li>
+<li>No virtual functions.</li>
+</ul></div>
+<p>
+ </p>
+<p>Nevertheless, The current implementation uses this approach.</p>
+<p>
+ Note that for standard conforming compilers it is possible to
+ use fewer braces (according to 8.5.1 (11) of the Standard). That is,
+ you can initialize an array as follows:
+ </p>
+<pre class="programlisting">
+ <code class="computeroutput"><a class="link" href="../boost/array.html" title="Class template array">boost::array</a></code>&lt;int,4&gt; a = { 1, 2, 3 };
+ </pre>
+<p>
+ I'd appreciate any constructive feedback. <span class="bold"><strong>
+ Please note: I don't have time to read all boost
+ mails. Thus, to make sure that feedback arrives to me, please send
+ me a copy of each mail regarding this class.
+ </strong></span>
+ </p>
+<p>
+ The code is provided "as is" without expressed or implied
+ warranty.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="array.more.info"></a>For more information...</h3></div></div></div>
+<p>
+ To find more details about using ordinary arrays in C++ and
+ the framework of the STL, see e.g.
+
+ </p>
+<div class="literallayout"><p><br>
+         The C++ Standard Library - A Tutorial and Reference<br>
+         by Nicolai M. Josuttis<br>
+         Addison Wesley Longman, 1999<br>
+         ISBN 0-201-37926-0<br>
+      </p></div>
+<p>
+ </p>
+<p>
+ <a href="http://www.josuttis.com/" target="_top">
+ Home Page of Nicolai
+ Josuttis
+ </a>
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="array.ack"></a>Acknowledgements</h3></div></div></div>
+<p>Doug Gregor ported the documentation to the BoostBook format.</p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2007 John Maddock, Joel de Guzman, Eric Niebler and Matias
+ Capeletto<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="remez.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../boost/array.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/doc/test/gold/document_to_test_formatting/basic_formatting.html
==============================================================================
--- (empty file)
+++ trunk/doc/test/gold/document_to_test_formatting/basic_formatting.html 2008-12-09 07:11:12 EST (Tue, 09 Dec 2008)
@@ -0,0 +1,201 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Basic Formatting</title>
+<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
+<link rel="home" href="../index.html" title="Document To Test Formatting">
+<link rel="up" href="../index.html" title="Document To Test Formatting">
+<link rel="prev" href="code_blocks.html" title="Code Blocks">
+<link rel="next" href="blurbs.html" title="Blurbs">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="code_blocks.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="blurbs.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="document_to_test_formatting.basic_formatting"></a><a class="link" href="basic_formatting.html" title="Basic Formatting">Basic Formatting</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="basic_formatting.html#document_to_test_formatting.basic_formatting.font_styles">Font
+ Styles</a></span></dt>
+<dt><span class="section"><a href="basic_formatting.html#document_to_test_formatting.basic_formatting.replaceable_text">Replaceable
+ Text</a></span></dt>
+<dt><span class="section">Quotations</span></dt>
+<dt><span class="section"><a href="basic_formatting.html#document_to_test_formatting.basic_formatting.inline_code">Inline
+ Code</a></span></dt>
+<dt><span class="section">Links</span></dt>
+<dt><span class="section">Footnotes</span></dt>
+<dt><span class="section">Blockquote</span></dt>
+<dt><span class="section">Headings</span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.basic_formatting.font_styles"></a><a class="link" href="basic_formatting.html#document_to_test_formatting.basic_formatting.font_styles" title="Font Styles">Font
+ Styles</a>
+</h3></div></div></div>
+<p>
+ Here we go with some inline formatting: <span class="emphasis"><em>italic</em></span>, <span class="bold"><strong>bold</strong></span>, <span class="underline">underline</span>,
+ <code class="literal">teletype</code>, <span class="strikethrough">strikethrough</span>,
+ we can combine styles as well: <span class="emphasis"><em><span class="bold"><strong>bold italic</strong></span></em></span>,
+ <span class="underline"><code class="literal">teletype with underline</code></span>.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.basic_formatting.replaceable_text"></a><a class="link" href="basic_formatting.html#document_to_test_formatting.basic_formatting.replaceable_text" title="Replaceable Text">Replaceable
+ Text</a>
+</h3></div></div></div>
+<p>
+ Text that is intended to be user-replaceable is
+ <em class="replaceable"><code>
+ rendered like this
+ </code></em>
+ .
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.basic_formatting.quotations"></a><a class="link" href="basic_formatting.html#document_to_test_formatting.basic_formatting.quotations" title="Quotations">Quotations</a>
+</h3></div></div></div>
+<p>
+ Here we go: &#8220;<span class="quote">A question that sometimes drives me hazy: am I or are
+ the others crazy?</span>&#8221;--Einstein
+ </p>
+<p>
+ Note the proper left and right quote marks. Also, while you can simply use
+ ordinary quote marks like "quoted", our quotation, above, will
+ generate correct DocBook quotations (e.g. &lt;quote&gt;quoted&lt;/quote&gt;).
+ </p>
+<p>
+ Like all phrase elements, quotations may be nested. Example:
+ </p>
+<p>
+ &#8220;<span class="quote">Here's the rule for bargains: &#8216;<span class="quote">Do other men, for they would
+ do you.</span>&#8217; That's the true business precept.</span>&#8221;
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.basic_formatting.inline_code"></a><a class="link" href="basic_formatting.html#document_to_test_formatting.basic_formatting.inline_code" title="Inline Code">Inline
+ Code</a>
+</h3></div></div></div>
+<p>
+ This text has inlined code <code class="computeroutput"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> <span class="special">{</span> <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span> <span class="special">}</span></code>
+ in it. The code should be syntax highlighted.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.basic_formatting.links"></a><a class="link" href="basic_formatting.html#document_to_test_formatting.basic_formatting.links" title="Links">Links</a>
+</h3></div></div></div>
+<p>
+ Try this: <a href="http://www.boost.org" target="_top">this is <span class="bold"><strong>boost's</strong></span>
+ website....</a> it should be visible as a link.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.basic_formatting.footnotes"></a><a class="link" href="basic_formatting.html#document_to_test_formatting.basic_formatting.footnotes" title="Footnotes">Footnotes</a>
+</h3></div></div></div>
+<p>
+ Here's one
+ <sup>[<a name="id537164" href="#ftn.id537164" class="footnote">1</a>]</sup>
+ .
+ </p>
+<p>
+ And here's another
+ <sup>[<a name="id537177" href="#ftn.id537177" class="footnote">2</a>]</sup>
+ .
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.basic_formatting.blockquote"></a><a class="link" href="basic_formatting.html#document_to_test_formatting.basic_formatting.blockquote" title="Blockquote">Blockquote</a>
+</h3></div></div></div>
+<p>
+ Lets indent the next paragraph:
+ </p>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+ </p>
+<p>
+ Here we go!!!
+ </p>
+<p>
+ </p>
+</blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.basic_formatting.headings"></a><a class="link" href="basic_formatting.html#document_to_test_formatting.basic_formatting.headings" title="Headings">Headings</a>
+</h3></div></div></div>
+<p>
+ Now try rendering some heading styles:
+ </p>
+<a name="document_to_test_formatting.basic_formatting.headings.heading_1"></a><h2>
+<a name="id537256"></a>
+ <a class="link" href="basic_formatting.html#document_to_test_formatting.basic_formatting.headings.heading_1">Heading
+ 1</a>
+ </h2>
+<a name="document_to_test_formatting.basic_formatting.headings.heading_2"></a><h3>
+<a name="id537280"></a>
+ <a class="link" href="basic_formatting.html#document_to_test_formatting.basic_formatting.headings.heading_2">Heading
+ 2</a>
+ </h3>
+<a name="document_to_test_formatting.basic_formatting.headings.heading_3"></a><h4>
+<a name="id537304"></a>
+ <a class="link" href="basic_formatting.html#document_to_test_formatting.basic_formatting.headings.heading_3">Heading
+ 3</a>
+ </h4>
+<a name="document_to_test_formatting.basic_formatting.headings.heading_4"></a><h5>
+<a name="id537330"></a>
+ <a class="link" href="basic_formatting.html#document_to_test_formatting.basic_formatting.headings.heading_4">Heading
+ 4</a>
+ </h5>
+<a name="document_to_test_formatting.basic_formatting.headings.heading_5"></a><h6>
+<a name="id537354"></a>
+ <a class="link" href="basic_formatting.html#document_to_test_formatting.basic_formatting.headings.heading_5">Heading
+ 5</a>
+ </h6>
+<a name="document_to_test_formatting.basic_formatting.headings.heading_6"></a><h4>
+<a name="id537378"></a>
+ <a class="link" href="basic_formatting.html#document_to_test_formatting.basic_formatting.headings.heading_6">Heading
+ 6</a>
+ </h4>
+</div>
+<div class="footnotes">
+<br><hr width="100" align="left">
+<div class="footnote"><p><sup>[<a name="ftn.id537164" href="#id537164" class="para">1</a>] </sup>
+ A sample footnote
+ </p></div>
+<div class="footnote"><p><sup>[<a name="ftn.id537177" href="#id537177" class="para">2</a>] </sup>
+ Another sample footnote
+ </p></div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2007 John Maddock, Joel de Guzman, Eric Niebler and Matias
+ Capeletto<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="code_blocks.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="blurbs.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/doc/test/gold/document_to_test_formatting/blurbs.html
==============================================================================
--- (empty file)
+++ trunk/doc/test/gold/document_to_test_formatting/blurbs.html 2008-12-09 07:11:12 EST (Tue, 09 Dec 2008)
@@ -0,0 +1,160 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Blurbs</title>
+<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
+<link rel="home" href="../index.html" title="Document To Test Formatting">
+<link rel="up" href="../index.html" title="Document To Test Formatting">
+<link rel="prev" href="basic_formatting.html" title="Basic Formatting">
+<link rel="next" href="lists_and_tables.html" title="Lists and Tables">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="basic_formatting.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lists_and_tables.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="document_to_test_formatting.blurbs"></a><a class="link" href="blurbs.html" title="Blurbs">Blurbs</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="blurbs.html#document_to_test_formatting.blurbs.preformatted_text">Preformatted
+ text</a></span></dt>
+<dt><span class="section">Admonishments</span></dt>
+<dt><span class="section">Blurbs</span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.blurbs.preformatted_text"></a><a class="link" href="blurbs.html#document_to_test_formatting.blurbs.preformatted_text" title="Preformatted text">Preformatted
+ text</a>
+</h3></div></div></div>
+<p>
+ Here's some sample program output:
+ </p>
+<pre class="programlisting">F test for equal standard deviations
+____________________________________
+
+Sample 1:
+Number of Observations = 240
+Sample Standard Deviation = 65.549
+
+Sample 2:
+Number of Observations = 240
+Sample Standard Deviation = 61.854
+
+Test Statistic = 1.123
+
+CDF of test statistic: = 8.148e-001
+Upper Critical Value at alpha: = 1.238e+000
+Upper Critical Value at alpha/2: = 1.289e+000
+Lower Critical Value at alpha: = 8.080e-001
+Lower Critical Value at alpha/2: = 7.756e-001
+
+Results for Alternative Hypothesis and alpha = 0.0500
+
+Alternative Hypothesis Conclusion
+Standard deviations are unequal (two sided test) REJECTED
+Standard deviation 1 is less than standard deviation 2 REJECTED
+Standard deviation 1 is greater than standard deviation 2 REJECTED
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.blurbs.admonishments"></a><a class="link" href="blurbs.html#document_to_test_formatting.blurbs.admonishments" title="Admonishments">Admonishments</a>
+</h3></div></div></div>
+<p>
+ There are four admonishments supported by Docbook XML:
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/html/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ This is a note
+ </p></td></tr>
+</table></div>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../../doc/html/images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ This is a tip
+ </p></td></tr>
+</table></div>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../doc/html/images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ This is important
+ </p></td></tr>
+</table></div>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../../doc/html/images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ This is a caution
+ </p></td></tr>
+</table></div>
+<div class="warning"><table border="0" summary="Warning">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../../../doc/html/images/warning.png"></td>
+<th align="left">Warning</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+ This is a warning
+ </p>
+<p>
+ They can contain more than one paragraph.
+ </p>
+</td></tr>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.blurbs.blurbs"></a><a class="link" href="blurbs.html#document_to_test_formatting.blurbs.blurbs" title="Blurbs">Blurbs</a>
+</h3></div></div></div>
+<div class="sidebar">
+<p class="title"><b></b></p>
+<p>
+ <span class="bold"><strong>An eye catching advertisement or note...</strong></span>
+ </p>
+<p>
+ These should be rendered in a manner similar to admonishments.
+ </p>
+<p>
+ They can contain more than one paragraph.
+ </p>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2007 John Maddock, Joel de Guzman, Eric Niebler and Matias
+ Capeletto<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="basic_formatting.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lists_and_tables.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/doc/test/gold/document_to_test_formatting/code_blocks.html
==============================================================================
--- (empty file)
+++ trunk/doc/test/gold/document_to_test_formatting/code_blocks.html 2008-12-09 07:11:12 EST (Tue, 09 Dec 2008)
@@ -0,0 +1,428 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Code Blocks</title>
+<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
+<link rel="home" href="../index.html" title="Document To Test Formatting">
+<link rel="up" href="../index.html" title="Document To Test Formatting">
+<link rel="prev" href="../index.html" title="Document To Test Formatting">
+<link rel="next" href="basic_formatting.html" title="Basic Formatting">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../index.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="basic_formatting.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="document_to_test_formatting.code_blocks"></a><a class="link" href="code_blocks.html" title="Code Blocks">Code Blocks</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="code_blocks.html#document_to_test_formatting.code_blocks.embedded_code">Embedded
+ code</a></span></dt>
+<dt><span class="section"><a href="code_blocks.html#document_to_test_formatting.code_blocks.imported_code_and_callouts">Imported
+ code and callouts</a></span></dt>
+<dt><span class="section"><a href="code_blocks.html#document_to_test_formatting.code_blocks.larger_example">Larger
+ example</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.code_blocks.embedded_code"></a><a class="link" href="code_blocks.html#document_to_test_formatting.code_blocks.embedded_code" title="Embedded code">Embedded
+ code</a>
+</h3></div></div></div>
+<p>
+ These should be syntax highlighted:
+ </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="comment">// Sample code
+</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Hello, World\n"</span><span class="special">;</span>
+ <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.code_blocks.imported_code_and_callouts"></a><a class="link" href="code_blocks.html#document_to_test_formatting.code_blocks.imported_code_and_callouts" title="Imported code and callouts">Imported
+ code and callouts</a>
+</h3></div></div></div>
+<p>
+ Here's some code with left-placed callouts:
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">x</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+
+ <span class="line_callout_bug"><a class="co" name="document_to_test_formatting2co" href="code_blocks.html#document_to_test_formatting2"><img src="../../../src/images/callouts/1.png" alt="1" border="0"></a></span><span class="identifier">x</span><span class="special">()</span> <span class="special">:</span> <span class="identifier">n</span><span class="special">(</span><span class="number">0</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="special">}</span>
+
+ <span class="line_callout_bug"><a class="co" name="document_to_test_formatting3co" href="code_blocks.html#document_to_test_formatting3"><img src="../../../src/images/callouts/2.png" alt="2" border="0"></a></span><span class="special">~</span><span class="identifier">x</span><span class="special">()</span>
+ <span class="special">{</span>
+ <span class="special">}</span>
+
+ <span class="line_callout_bug"><a class="co" name="document_to_test_formatting4co" href="code_blocks.html#document_to_test_formatting4"><img src="../../../src/images/callouts/3.png" alt="3" border="0"></a></span><span class="keyword">int</span> <span class="identifier">get</span><span class="special">()</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">n</span><span class="special">;</span>
+ <span class="special">}</span>
+
+ <span class="line_callout_bug"><a class="co" name="document_to_test_formatting5co" href="code_blocks.html#document_to_test_formatting5"><img src="../../../src/images/callouts/4.png" alt="4" border="0"></a></span><span class="keyword">void</span> <span class="identifier">set</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">n_</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="identifier">n</span> <span class="special">=</span> <span class="identifier">n_</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ </p>
+<div class="calloutlist"><table border="0" summary="Callout list">
+<tr>
+<td width="5%" valign="top" align="left"><p><a name="document_to_test_formatting2"></a>1 </p></td>
+<td valign="top" align="left"><p> Constructor </p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left"><p><a name="document_to_test_formatting3"></a>2 </p></td>
+<td valign="top" align="left"><p> Destructor </p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left"><p><a name="document_to_test_formatting4"></a>3 </p></td>
+<td valign="top" align="left"><p> Get the <code class="computeroutput"><span class="identifier">n</span></code>
+ member variable </p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left"><p><a name="document_to_test_formatting5"></a>4 </p></td>
+<td valign="top" align="left"><p> Set the <code class="computeroutput"><span class="identifier">n</span></code>
+ member variable </p></td>
+</tr>
+</table></div>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ And again with callouts placed exactly where we put them:
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">foo_bar</span><span class="special">()</span> <span class="callout_bug"><a class="co" name="document_to_test_formatting0co" href="code_blocks.html#document_to_test_formatting0"><img src="../../../src/images/callouts/1.png" alt="1" border="0"></a></span>
+<span class="special">{</span>
+ <span class="keyword">return</span> <span class="string">"foo-bar"</span><span class="special">;</span> <span class="callout_bug"><a class="co" name="document_to_test_formatting1co" href="code_blocks.html#document_to_test_formatting1"><img src="../../../src/images/callouts/2.png" alt="2" border="0"></a></span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ </p>
+<div class="calloutlist"><table border="0" summary="Callout list">
+<tr>
+<td width="5%" valign="top" align="left"><p><a name="document_to_test_formatting0"></a>1 </p></td>
+<td valign="top" align="left"><p> The <span class="emphasis"><em>Mythical</em></span> FooBar. See <a href="http://en.wikipedia.org/wiki/Foobar" target="_top">Foobar
+ for details</a> </p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left"><p><a name="document_to_test_formatting1"></a>2 </p></td>
+<td valign="top" align="left"><p> return 'em, foo-bar man! </p></td>
+</tr>
+</table></div>
+<p>
+ </p>
+<p>
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.code_blocks.larger_example"></a><a class="link" href="code_blocks.html#document_to_test_formatting.code_blocks.larger_example" title="Larger example">Larger
+ example</a>
+</h3></div></div></div>
+<p>
+ Now let's include a larger example, this may span several pages and should
+ not be chopped off half way through... some FO processors get this wrong!
+ </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">class</span> <span class="identifier">sub_match</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*&gt;</span> <span class="identifier">csub_match</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">wchar_t</span><span class="special">*&gt;</span> <span class="identifier">wcsub_match</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">::</span><span class="identifier">const_iterator</span><span class="special">&gt;</span> <span class="identifier">ssub_match</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span><span class="special">::</span><span class="identifier">const_iterator</span><span class="special">&gt;</span> <span class="identifier">wssub_match</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">class</span> <span class="identifier">sub_match</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+ <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="identifier">value_type</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">difference_type</span> <span class="identifier">difference_type</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">BidirectionalIterator</span> <span class="identifier">iterator</span><span class="special">;</span>
+
+ <span class="keyword">bool</span> <span class="identifier">matched</span><span class="special">;</span>
+
+ <span class="identifier">difference_type</span> <span class="identifier">length</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+ <span class="keyword">operator</span> <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;()</span><span class="keyword">const</span><span class="special">;</span>
+ <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;</span> <span class="identifier">str</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+
+ <span class="keyword">int</span> <span class="identifier">compare</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
+ <span class="keyword">int</span> <span class="identifier">compare</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
+ <span class="keyword">int</span> <span class="identifier">compare</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">*</span> <span class="identifier">s</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
+<span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_REGEX_MATCH_EXTRA</span>
+ <span class="keyword">typedef</span> <span class="identifier">implementation</span><span class="special">-</span><span class="keyword">private</span> <span class="identifier">capture_sequence_type</span><span class="special">;</span>
+ <span class="keyword">const</span> <span class="identifier">capture_sequence_type</span><span class="special">&amp;</span> <span class="identifier">captures</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="preprocessor">#endif</span>
+<span class="special">};</span>
+<span class="comment">//
+</span><span class="comment">// comparisons to another sub_match:
+</span><span class="comment">//
+</span><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&lt;</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&lt;=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&gt;=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&gt;</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+
+<span class="comment">//
+</span><span class="comment">// comparisons to a basic_string:
+</span><span class="comment">//
+</span><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">,</span>
+ <span class="identifier">traits</span><span class="special">,</span>
+ <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">,</span>
+ <span class="identifier">traits</span><span class="special">,</span>
+ <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&lt;</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">,</span>
+ <span class="identifier">traits</span><span class="special">,</span>
+ <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&gt;</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">,</span>
+ <span class="identifier">traits</span><span class="special">,</span>
+ <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&gt;=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">,</span>
+ <span class="identifier">traits</span><span class="special">,</span>
+ <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&lt;=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">,</span>
+ <span class="identifier">traits</span><span class="special">,</span>
+ <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">,</span>
+ <span class="identifier">traits</span><span class="special">,</span>
+ <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">,</span>
+ <span class="identifier">traits</span><span class="special">,</span>
+ <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&lt;</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">,</span>
+ <span class="identifier">traits</span><span class="special">,</span>
+ <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&gt;</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">,</span>
+ <span class="identifier">traits</span><span class="special">,</span>
+ <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&gt;=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">,</span>
+ <span class="identifier">traits</span><span class="special">,</span>
+ <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&lt;=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">,</span>
+ <span class="identifier">traits</span><span class="special">,</span>
+ <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="comment">//
+</span><span class="comment">// comparisons to a pointer to a character array:
+</span><span class="comment">//
+</span><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&lt;</span> <span class="special">(</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&gt;</span> <span class="special">(</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&gt;=</span> <span class="special">(</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&lt;=</span> <span class="special">(</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&lt;</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&gt;</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&gt;=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&lt;=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="comment">//
+</span><span class="comment">// comparisons to a single character:
+</span><span class="comment">//
+</span><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&lt;</span> <span class="special">(</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&gt;</span> <span class="special">(</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&gt;=</span> <span class="special">(</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&lt;=</span> <span class="special">(</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&lt;</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&gt;</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&gt;=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">&lt;=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">lhs</span><span class="special">,</span>
+ <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="comment">//
+</span><span class="comment">// addition operators:
+</span><span class="comment">//
+</span><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
+ <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">,</span>
+ <span class="identifier">traits</span><span class="special">,</span>
+ <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
+ <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">,</span>
+ <span class="identifier">traits</span><span class="special">,</span>
+ <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">&gt;</span>
+ <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">&gt;</span>
+ <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">,</span>
+ <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span> <span class="special">*</span> <span class="identifier">s</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">&gt;</span>
+ <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">&gt;</span>
+ <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">,</span>
+ <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="special">&gt;</span>
+ <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">m1</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">m2</span><span class="special">);</span>
+
+<span class="comment">//
+</span><span class="comment">// stream inserter:
+</span><span class="comment">//
+</span><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
+<span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span>
+ <span class="keyword">operator</span> <span class="special">&lt;&lt;</span> <span class="special">(</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">);</span>
+
+<span class="special">}</span> <span class="comment">// namespace boost
+</span></pre>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2007 John Maddock, Joel de Guzman, Eric Niebler and Matias
+ Capeletto<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../index.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="basic_formatting.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/doc/test/gold/document_to_test_formatting/images.html
==============================================================================
--- (empty file)
+++ trunk/doc/test/gold/document_to_test_formatting/images.html 2008-12-09 07:11:12 EST (Tue, 09 Dec 2008)
@@ -0,0 +1,60 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Images</title>
+<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
+<link rel="home" href="../index.html" title="Document To Test Formatting">
+<link rel="up" href="../index.html" title="Document To Test Formatting">
+<link rel="prev" href="lists_and_tables.html" title="Lists and Tables">
+<link rel="next" href="test.html" title="test HTML4 symbols">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="lists_and_tables.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="test.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="document_to_test_formatting.images"></a><a class="link" href="images.html" title="Images">Images</a>
+</h2></div></div></div>
+<p>
+ These are tricky enough that they warrent their own section.
+ </p>
+<p>
+ Let's start with a PNG file that's set to 120dpi, it should render at a sensible
+ size in both html and PDF forms. It should print OK too!
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../images/digamma3.png" alt="digamma3"></span>
+ </p>
+<p>
+ Now try again with a sample SVG image:
+ </p>
+<p>
+ <span class="inlinemediaobject"><object type="image/svg+xml" data="../images/open_clipart_library_logo.svg" width="745.60706" height="513.2569"></object></span>
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2007 John Maddock, Joel de Guzman, Eric Niebler and Matias
+ Capeletto<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="lists_and_tables.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="test.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/doc/test/gold/document_to_test_formatting/lists_and_tables.html
==============================================================================
--- (empty file)
+++ trunk/doc/test/gold/document_to_test_formatting/lists_and_tables.html 2008-12-09 07:11:12 EST (Tue, 09 Dec 2008)
@@ -0,0 +1,455 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Lists and Tables</title>
+<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
+<link rel="home" href="../index.html" title="Document To Test Formatting">
+<link rel="up" href="../index.html" title="Document To Test Formatting">
+<link rel="prev" href="blurbs.html" title="Blurbs">
+<link rel="next" href="images.html" title="Images">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="blurbs.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="images.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="document_to_test_formatting.lists_and_tables"></a><a class="link" href="lists_and_tables.html" title="Lists and Tables">Lists and
+ Tables</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Lists</span></dt>
+<dt><span class="section"><a href="lists_and_tables.html#document_to_test_formatting.lists_and_tables.variable_lists">Variable
+ Lists</a></span></dt>
+<dt><span class="section">Tables</span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.lists_and_tables.lists"></a><a class="link" href="lists_and_tables.html#document_to_test_formatting.lists_and_tables.lists" title="Lists">Lists</a>
+</h3></div></div></div>
+<p>
+ A numbered list:
+ </p>
+<div class="orderedlist"><ol type="1">
+<li>
+ One
+ </li>
+<li>
+ Two
+ </li>
+<li>
+ Three
+ <div class="orderedlist"><ol type="a">
+<li>
+ Three.a
+ </li>
+<li>
+ Three.b
+ </li>
+<li>
+ Three.c
+ </li>
+</ol></div>
+</li>
+<li>
+ Four
+ <div class="orderedlist"><ol type="a"><li>
+ Four.a
+ <div class="orderedlist"><ol type="i">
+<li>
+ Four.a.i
+ </li>
+<li>
+ Four.a.ii
+ </li>
+</ol></div>
+</li></ol></div>
+</li>
+<li>
+ Five
+ </li>
+</ol></div>
+<p>
+ An unordered list:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ First
+ </li>
+<li>
+ Second
+ </li>
+<li>
+ Third
+ </li>
+</ul></div>
+<p>
+ A mixture of the two:
+ </p>
+<div class="orderedlist"><ol type="1">
+<li>
+ 1
+ <div class="itemizedlist"><ul type="disc">
+<li>
+ 1.a
+ <div class="orderedlist"><ol type="a">
+<li>
+ 1.a.1
+ </li>
+<li>
+ 1.a.2
+ </li>
+</ol></div>
+</li>
+<li>
+ 1.b
+ </li>
+</ul></div>
+</li>
+<li>
+ 2
+ <div class="itemizedlist"><ul type="disc">
+<li>
+ 2.a
+ </li>
+<li>
+ 2.b
+ <div class="orderedlist"><ol type="a">
+<li>
+ 2.b.1
+ </li>
+<li>
+ 2.b.2
+ <div class="itemizedlist"><ul type="circle">
+<li>
+ 2.b.2.a
+ </li>
+<li>
+ 2.b.2.b
+ </li>
+</ul></div>
+</li>
+</ol></div>
+</li>
+</ul></div>
+</li>
+</ol></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.lists_and_tables.variable_lists"></a><a class="link" href="lists_and_tables.html#document_to_test_formatting.lists_and_tables.variable_lists" title="Variable Lists">Variable
+ Lists</a>
+</h3></div></div></div>
+<div class="variablelist">
+<p class="title"><b>A Variable List</b></p>
+<dl>
+<dt><span class="term">term 1</span></dt>
+<dd><p>
+ The definition of term 1
+ </p></dd>
+<dt><span class="term">term 2</span></dt>
+<dd><p>
+ The definition of term 2
+ </p></dd>
+<dt><span class="term">term 3</span></dt>
+<dd><p>
+ The definition of term 3
+ </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.lists_and_tables.tables"></a><a class="link" href="lists_and_tables.html#document_to_test_formatting.lists_and_tables.tables" title="Tables">Tables</a>
+</h3></div></div></div>
+<p>
+ Here's a big table with code and other tricky things:
+ </p>
+<div class="table">
+<a name="id537940"></a><p class="title"><b>Table 1. Notes on the Implementation of the Beta Distribution</b></p>
+<div class="table-contents"><table class="table" summary="Notes on the Implementation of the Beta Distribution">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Function
+ </p>
+ </th>
+<th>
+ <p>
+ Implementation Notes
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ pdf
+ </p>
+ </td>
+<td>
+ <p>
+ f(x;&#945;,&#946;) = x<sup>&#945; - 1</sup> (1 - x)<sup>&#946; -1</sup> / B(&#945;, &#946;)
+ </p>
+ <p>
+ Implemented using ibeta_derivative(a, b, x).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf
+ </p>
+ </td>
+<td>
+ <p>
+ Using the incomplete beta function ibeta(a, b, x)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ cdf complement
+ </p>
+ </td>
+<td>
+ <p>
+ ibetac(a, b, x)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile
+ </p>
+ </td>
+<td>
+ <p>
+ Using the inverse incomplete beta function ibeta_inv(a, b, p)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ quantile from the complement
+ </p>
+ </td>
+<td>
+ <p>
+ ibetac_inv(a, b, q)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ mean
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">/(</span><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ variance
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span> <span class="special">*</span>
+ <span class="identifier">b</span> <span class="special">/</span>
+ <span class="special">(</span><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span><span class="special">)^</span><span class="number">2</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">+</span> <span class="identifier">b</span> <span class="special">+</span> <span class="number">1</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ mode
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">(</span><span class="identifier">a</span><span class="special">-</span><span class="number">1</span><span class="special">)</span>
+ <span class="special">/</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">+</span> <span class="identifier">b</span> <span class="special">+</span> <span class="number">2</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ skewness
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="number">2</span> <span class="special">(</span><span class="identifier">b</span><span class="special">-</span><span class="identifier">a</span><span class="special">)</span> <span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span><span class="special">+</span><span class="number">1</span><span class="special">)/(</span><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span><span class="special">+</span><span class="number">2</span><span class="special">)</span> <span class="special">*</span>
+ <span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">a</span> <span class="special">*</span> <span class="identifier">b</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ kurtosis excess
+ </p>
+ </td>
+<td>
+ <p>
+ <span class="inlinemediaobject"><img src="../images/beta_dist_kurtosis.png" alt="beta_dist_kurtosis"></span>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ kurtosis
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">kurtosis</span> <span class="special">+</span>
+ <span class="number">3</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ parameter estimation
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ alpha
+ </p>
+ <p>
+ from mean and variance
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">mean</span> <span class="special">*</span>
+ <span class="special">((</span> <span class="special">(</span><span class="identifier">mean</span> <span class="special">*</span>
+ <span class="special">(</span><span class="number">1</span>
+ <span class="special">-</span> <span class="identifier">mean</span><span class="special">))</span> <span class="special">/</span> <span class="identifier">variance</span><span class="special">)-</span>
+ <span class="number">1</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ beta
+ </p>
+ <p>
+ from mean and variance
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">(</span><span class="number">1</span>
+ <span class="special">-</span> <span class="identifier">mean</span><span class="special">)</span> <span class="special">*</span> <span class="special">(((</span><span class="identifier">mean</span>
+ <span class="special">*</span> <span class="special">(</span><span class="number">1</span> <span class="special">-</span> <span class="identifier">mean</span><span class="special">))</span>
+ <span class="special">/</span><span class="identifier">variance</span><span class="special">)-</span><span class="number">1</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ The member functions <code class="computeroutput"><span class="identifier">estimate_alpha</span></code>
+ and <code class="computeroutput"><span class="identifier">estimate_beta</span></code>
+ </p>
+ <p>
+ from cdf and probability x
+ </p>
+ <p>
+ and <span class="bold"><strong>either</strong></span> <code class="computeroutput"><span class="identifier">alpha</span></code>
+ or <code class="computeroutput"><span class="identifier">beta</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Implemented in terms of the inverse incomplete beta functions
+ </p>
+ <p>
+ ibeta_inva, and ibeta_invb respectively.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">estimate_alpha</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">ibeta_inva</span><span class="special">(</span><span class="identifier">beta</span><span class="special">,</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">probability</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">estimate_beta</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">ibeta_invb</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">,</span>
+ <span class="identifier">x</span><span class="special">,</span>
+ <span class="identifier">probability</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2007 John Maddock, Joel de Guzman, Eric Niebler and Matias
+ Capeletto<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="blurbs.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="images.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/doc/test/gold/document_to_test_formatting/remez.html
==============================================================================
--- (empty file)
+++ trunk/doc/test/gold/document_to_test_formatting/remez.html 2008-12-09 07:11:12 EST (Tue, 09 Dec 2008)
@@ -0,0 +1,535 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Sample Article (The Remez Method)</title>
+<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
+<link rel="home" href="../index.html" title="Document To Test Formatting">
+<link rel="up" href="../index.html" title="Document To Test Formatting">
+<link rel="prev" href="test.html" title="test HTML4 symbols">
+<link rel="next" href="array.html" title="Array Example Boostbook XML Documentation">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="test.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="array.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="document_to_test_formatting.remez"></a><a class="link" href="remez.html" title="Sample Article (The Remez Method)"> Sample Article (The
+ Remez Method)</a>
+</h2></div></div></div>
+<p>
+ The Remez algorithm
+ is a methodology for locating the minimax rational approximation to a function.
+ This short article gives a brief overview of the method, but it should not
+ be regarded as a thorough theoretical treatment, for that you should consult
+ your favorite textbook.
+ </p>
+<p>
+ Imagine that you want to approximate some function f(x) by way of a rational
+ function R(x), where R(x) may be either a polynomial P(x) or a ratio of two
+ polynomials P(x)/Q(x) (a rational function). Initially we'll concentrate on
+ the polynomial case, as it's by far the easier to deal with, later we'll extend
+ to the full rational function case.
+ </p>
+<p>
+ We want to find the "best" rational approximation, where "best"
+ is defined to be the approximation that has the least deviation from f(x).
+ We can measure the deviation by way of an error function:
+ </p>
+<p>
+ E<sub>abs</sub>(x) = f(x) - R(x)
+ </p>
+<p>
+ which is expressed in terms of absolute error, but we can equally use relative
+ error:
+ </p>
+<p>
+ E<sub>rel</sub>(x) = (f(x) - R(x)) / |f(x)|
+ </p>
+<p>
+ And indeed in general we can scale the error function in any way we want, it
+ makes no difference to the maths, although the two forms above cover almost
+ every practical case that you're likely to encounter.
+ </p>
+<p>
+ The minimax rational function R(x) is then defined to be the function that
+ yields the smallest maximal value of the error function. Chebyshev showed that
+ there is a unique minimax solution for R(x) that has the following properties:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ If R(x) is a polynomial of degree N, then there are N+2 unknowns: the N+1
+ coefficients of the polynomial, and maximal value of the error function.
+ </li>
+<li>
+ The error function has N+1 roots, and N+2 extrema (minima and maxima).
+ </li>
+<li>
+ The extrema alternate in sign, and all have the same magnitude.
+ </li>
+</ul></div>
+<p>
+ That means that if we know the location of the extrema of the error function
+ then we can write N+2 simultaneous equations:
+ </p>
+<p>
+ R(x<sub>i</sub>) + (-1)<sup>i</sup>E = f(x<sub>i</sub>)
+ </p>
+<p>
+ where E is the maximal error term, and x<sub>i</sub> are the abscissa values of the N+2
+ extrema of the error function. It is then trivial to solve the simultaneous
+ equations to obtain the polynomial coefficients and the error term.
+ </p>
+<p>
+ <span class="emphasis"><em>Unfortunately we don't know where the extrema of the error function
+ are located!</em></span>
+ </p>
+<a name="document_to_test_formatting.remez.the_remez_method"></a><h5>
+<a name="id539430"></a>
+ <a class="link" href="remez.html#document_to_test_formatting.remez.the_remez_method">The Remez
+ Method</a>
+ </h5>
+<p>
+ The Remez method is an iterative technique which, given a broad range of assumptions,
+ will converge on the extrema of the error function, and therefore the minimax
+ solution.
+ </p>
+<p>
+ In the following discussion we'll use a concrete example to illustrate the
+ Remez method: an approximation to the function e<sup>x</sup> over the range [-1, 1].
+ </p>
+<p>
+ Before we can begin the Remez method, we must obtain an initial value for the
+ location of the extrema of the error function. We could "guess" these,
+ but a much closer first approximation can be obtained by first constructing
+ an interpolated polynomial approximation to f(x).
+ </p>
+<p>
+ In order to obtain the N+1 coefficients of the interpolated polynomial we need
+ N+1 points (x<sub>0</sub>...x<sub>N</sub>): with our interpolated form passing through each of those
+ points that yields N+1 simultaneous equations:
+ </p>
+<p>
+ f(x<sub>i</sub>) = P(x<sub>i</sub>) = c<sub>0</sub> + c<sub>1</sub>x<sub>i</sub> ... + c<sub>N</sub>x<sub>i</sub><sup>N</sup>
+ </p>
+<p>
+ Which can be solved for the coefficients c<sub>0</sub>...c<sub>N</sub> in P(x).
+ </p>
+<p>
+ Obviously this is not a minimax solution, indeed our only guarantee is that
+ f(x) and P(x) touch at N+1 locations, away from those points the error may
+ be arbitrarily large. However, we would clearly like this initial approximation
+ to be as close to f(x) as possible, and it turns out that using the zeros of
+ an orthogonal polynomial as the initial interpolation points is a good choice.
+ In our example we'll use the zeros of a Chebyshev polynomial as these are particularly
+ easy to calculate, interpolating for a polynomial of degree 4, and measuring
+ <span class="emphasis"><em>relative error</em></span> we get the following error function:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../images/remez-2.png" alt="remez-2"></span>
+ </p>
+<p>
+ Which has a peak relative error of 1.2x10<sup>-3</sup>.
+ </p>
+<p>
+ While this is a pretty good approximation already, judging by the shape of
+ the error function we can clearly do better. Before starting on the Remez method
+ propper, we have one more step to perform: locate all the extrema of the error
+ function, and store these locations as our initial <span class="emphasis"><em>Chebyshev control
+ points</em></span>.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/html/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+ In the simple case of a polynomial approximation, by interpolating through
+ the roots of a Chebyshev polynomial we have in fact created a <span class="emphasis"><em>Chebyshev
+ approximation</em></span> to the function: in terms of <span class="emphasis"><em>absolute
+ error</em></span> this is the best a priori choice for the interpolated form
+ we can achieve, and typically is very close to the minimax solution.
+ </p>
+<p>
+ However, if we want to optimise for <span class="emphasis"><em>relative error</em></span>,
+ or if the approximation is a rational function, then the initial Chebyshev
+ solution can be quite far from the ideal minimax solution.
+ </p>
+<p>
+ A more technical discussion of the theory involved can be found in this
+ <a href="http://math.fullerton.edu/mathews/n2003/ChebyshevPolyMod.html" target="_top">online
+ course</a>.
+ </p>
+</td></tr>
+</table></div>
+<a name="document_to_test_formatting.remez.remez_step_1"></a><h5>
+<a name="id539638"></a>
+ <a class="link" href="remez.html#document_to_test_formatting.remez.remez_step_1">Remez Step 1</a>
+ </h5>
+<p>
+ The first step in the Remez method, given our current set of N+2 Chebyshev
+ control points x<sub>i</sub>, is to solve the N+2 simultaneous equations:
+ </p>
+<p>
+ P(x<sub>i</sub>) + (-1)<sup>i</sup>E = f(x<sub>i</sub>)
+ </p>
+<p>
+ To obtain the error term E, and the coefficients of the polynomial P(x).
+ </p>
+<p>
+ This gives us a new approximation to f(x) that has the same error <span class="emphasis"><em>E</em></span>
+ at each of the control points, and whose error function <span class="emphasis"><em>alternates
+ in sign</em></span> at the control points. This is still not necessarily the
+ minimax solution though: since the control points may not be at the extrema
+ of the error function. After this first step here's what our approximation's
+ error function looks like:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../images/remez-3.png" alt="remez-3"></span>
+ </p>
+<p>
+ Clearly this is still not the minimax solution since the control points are
+ not located at the extrema, but the maximum relative error has now dropped
+ to 5.6x10<sup>-4</sup>.
+ </p>
+<a name="document_to_test_formatting.remez.remez_step_2"></a><h5>
+<a name="id539738"></a>
+ <a class="link" href="remez.html#document_to_test_formatting.remez.remez_step_2">Remez Step 2</a>
+ </h5>
+<p>
+ The second step is to locate the extrema of the new approximation, which we
+ do in two stages: first, since the error function changes sign at each control
+ point, we must have N+1 roots of the error function located between each pair
+ of N+2 control points. Once these roots are found by standard root finding
+ techniques, we know that N extrema are bracketed between each pair of roots,
+ plus two more between the endpoints of the range and the first and last roots.
+ The N+2 extrema can then be found using standard function minimisation techniques.
+ </p>
+<p>
+ We now have a choice: multi-point exchange, or single point exchange.
+ </p>
+<p>
+ In single point exchange, we move the control point nearest to the largest
+ extrema to the absissa value of the extrema.
+ </p>
+<p>
+ In multi-point exchange we swap all the current control points, for the locations
+ of the extrema.
+ </p>
+<p>
+ In our example we perform multi-point exchange.
+ </p>
+<a name="document_to_test_formatting.remez.iteration"></a><h5>
+<a name="id539786"></a>
+ <a class="link" href="remez.html#document_to_test_formatting.remez.iteration">Iteration</a>
+ </h5>
+<p>
+ The Remez method then performs steps 1 and 2 above iteratively until the control
+ points are located at the extrema of the error function: this is then the minimax
+ solution.
+ </p>
+<p>
+ For our current example, two more iterations converges on a minimax solution
+ with a peak relative error of 5x10<sup>-4</sup> and an error function that looks like:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../images/remez-4.png" alt="remez-4"></span>
+ </p>
+<a name="document_to_test_formatting.remez.rational_approximations"></a><h5>
+<a name="id539846"></a>
+ <a class="link" href="remez.html#document_to_test_formatting.remez.rational_approximations">Rational
+ Approximations</a>
+ </h5>
+<p>
+ If we wish to extend the Remez method to a rational approximation of the form
+ </p>
+<p>
+ f(x) = R(x) = P(x) / Q(x)
+ </p>
+<p>
+ where P(x) and Q(x) are polynomials, then we proceed as before, except that
+ now we have N+M+2 unknowns if P(x) is of order N and Q(x) is of order M. This
+ assumes that Q(x) is normalised so that it's leading coefficient is 1, giving
+ N+M+1 polynomial coefficients in total, plus the error term E.
+ </p>
+<p>
+ The simultaneous equations to be solved are now:
+ </p>
+<p>
+ P(x<sub>i</sub>) / Q(x<sub>i</sub>) + (-1)<sup>i</sup>E = f(x<sub>i</sub>)
+ </p>
+<p>
+ Evaluated at the N+M+2 control points x<sub>i</sub>.
+ </p>
+<p>
+ Unfortunately these equations are non-linear in the error term E: we can only
+ solve them if we know E, and yet E is one of the unknowns!
+ </p>
+<p>
+ The method usually adopted to solve these equations is an iterative one: we
+ guess the value of E, solve the equations to obtain a new value for E (as well
+ as the polynomial coefficients), then use the new value of E as the next guess.
+ The method is repeated until E converges on a stable value.
+ </p>
+<p>
+ These complications extend the running time required for the development of
+ rational approximations quite considerably. It is often desirable to obtain
+ a rational rather than polynomial approximation none the less: rational approximations
+ will often match more difficult to approximate functions, to greater accuracy,
+ and with greater efficiency, than their polynomial alternatives. For example,
+ if we takes our previous example of an approximation to e<sup>x</sup>, we obtained 5x10<sup>-4</sup> accuracy
+ with an order 4 polynomial. If we move two of the unknowns into the denominator
+ to give a pair of order 2 polynomials, and re-minimise, then the peak relative
+ error drops to 8.7x10<sup>-5</sup>. That's a 5 fold increase in accuracy, for the same
+ number of terms overall.
+ </p>
+<a name="document_to_test_formatting.remez.practical_considerations"></a><h5>
+<a name="id539957"></a>
+ <a class="link" href="remez.html#document_to_test_formatting.remez.practical_considerations">Practical
+ Considerations</a>
+ </h5>
+<p>
+ Most treatises on approximation theory stop at this point. However, from a
+ practical point of view, most of the work involves finding the right approximating
+ form, and then persuading the Remez method to converge on a solution.
+ </p>
+<p>
+ So far we have used a direct approximation:
+ </p>
+<p>
+ f(x) = R(x)
+ </p>
+<p>
+ But this will converge to a useful approximation only if f(x) is smooth. In
+ addition round-off errors when evaluating the rational form mean that this
+ will never get closer than within a few epsilon of machine precision. Therefore
+ this form of direct approximation is often reserved for situations where we
+ want efficiency, rather than accuracy.
+ </p>
+<p>
+ The first step in improving the situation is generally to split f(x) into a
+ dominant part that we can compute accurately by another method, and a slowly
+ changing remainder which can be approximated by a rational approximation. We
+ might be tempted to write:
+ </p>
+<p>
+ f(x) = g(x) + R(x)
+ </p>
+<p>
+ where g(x) is the dominant part of f(x), but if f(x)/g(x) is approximately
+ constant over the interval of interest then:
+ </p>
+<p>
+ f(x) = g(x)(c + R(x))
+ </p>
+<p>
+ Will yield a much better solution: here <span class="emphasis"><em>c</em></span> is a constant
+ that is the approximate value of f(x)/g(x) and R(x) is typically tiny compared
+ to <span class="emphasis"><em>c</em></span>. In this situation if R(x) is optimised for absolute
+ error, then as long as its error is small compared to the constant <span class="emphasis"><em>c</em></span>,
+ that error will effectively get wiped out when R(x) is added to <span class="emphasis"><em>c</em></span>.
+ </p>
+<p>
+ The difficult part is obviously finding the right g(x) to extract from your
+ function: often the asymptotic behaviour of the function will give a clue,
+ so for example the function __erfc becomes proportional to e<sup>-x<sup>2</sup></sup>/x as x becomes
+ large. Therefore using:
+ </p>
+<p>
+ erfc(z) = (C + R(x)) e<sup>-x<sup>2</sup></sup>/x
+ </p>
+<p>
+ as the approximating form seems like an obvious thing to try, and does indeed
+ yield a useful approximation.
+ </p>
+<p>
+ However, the difficulty then becomes one of converging the minimax solution.
+ Unfortunately, it is known that for some functions the Remez method can lead
+ to divergent behaviour, even when the initial starting approximation is quite
+ good. Furthermore, it is not uncommon for the solution obtained in the first
+ Remez step above to be a bad one: the equations to be solved are generally
+ "stiff", often very close to being singular, and assuming a solution
+ is found at all, round-off errors and a rapidly changing error function, can
+ lead to a situation where the error function does not in fact change sign at
+ each control point as required. If this occurs, it is fatal to the Remez method.
+ It is also possible to obtain solutions that are perfectly valid mathematically,
+ but which are quite useless computationally: either because there is an unavoidable
+ amount of roundoff error in the computation of the rational function, or because
+ the denominator has one or more roots over the interval of the approximation.
+ In the latter case while the approximation may have the correct limiting value
+ at the roots, the approximation is nonetheless useless.
+ </p>
+<p>
+ Assuming that the approximation does not have any fatal errors, and that the
+ only issue is converging adequately on the minimax solution, the aim is to
+ get as close as possible to the minimax solution before beginning the Remez
+ method. Using the zeros of a Chebyshev polynomial for the initial interpolation
+ is a good start, but may not be ideal when dealing with relative errors and/or
+ rational (rather than polynomial) approximations. One approach is to skew the
+ initial interpolation points to one end: for example if we raise the roots
+ of the Chebyshev polynomial to a positive power greater than 1 then the roots
+ will be skewed towards the middle of the [-1,1] interval, while a positive
+ power less than one will skew them towards either end. More usefully, if we
+ initially rescale the points over [0,1] and then raise to a positive power,
+ we can skew them to the left or right. Returning to our example of e<sup>x</sup> over [-1,1],
+ the initial interpolated form was some way from the minimax solution:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../images/remez-2.png" alt="remez-2"></span>
+ </p>
+<p>
+ However, if we first skew the interpolation points to the left (rescale them
+ to [0, 1], raise to the power 1.3, and then rescale back to [-1,1]) we reduce
+ the error from 1.3x10<sup>-3</sup>to 6x10<sup>-4</sup>:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../images/remez-5.png" alt="remez-5"></span>
+ </p>
+<p>
+ It's clearly still not ideal, but it is only a few percent away from our desired
+ minimax solution (5x10<sup>-4</sup>).
+ </p>
+<a name="document_to_test_formatting.remez.remez_method_checklist"></a><h5>
+<a name="id540203"></a>
+ <a class="link" href="remez.html#document_to_test_formatting.remez.remez_method_checklist">Remez
+ Method Checklist</a>
+ </h5>
+<p>
+ The following lists some of the things to check if the Remez method goes wrong,
+ it is by no means an exhaustive list, but is provided in the hopes that it
+ will prove useful.
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ Is the function smooth enough? Can it be better separated into a rapidly
+ changing part, and an asymptotic part?
+ </li>
+<li>
+ Does the function being approximated have any "blips" in it? Check
+ for problems as the function changes computation method, or if a root, or
+ an infinity has been divided out. The telltale sign is if there is a narrow
+ region where the Remez method will not converge.
+ </li>
+<li>
+ Check you have enough accuracy in your calculations: remember that the Remez
+ method works on the difference between the approximation and the function
+ being approximated: so you must have more digits of precision available than
+ the precision of the approximation being constructed. So for example at double
+ precision, you shouldn't expect to be able to get better than a float precision
+ approximation.
+ </li>
+<li>
+ Try skewing the initial interpolated approximation to minimise the error
+ before you begin the Remez steps.
+ </li>
+<li>
+ If the approximation won't converge or is ill-conditioned from one starting
+ location, try starting from a different location.
+ </li>
+<li>
+ If a rational function won't converge, one can minimise a polynomial (which
+ presents no problems), then rotate one term from the numerator to the denominator
+ and minimise again. In theory one can continue moving terms one at a time
+ from numerator to denominator, and then re-minimising, retaining the last
+ set of control points at each stage.
+ </li>
+<li>
+ Try using a smaller interval. It may also be possible to optimise over one
+ (small) interval, rescale the control points over a larger interval, and
+ then re-minimise.
+ </li>
+<li>
+ Keep absissa values small: use a change of variable to keep the abscissa
+ over, say [0, b], for some smallish value <span class="emphasis"><em>b</em></span>.
+ </li>
+</ul></div>
+<a name="document_to_test_formatting.remez.references"></a><h5>
+<a name="id540285"></a>
+ <a class="link" href="remez.html#document_to_test_formatting.remez.references">References</a>
+ </h5>
+<p>
+ The original references for the Remez Method and it's extension to rational
+ functions are unfortunately in Russian:
+ </p>
+<p>
+ Remez, E.Ya., <span class="emphasis"><em>Fundamentals of numerical methods for Chebyshev approximations</em></span>,
+ "Naukova Dumka", Kiev, 1969.
+ </p>
+<p>
+ Remez, E.Ya., Gavrilyuk, V.T., <span class="emphasis"><em>Computer development of certain approaches
+ to the approximate construction of solutions of Chebyshev problems nonlinearly
+ depending on parameters</em></span>, Ukr. Mat. Zh. 12 (1960), 324-338.
+ </p>
+<p>
+ Gavrilyuk, V.T., <span class="emphasis"><em>Generalization of the first polynomial algorithm
+ of E.Ya.Remez for the problem of constructing rational-fractional Chebyshev
+ approximations</em></span>, Ukr. Mat. Zh. 16 (1961), 575-585.
+ </p>
+<p>
+ Some English language sources include:
+ </p>
+<p>
+ Fraser, W., Hart, J.F., <span class="emphasis"><em>On the computation of rational approximations
+ to continuous functions</em></span>, Comm. of the ACM 5 (1962), 401-403, 414.
+ </p>
+<p>
+ Ralston, A., <span class="emphasis"><em>Rational Chebyshev approximation by Remes' algorithms</em></span>,
+ Numer.Math. 7 (1965), no. 4, 322-330.
+ </p>
+<p>
+ A. Ralston, <span class="emphasis"><em>Rational Chebyshev approximation, Mathematical Methods
+ for Digital Computers v. 2</em></span> (Ralston A., Wilf H., eds.), Wiley, New
+ York, 1967, pp. 264-284.
+ </p>
+<p>
+ Hart, J.F. e.a., <span class="emphasis"><em>Computer approximations</em></span>, Wiley, New York
+ a.o., 1968.
+ </p>
+<p>
+ Cody, W.J., Fraser, W., Hart, J.F., <span class="emphasis"><em>Rational Chebyshev approximation
+ using linear equations</em></span>, Numer.Math. 12 (1968), 242-251.
+ </p>
+<p>
+ Cody, W.J., <span class="emphasis"><em>A survey of practical rational and polynomial approximation
+ of functions</em></span>, SIAM Review 12 (1970), no. 3, 400-423.
+ </p>
+<p>
+ Barrar, R.B., Loeb, H.J., <span class="emphasis"><em>On the Remez algorithm for non-linear families</em></span>,
+ Numer.Math. 15 (1970), 382-391.
+ </p>
+<p>
+ Dunham, Ch.B., <span class="emphasis"><em>Convergence of the Fraser-Hart algorithm for rational
+ Chebyshev approximation</em></span>, Math. Comp. 29 (1975), no. 132, 1078-1082.
+ </p>
+<p>
+ G. L. Litvinov, <span class="emphasis"><em>Approximate construction of rational approximations
+ and the effect of error autocorrection</em></span>, Russian Journal of Mathematical
+ Physics, vol.1, No. 3, 1994.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2007 John Maddock, Joel de Guzman, Eric Niebler and Matias
+ Capeletto<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="test.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="array.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/doc/test/gold/document_to_test_formatting/test.html
==============================================================================
--- (empty file)
+++ trunk/doc/test/gold/document_to_test_formatting/test.html 2008-12-09 07:11:12 EST (Tue, 09 Dec 2008)
@@ -0,0 +1,73 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>test HTML4 symbols</title>
+<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
+<link rel="home" href="../index.html" title="Document To Test Formatting">
+<link rel="up" href="../index.html" title="Document To Test Formatting">
+<link rel="prev" href="images.html" title="Images">
+<link rel="next" href="remez.html" title="Sample Article (The Remez Method)">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="images.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="remez.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="document_to_test_formatting.test"></a><a class="link" href="test.html" title="test HTML4 symbols"> test HTML4 symbols</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="test.html#document_to_test_formatting.test.test_greek_and_math_symbols">test
+ Greek and Math symbols</a></span></dt>
+<dt><span class="section"><a href="test.html#document_to_test_formatting.test.test_latin1_symbols">test
+ Latin1 symbols</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.test.test_greek_and_math_symbols"></a><a class="link" href="test.html#document_to_test_formatting.test.test_greek_and_math_symbols" title="test Greek and Math symbols">test
+ Greek and Math symbols</a>
+</h3></div></div></div>
+<p>
+ &#402;, &#913;, &#914;, &#915;, &#916;, &#917;, &#918;, &#919;, &#920;, &#921;, &#922;, &#923;, &#924;, &#925;, &#926;, &#927;, &#928;, &#929;, &#931;, &#932;, &#933;, &#934;, &#935;, &#936;, &#937;, &#945;, &#946;, &#947;, &#948;, &#949;, &#950;, &#951;, &#952;, &#953;, &#954;, &#955;, &#956;,
+ &#957;, &#958;, &#959;, &#960;, &#961;, &#962;, &#963;, &#964;, &#965;, &#966;, &#967;, &#968;, &#969;, &#977;, &#978;, &#982;, &#8226;, &#8230;, &#8242;, &#8243;, &#8254;, &#8260;, &#8472;, &#8465;, &#8476;, &#8482;, &#8501;, &#8592;, &#8593;, &#8594;, &#8595;, &#8596;, &#8629;, &#8656;, &#8657;, &#8658;, &#8659;,
+ &#8660;, &#8704;, &#8706;, &#8707;, &#8709;, &#8711;, &#8712;, &#8713;, &#8715;, &#8719;, &#8721;, &#8722;, &#8727;, &#8730;, &#8733;, &#8734;, &#8736;, &#8743;, &#8744;, &#8745;, &#8746;, &#8747;, &#8756;, &#8764;, &#8773;, &#8776;, &#8800;, &#8801;, &#8804;, &#8805;, &#8834;, &#8835;, &#8836;, &#8838;, &#8839;, &#8853;, &#8855;,
+ &#8869;, &#8901;, &#8968;, &#8969;, &#8970;, &#8971;, &#9001;, &#9002;, &#9674;, &#9824;, &#9827;, &#9829;, &#9830;
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="document_to_test_formatting.test.test_latin1_symbols"></a><a class="link" href="test.html#document_to_test_formatting.test.test_latin1_symbols" title="test Latin1 symbols">test
+ Latin1 symbols</a>
+</h3></div></div></div>
+<p>
+  , ¡, ¢, £, ¤, ¥, ¦, §, ¨, ©, ª, «, ¬, ­, ®, ¯, °, ±, ², ³, ´, µ, ¶, ·, ¸, ¹, º, », ¼, ½, ¾, ¿, À, Á, Â, Ã, Ä,
+ Å, Æ, Ç, È, É, Ê, Ë, Ì, Í, Î, Ï, Ð, Ñ, Ò, Ó, Ô, Õ, Ö, ×, Ø, Ù, Ú, Û, Ü, Ý, Þ, ß, à, á, â, ã, ä, å, æ, ç, è, é,
+ ê, ë, ì, í, î, ï, ð, ñ, ò, ó, ô, õ, ö, ÷, ø, ù, ú, û, ü, ý, þ, ÿ,
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2007 John Maddock, Joel de Guzman, Eric Niebler and Matias
+ Capeletto<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="images.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="remez.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/doc/test/gold/images/accumulators/doxygen.png
==============================================================================
Binary file. No diff available.

Added: trunk/doc/test/gold/images/accumulators/form_0.png
==============================================================================
Binary file. No diff available.

Added: trunk/doc/test/gold/images/accumulators/form_1.png
==============================================================================
Binary file. No diff available.

Added: trunk/doc/test/gold/images/accumulators/form_2.png
==============================================================================
Binary file. No diff available.

Added: trunk/doc/test/gold/images/accumulators/form_3.png
==============================================================================
Binary file. No diff available.

Added: trunk/doc/test/gold/images/accumulators/form_4.png
==============================================================================
Binary file. No diff available.

Added: trunk/doc/test/gold/images/accumulators/form_5.png
==============================================================================
Binary file. No diff available.

Added: trunk/doc/test/gold/images/accumulators/form_6.png
==============================================================================
Binary file. No diff available.

Added: trunk/doc/test/gold/images/accumulators/form_7.png
==============================================================================
Binary file. No diff available.

Added: trunk/doc/test/gold/images/accumulators/form_8.png
==============================================================================
Binary file. No diff available.

Added: trunk/doc/test/gold/index.html
==============================================================================
--- (empty file)
+++ trunk/doc/test/gold/index.html 2008-12-09 07:11:12 EST (Tue, 09 Dec 2008)
@@ -0,0 +1,149 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Document To Test Formatting</title>
+<link rel="stylesheet" href="../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
+<link rel="home" href="index.html" title="Document To Test Formatting">
+<link rel="next" href="document_to_test_formatting/code_blocks.html" title="Code Blocks">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav"><a accesskey="n" href="document_to_test_formatting/code_blocks.html"><img src="../../../doc/html/images/next.png" alt="Next"></a></div>
+<div class="article" lang="en">
+<div class="titlepage">
+<div>
+<div><h2 class="title">
+<a name="document_to_test_formatting"></a>Document To Test Formatting</h2></div>
+<div><div class="authorgroup">
+<div class="author"><h3 class="author">
+<span class="firstname">John</span> <span class="surname">Maddock</span>
+</h3></div>
+<div class="author"><h3 class="author">
+<span class="firstname">Joel</span> <span class="surname">de Guzman</span>
+</h3></div>
+<div class="author"><h3 class="author">
+<span class="firstname">Eric</span> <span class="surname">Niebler</span>
+</h3></div>
+<div class="author"><h3 class="author">
+<span class="firstname">Matias</span> <span class="surname">Capeletto</span>
+</h3></div>
+</div></div>
+<div><p class="copyright">Copyright © 2007 John Maddock, Joel de Guzman, Eric Niebler and Matias
+ Capeletto</p></div>
+<div><div class="legalnotice">
+<a name="id473217"></a><p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></div>
+</div>
+<hr>
+</div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section">Introduction</span></dt>
+<dt><span class="section">Code Blocks</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="document_to_test_formatting/code_blocks.html#document_to_test_formatting.code_blocks.embedded_code">Embedded
+ code</a></span></dt>
+<dt><span class="section"><a href="document_to_test_formatting/code_blocks.html#document_to_test_formatting.code_blocks.imported_code_and_callouts">Imported
+ code and callouts</a></span></dt>
+<dt><span class="section"><a href="document_to_test_formatting/code_blocks.html#document_to_test_formatting.code_blocks.larger_example">Larger
+ example</a></span></dt>
+</dl></dd>
+<dt><span class="section">Basic Formatting</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="document_to_test_formatting/basic_formatting.html#document_to_test_formatting.basic_formatting.font_styles">Font
+ Styles</a></span></dt>
+<dt><span class="section"><a href="document_to_test_formatting/basic_formatting.html#document_to_test_formatting.basic_formatting.replaceable_text">Replaceable
+ Text</a></span></dt>
+<dt><span class="section">Quotations</span></dt>
+<dt><span class="section"><a href="document_to_test_formatting/basic_formatting.html#document_to_test_formatting.basic_formatting.inline_code">Inline
+ Code</a></span></dt>
+<dt><span class="section">Links</span></dt>
+<dt><span class="section">Footnotes</span></dt>
+<dt><span class="section">Blockquote</span></dt>
+<dt><span class="section">Headings</span></dt>
+</dl></dd>
+<dt><span class="section">Blurbs</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="document_to_test_formatting/blurbs.html#document_to_test_formatting.blurbs.preformatted_text">Preformatted
+ text</a></span></dt>
+<dt><span class="section">Admonishments</span></dt>
+<dt><span class="section">Blurbs</span></dt>
+</dl></dd>
+<dt><span class="section"><a href="document_to_test_formatting/lists_and_tables.html">Lists and
+ Tables</a></span></dt>
+<dd><dl>
+<dt><span class="section">Lists</span></dt>
+<dt><span class="section"><a href="document_to_test_formatting/lists_and_tables.html#document_to_test_formatting.lists_and_tables.variable_lists">Variable
+ Lists</a></span></dt>
+<dt><span class="section">Tables</span></dt>
+</dl></dd>
+<dt><span class="section">Images</span></dt>
+<dt><span class="section"> test HTML4 symbols</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="document_to_test_formatting/test.html#document_to_test_formatting.test.test_greek_and_math_symbols">test
+ Greek and Math symbols</a></span></dt>
+<dt><span class="section"><a href="document_to_test_formatting/test.html#document_to_test_formatting.test.test_latin1_symbols">test
+ Latin1 symbols</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="document_to_test_formatting/remez.html"> Sample Article (The
+ Remez Method)</a></span></dt>
+<dt><span class="section"><a href="document_to_test_formatting/array.html"> Array Example Boostbook
+ XML Documentation</a></span></dt>
+<dd><dl>
+<dt><span class="section">Introduction</span></dt>
+<dt><span class="section">Reference</span></dt>
+<dt><span class="section">Design Rationale</span></dt>
+<dt><span class="section">For more information...</span></dt>
+<dt><span class="section">Acknowledgements</span></dt>
+</dl></dd>
+<dt><span class="section"><a href="document_to_test_formatting/accumulators.html"> Accumulators
+ Example Doxygen Documentation</a></span></dt>
+<dd><dl><dt><span class="section">Statistics Library Reference</span></dt></dl></dd>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="document_to_test_formatting.introduction"></a><a class="link" href="index.html#document_to_test_formatting.introduction" title="Introduction">Introduction</a>
+</h2></div></div></div>
+<p>
+ This document is purely a test case to test out HTML and PDF generation and
+ style.
+ </p>
+<p>
+ This is some body text.
+ </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="keyword">double</span> <span class="identifier">d</span> <span class="special">=</span> <span class="number">2.345</span><span class="special">;</span>
+ <span class="keyword">return</span> <span class="identifier">d</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ We can count in Greek too: &#945;, &#946;, &#947;.
+ </p>
+<p>
+ Try some superscrips and subscripts: x<sup>2</sup>, x<sub>i</sub><sup>3</sup>, &#945;<sup>2</sup>, &#946;<sup>&#945;</sup>, &#8970;x&#8971;, &#8970;&#945;&#8971;, &#8968;a&#8969;.
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><p><small>Last revised: December 09, 2008 at 12:07:46 GMT</small></p></td>
+<td align="right"><div class="copyright-footer"></div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav"><a accesskey="n" href="document_to_test_formatting/code_blocks.html"><img src="../../../doc/html/images/next.png" alt="Next"></a></div>
+</body>
+</html>


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk