$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r74242 - in sandbox/SOC/2011/checks/libs/checks/doc/html/checks: . checks checks/errors checks/modulus checks/tutorial
From: pbristow_at_[hidden]
Date: 2011-09-05 13:49:26
Author: pbristow
Date: 2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
New Revision: 74242
URL: http://svn.boost.org/trac/boost/changeset/74242
Log:
Added  folder of html for sections
Added:
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/   (props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/   (props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/acks.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/algorithm.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/conventions.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors/   (props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors/alteration.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors/length.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors/phonetic.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors/shift.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors/transposition.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/faqs.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/history.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/modulus/   (props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/modulus.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/modulus/luhn.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/modulus/mod10.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/modulus/mod11.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/modulus/summary.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/preface.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/rationale.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/refs.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/status.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/tutorial/   (props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/tutorial.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/tutorial/extending_the_library.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/tutorial/start.html   (contents, props changed)
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/version_id.html   (contents, props changed)
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Checks</title>
+<link rel="stylesheet" href=".././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../index.html" title="Checks">
+<link rel="up" href="../index.html" title="Checks">
+<link rel="prev" href="../index.html" title="Checks">
+<link rel="next" href="checks/preface.html" title="Preface">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src=".././images/proposed_for_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="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="checks/preface.html"><img src="../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="checks.checks"></a><a class="link" href="checks.html" title="Checks">Checks</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Preface</span></dt>
+<dt><span class="section">Status</span></dt>
+<dt><span class="section">Document Conventions</span></dt>
+<dt><span class="section">Tutorial</span></dt>
+<dd><dl>
+<dt><span class="section">Starting with Checks</span></dt>
+<dt><span class="section"><a href="checks/tutorial/extending_the_library.html">Extending
+        the library</a></span></dt>
+</dl></dd>
+<dt><span class="section">Common check algorithms</span></dt>
+<dt><span class="section">Type of errors</span></dt>
+<dd><dl>
+<dt><span class="section">Alteration</span></dt>
+<dt><span class="section">Transposition</span></dt>
+<dt><span class="section">Length</span></dt>
+<dt><span class="section">Shift</span></dt>
+<dt><span class="section">Phonetic</span></dt>
+</dl></dd>
+<dt><span class="section">Modular sum algorithms</span></dt>
+<dd><dl>
+<dt><span class="section">Luhn algorithm</span></dt>
+<dt><span class="section">Modulus 10 algorithm</span></dt>
+<dt><span class="section">Modulus 11 algorithm</span></dt>
+<dt><span class="section">Summary of Algorithms</span></dt>
+</dl></dd>
+<dt><span class="section">Acknowledgements</span></dt>
+<dt><span class="section">FAQs</span></dt>
+<dt><span class="section">References</span></dt>
+<dt><span class="section">Rationale</span></dt>
+<dt><span class="section">History</span></dt>
+<dt><span class="section">Version Info</span></dt>
+</dl></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 © 2011 Pierre Talbot<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="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="checks/preface.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/acks.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/acks.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Acknowledgements</title>
+<link rel="stylesheet" href="../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../index.html" title="Checks">
+<link rel="up" href="../checks.html" title="Checks">
+<link rel="prev" href="modulus/summary.html" title="Summary of Algorithms">
+<link rel="next" href="faqs.html" title="FAQs">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../.././images/proposed_for_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="modulus/summary.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="faqs.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="checks.checks.acks"></a><a class="link" href="acks.html" title="Acknowledgements">Acknowledgements</a>
+</h3></div></div></div>
+<div class="itemizedlist"><ul type="disc">
+<li>
+            Thanks to Paul A. Bristow who is the mentor of this Google Summber of
+            Code project for his infinite patience and his wise advice.
+          </li>
+<li>
+            Thanks for Google for funding this Google Summber of Code 2011 project.
+          </li>
+</ul></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 © 2011 Pierre Talbot<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="modulus/summary.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="faqs.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/algorithm.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/algorithm.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,140 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Common check algorithms</title>
+<link rel="stylesheet" href="../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../index.html" title="Checks">
+<link rel="up" href="../checks.html" title="Checks">
+<link rel="prev" href="tutorial/extending_the_library.html" title="Extending the library">
+<link rel="next" href="errors.html" title="Type of errors">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../.././images/proposed_for_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="tutorial/extending_the_library.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="errors.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="checks.checks.algorithm"></a><a class="link" href="algorithm.html" title="Common check algorithms">Common check algorithms</a>
+</h3></div></div></div>
+<p>
+        This section will discuss the objectives of the algorithms used in Boost.Checks.
+        A check algorithm is firstly designed to:
+      </p>
+<div class="orderedlist"><ol type="1">
+<li>
+            Catch the most errors as possible that a human (or machine) can make.
+          </li>
+<li>
+            Minimize the cost of the check digit for fast computation.
+          </li>
+<li>
+            Minimize the size (or number) of the check digit(s).
+          </li>
+</ol></div>
+<p>
+        We cannot have our cake and eat it, that's why we often choose between the
+        size or the efficiency. Critical numbers, for example, the <a href="http://en.wikipedia.org/wiki/International_Bank_Account_Number" target="_top">International
+        Bank Account Number (IBAN)</a>, use two check digits.
+      </p>
+<p>
+        The main difference with these algorithms (and the other checksum algorithms
+        such as CRC or cryptographic hashes) is that we don't analyse the binary
+        content of the number of the lexical values meaning, so "123" is
+        equivalent to <em class="replaceable"><code>123</code></em>.
+      </p>
+<div class="table">
+<a name="checks.checks.algorithm.summary"></a><p class="title"><b>Table 2. Error catching summary</b></p>
+<div class="table-contents"><table class="table" summary="Error catching summary">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              </th>
+<th>
+                <p>
+                  1 Alteration
+                </p>
+              </th>
+<th>
+                <p>
+                  2 Alterations
+                </p>
+              </th>
+<th>
+                <p>
+                  Twin transpositions
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  Luhn
+                </p>
+              </td>
+<td>
+                <p>
+                  18/18 (100%)
+                </p>
+              </td>
+<td>
+              </td>
+<td>
+                <p>
+                  88/90 (97.78%)
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Verhoeff
+                </p>
+              </td>
+<td>
+                <p>
+                  18/18 (100%)
+                </p>
+              </td>
+<td>
+              </td>
+<td>
+                <p>
+                  90/90 (100%)
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</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 © 2011 Pierre Talbot<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="tutorial/extending_the_library.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="errors.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/conventions.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/conventions.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,157 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Document Conventions</title>
+<link rel="stylesheet" href="../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../index.html" title="Checks">
+<link rel="up" href="../checks.html" title="Checks">
+<link rel="prev" href="status.html" title="Status">
+<link rel="next" href="tutorial.html" title="Tutorial">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../.././images/proposed_for_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="status.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="tutorial.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="checks.checks.conventions"></a><a class="link" href="conventions.html" title="Document Conventions">Document Conventions</a>
+</h3></div></div></div>
+<div class="itemizedlist"><ul type="disc">
+<li>
+            <span class="bold"><strong>Tutorials</strong></span> are listed in the <span class="emphasis"><em>Table
+            of Contents</em></span> and include many examples that should help you
+            get started quickly.
+          </li>
+<li>
+            <span class="bold"><strong>Source code</strong></span> of the many <span class="emphasis"><em>Examples</em></span>
+            will often be your quickest starting point.
+          </li>
+<li>
+            <span class="bold"><strong>Reference section</strong></span> prepared using Doxygen
+            will provide the function and class signatures, but there is also an
+            <span class="emphasis"><em>index</em></span> of these.
+          </li>
+<li>
+            The main <span class="emphasis"><em>index</em></span> will also help, especially if you
+            know a word describing what it does, without needing to know the exact
+            name chosen for the function.
+          </li>
+</ul></div>
+<p>
+        This documentation makes use of the following naming and formatting conventions.
+      </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+            C++ Code is in <code class="computeroutput"><span class="identifier">fixed</span> <span class="identifier">width</span> <span class="identifier">font</span></code>
+            and is syntax-highlighted in color.
+          </li>
+<li>
+            Other code is in <code class="literal">teletype fixed-width font</code>.
+          </li>
+<li>
+            Replaceable text that you will need to supply is in <em class="replaceable"><code>italics</code></em>.
+          </li>
+<li>
+            If a name refers to a free function, it is specified like this: <code class="computeroutput"><span class="identifier">free_function</span><span class="special">()</span></code>;
+            that is, it is in <em class="replaceable"><code>code font</code></em> and its name is
+            followed by <code class="computeroutput"><span class="special">()</span></code> to indicate
+            that it is a free function.
+          </li>
+<li>
+            If a name refers to a class template, it is specified like this: <code class="computeroutput"><span class="identifier">class_template</span><span class="special"><></span></code>;
+            that is, it is in code font and its name is followed by <code class="computeroutput"><span class="special"><></span></code> to indicate that it is a class
+            template.
+          </li>
+<li>
+            If a name refers to a function-like macro, it is specified like this:
+            <code class="computeroutput"><span class="identifier">MACRO</span><span class="special">()</span></code>;
+            that is, it is uppercase in code font and its name is followed by <code class="computeroutput"><span class="special">()</span></code> to indicate that it is a function-like
+            macro. Object-like macros appear without the trailing <code class="computeroutput"><span class="special">()</span></code>.
+          </li>
+<li>
+            Names that refer to <span class="emphasis"><em>concepts</em></span> in the generic programming
+            sense are specified in CamelCase.
+          </li>
+<li>
+            Many code snippets assume an implicit namespace, for example, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span></code>
+            or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span></code>.
+          </li>
+<li>
+            If you have a feature request, or if it appears that the implementation
+            is in error, please check the TODO section first, as well as the rationale
+            section.
+          </li>
+</ul></div>
+<p>
+        If you do not find your idea/complaint, please reach the author either through
+        the Boost development list, or email the author(s) direct .
+      </p>
+<a name="checks.checks.conventions.admonishments"></a><h5>
+<a name="checks.checks.conventions.admonishments-heading"></a>
+        <a class="link" href="conventions.html#checks.checks.conventions.admonishments">Admonishments</a>
+      </h5>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          In addition, notes such as this one specify non-essential information that
+          provides additional background or rationale.
+        </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="../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          These blocks contain information that you may find helpful while coding.
+        </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="../../images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          These contain information that is imperative to understanding a concept.
+          Failure to follow suggestions in these blocks will probably result in undesired
+          behavior. Read all of these you find.
+        </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="../../images/warning.png"></td>
+<th align="left">Warning</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          Failure to heed this will lead to incorrect, and very likely undesired,
+          results.
+        </p></td></tr>
+</table></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 © 2011 Pierre Talbot<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="status.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="tutorial.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Type of errors</title>
+<link rel="stylesheet" href="../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../index.html" title="Checks">
+<link rel="up" href="../checks.html" title="Checks">
+<link rel="prev" href="algorithm.html" title="Common check algorithms">
+<link rel="next" href="errors/alteration.html" title="Alteration">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../.././images/proposed_for_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="algorithm.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="errors/alteration.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="checks.checks.errors"></a><a class="link" href="errors.html" title="Type of errors">Type of errors</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Alteration</span></dt>
+<dt><span class="section">Transposition</span></dt>
+<dt><span class="section">Length</span></dt>
+<dt><span class="section">Shift</span></dt>
+<dt><span class="section">Phonetic</span></dt>
+</dl></div>
+<p>
+        This section will describe some common errors that an user or a device can
+        make.
+      </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 © 2011 Pierre Talbot<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="algorithm.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="errors/alteration.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors/alteration.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors/alteration.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Alteration</title>
+<link rel="stylesheet" href="../../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../../index.html" title="Checks">
+<link rel="up" href="../errors.html" title="Type of errors">
+<link rel="prev" href="../errors.html" title="Type of errors">
+<link rel="next" href="transposition.html" title="Transposition">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../../.././images/proposed_for_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="../errors.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../errors.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="transposition.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="checks.checks.errors.alteration"></a><a class="link" href="alteration.html" title="Alteration">Alteration</a>
+</h4></div></div></div>
+<a name="checks.checks.errors.alteration.single_error"></a><h6>
+<a name="checks.checks.errors.alteration.single_error-heading"></a>
+          <a class="link" href="alteration.html#checks.checks.errors.alteration.single_error">Single error</a>
+        </h6>
+<p>
+          If the digits are added, an alteration of one digit will always render
+          a different sum and therefore the check digit.
+        </p>
+<a name="checks.checks.errors.alteration.multiple_error"></a><h6>
+<a name="checks.checks.errors.alteration.multiple_error-heading"></a>
+          <a class="link" href="alteration.html#checks.checks.errors.alteration.multiple_error">Multiple
+          error</a>
+        </h6>
+<p>
+          If more than one digit is altered, a simple sum can't ensure that the check
+          digit will be different. In fact it depends on the compensation of the
+          altered digits. For example : 1 + 2 + 3 = 6. If we alter 2 digits, the
+          sum could become : 2 + 2 + 2 = 6. The result is equal because 1 + 3 = 2
+          + 2, the digits altered are compensated.
+        </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 © 2011 Pierre Talbot<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="../errors.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../errors.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="transposition.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors/length.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors/length.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Length</title>
+<link rel="stylesheet" href="../../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../../index.html" title="Checks">
+<link rel="up" href="../errors.html" title="Type of errors">
+<link rel="prev" href="transposition.html" title="Transposition">
+<link rel="next" href="shift.html" title="Shift">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../../.././images/proposed_for_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="transposition.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../errors.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="shift.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="checks.checks.errors.length"></a><a class="link" href="length.html" title="Length">Length</a>
+</h4></div></div></div>
+<p>
+          The length is not often a problem because many codes and numbers have a
+          fixed length. But if the user do not specify the size, an error could be
+          uncaught if the check digit of the new sequence of digit is equal to the
+          last digit of this sequence.
+        </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 © 2011 Pierre Talbot<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="transposition.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../errors.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="shift.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors/phonetic.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors/phonetic.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,41 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Phonetic</title>
+<link rel="stylesheet" href="../../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../../index.html" title="Checks">
+<link rel="up" href="../errors.html" title="Type of errors">
+<link rel="prev" href="shift.html" title="Shift">
+<link rel="next" href="../modulus.html" title="Modular sum algorithms">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../../.././images/proposed_for_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="shift.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../errors.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="../modulus.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
+<a name="checks.checks.errors.phonetic"></a><a class="link" href="phonetic.html" title="Phonetic">Phonetic</a>
+</h4></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 © 2011 Pierre Talbot<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="shift.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../errors.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="../modulus.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors/shift.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors/shift.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,41 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Shift</title>
+<link rel="stylesheet" href="../../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../../index.html" title="Checks">
+<link rel="up" href="../errors.html" title="Type of errors">
+<link rel="prev" href="length.html" title="Length">
+<link rel="next" href="phonetic.html" title="Phonetic">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../../.././images/proposed_for_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="length.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../errors.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="phonetic.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
+<a name="checks.checks.errors.shift"></a><a class="link" href="shift.html" title="Shift">Shift</a>
+</h4></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 © 2011 Pierre Talbot<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="length.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../errors.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="phonetic.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors/transposition.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/errors/transposition.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Transposition</title>
+<link rel="stylesheet" href="../../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../../index.html" title="Checks">
+<link rel="up" href="../errors.html" title="Type of errors">
+<link rel="prev" href="alteration.html" title="Alteration">
+<link rel="next" href="length.html" title="Length">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../../.././images/proposed_for_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="alteration.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../errors.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="length.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="checks.checks.errors.transposition"></a><a class="link" href="transposition.html" title="Transposition">Transposition</a>
+</h4></div></div></div>
+<p>
+          A transposition on a simple sum is impossible to detect because the addition
+          is commutative, the order is not important. A solution is to associate
+          the position of a digit with a weight.
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            A transposition error is only caught if the two digits transposed have
+            a different weight and if their values with their weight or the weight
+            of the other digit are not the same.
+          </p></td></tr>
+</table></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 © 2011 Pierre Talbot<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="alteration.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../errors.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="length.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/faqs.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/faqs.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,51 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>FAQs</title>
+<link rel="stylesheet" href="../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../index.html" title="Checks">
+<link rel="up" href="../checks.html" title="Checks">
+<link rel="prev" href="acks.html" title="Acknowledgements">
+<link rel="next" href="refs.html" title="References">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../.././images/proposed_for_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="acks.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="refs.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="checks.checks.faqs"></a><a class="link" href="faqs.html" title="FAQs">FAQs</a>
+</h3></div></div></div>
+<div class="itemizedlist"><ul type="disc">
+<li>
+            Why are checks needed?
+          </li>
+<li>
+            How many alterations to the strings are detected (or undetected)?
+          </li>
+</ul></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 © 2011 Pierre Talbot<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="acks.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="refs.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/history.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/history.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>History</title>
+<link rel="stylesheet" href="../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../index.html" title="Checks">
+<link rel="up" href="../checks.html" title="Checks">
+<link rel="prev" href="rationale.html" title="Rationale">
+<link rel="next" href="version_id.html" title="Version Info">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../.././images/proposed_for_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="rationale.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="version_id.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="checks.checks.history"></a><a class="link" href="history.html" title="History">History</a>
+</h3></div></div></div>
+<div class="orderedlist"><ol type="1">
+<li>
+            Project started by Pierre Talbot June 2011 as a Google Summer of Code
+            Project.
+          </li>
+<li>
+            First release in Boost Sandbox for public comment Aug 2011.
+          </li>
+</ol></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 © 2011 Pierre Talbot<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="rationale.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="version_id.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/modulus.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/modulus.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,74 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Modular sum algorithms</title>
+<link rel="stylesheet" href="../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../index.html" title="Checks">
+<link rel="up" href="../checks.html" title="Checks">
+<link rel="prev" href="errors/phonetic.html" title="Phonetic">
+<link rel="next" href="modulus/luhn.html" title="Luhn algorithm">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../.././images/proposed_for_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="errors/phonetic.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="modulus/luhn.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="checks.checks.modulus"></a><a class="link" href="modulus.html" title="Modular sum algorithms">Modular sum algorithms</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Luhn algorithm</span></dt>
+<dt><span class="section">Modulus 10 algorithm</span></dt>
+<dt><span class="section">Modulus 11 algorithm</span></dt>
+<dt><span class="section">Summary of Algorithms</span></dt>
+</dl></div>
+<p>
+        A <span class="emphasis"><em>modular sum algorithm</em></span> computes the sum of a sequence
+        of digits modulus some number. The number obtained is called the <span class="emphasis"><em>check
+        digit</em></span>; in many codes it is appended as the last digit (or letter).
+        This simplistic algorithm detects any <span class="emphasis"><em>alteration</em></span> of
+        one single digit but doesn't detect a simple <span class="emphasis"><em>transposition</em></span>
+        or two (or more) digits if the check digit is not transposed. This is why
+        even the most basic algorithms introduce the notion of <span class="emphasis"><em>weight</em></span>.
+        The weight is the contribution of a number to the final sum. The following
+        algorithms presented are the base of many, many codes and numbers in worldwide
+        use. We could describe a number and its check digit calculation with three
+        characteristics : length, weight and the modulus. So we could design a generic
+        function - but we won't - it wouldn't be efficient and would be unnecessarily
+        complicated. The next parts will present three different algorithms for which
+        we have choose to design this implementation.
+      </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          We may add other algorithms later.
+        </p></td></tr>
+</table></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 © 2011 Pierre Talbot<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="errors/phonetic.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="modulus/luhn.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/modulus/luhn.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/modulus/luhn.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,88 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Luhn algorithm</title>
+<link rel="stylesheet" href="../../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../../index.html" title="Checks">
+<link rel="up" href="../modulus.html" title="Modular sum algorithms">
+<link rel="prev" href="../modulus.html" title="Modular sum algorithms">
+<link rel="next" href="mod10.html" title="Modulus 10 algorithm">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../../.././images/proposed_for_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="../modulus.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modulus.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="mod10.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="checks.checks.modulus.luhn"></a><a class="link" href="luhn.html" title="Luhn algorithm">Luhn algorithm</a>
+</h4></div></div></div>
+<a name="checks.checks.modulus.luhn.description"></a><h6>
+<a name="checks.checks.modulus.luhn.description-heading"></a>
+          <a class="link" href="luhn.html#checks.checks.modulus.luhn.description">Description</a>
+        </h6>
+<p>
+          The Luhn algorithm is used with a lot of codes and numbers: the most well-known
+          usage is the verification of the <span class="emphasis"><em>credit card numbers</em></span>
+          It produces a check digit from a sequence with an unlimited length. The
+          weight pattern used is from the rightmost digit (the check digit) doubling
+          the value of every second digit. It applies a modulus 10 on the sum, so
+          the range of the check digit is from 0 to 9.
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            When a digit is doubled, we subtract 9 from the result if it exceeds
+            9
+          </p></td></tr>
+</table></div>
+<a name="checks.checks.modulus.luhn.errors"></a><h6>
+<a name="checks.checks.modulus.luhn.errors-heading"></a>
+          <a class="link" href="luhn.html#checks.checks.modulus.luhn.errors">Errors</a>
+        </h6>
+<p>
+          <span class="bold"><strong>Alterations</strong></span> of any one digit are all caught.
+          The alterations of more than one digit are not all caught. All <span class="bold"><strong>transpositions</strong></span> on digits with different weight are
+          caught, but the sequence "90" or "09" is not because:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting">9*2 = 18 and 18-9 = 9 
+9 * 2 = 9 * 1
+0 * 2 = 0 * 1
+</pre>
+<p>
+        </p>
+<p>
+          The two digits have the same value if they are doubled or not. Because
+          Luhn alternates a weight of 1 and 2, any transpositions of digits with
+          the same weight are not caught.
+        </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 © 2011 Pierre Talbot<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="../modulus.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modulus.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="mod10.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/modulus/mod10.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/modulus/mod10.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Modulus 10 algorithm</title>
+<link rel="stylesheet" href="../../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../../index.html" title="Checks">
+<link rel="up" href="../modulus.html" title="Modular sum algorithms">
+<link rel="prev" href="luhn.html" title="Luhn algorithm">
+<link rel="next" href="mod11.html" title="Modulus 11 algorithm">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../../.././images/proposed_for_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="luhn.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modulus.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="mod11.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="checks.checks.modulus.mod10"></a><a class="link" href="mod10.html" title="Modulus 10 algorithm">Modulus 10 algorithm</a>
+</h4></div></div></div>
+<a name="checks.checks.modulus.mod10.description"></a><h6>
+<a name="checks.checks.modulus.mod10.description-heading"></a>
+          <a class="link" href="mod10.html#checks.checks.modulus.mod10.description">Description</a>
+        </h6>
+<p>
+          This algorithm use a modulus 10 as the Luhn algorithm but use a custom
+          weight pattern. The sum is made without subtraction if the multiplication
+          of a digit exceeds 9. The custom weight pattern may be useful for many
+          codes and numbers that aren't implemented in the high level library. The
+          user can easily craft his own check function with this weight pattern.
+        </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 © 2011 Pierre Talbot<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="luhn.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modulus.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="mod11.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/modulus/mod11.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/modulus/mod11.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Modulus 11 algorithm</title>
+<link rel="stylesheet" href="../../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../../index.html" title="Checks">
+<link rel="up" href="../modulus.html" title="Modular sum algorithms">
+<link rel="prev" href="mod10.html" title="Modulus 10 algorithm">
+<link rel="next" href="summary.html" title="Summary of Algorithms">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../../.././images/proposed_for_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="mod10.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modulus.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="summary.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="checks.checks.modulus.mod11"></a><a class="link" href="mod11.html" title="Modulus 11 algorithm">Modulus 11 algorithm</a>
+</h4></div></div></div>
+<p>
+          The modulus 11 algorithm use a modulus of 11, so we have 11 possible check
+          digits. The ten first characters are the figures from 0 to 9, the eleventh
+          is a special character choose by the designer of the number. It is typically
+          'X' or 'x'. The weight of a digit is related to its position. The weight
+          of the first character is equal to the total length of the number (with
+          the check digit included). The weight decreases by one for the second position,
+          one again for the third, etc.
+        </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 © 2011 Pierre Talbot<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="mod10.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modulus.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="summary.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/modulus/summary.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/modulus/summary.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,177 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Summary of Algorithms</title>
+<link rel="stylesheet" href="../../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../../index.html" title="Checks">
+<link rel="up" href="../modulus.html" title="Modular sum algorithms">
+<link rel="prev" href="mod11.html" title="Modulus 11 algorithm">
+<link rel="next" href="../acks.html" title="Acknowledgements">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../../.././images/proposed_for_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="mod11.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modulus.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="../acks.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="checks.checks.modulus.summary"></a><a class="link" href="summary.html" title="Summary of Algorithms">Summary of Algorithms</a>
+</h4></div></div></div>
+<p>
+          Here a summary of the different algorithms studied.
+        </p>
+<div class="table">
+<a name="checks.checks.modulus.summary.id"></a><p class="title"><b>Table 3. Summary of the modular sum algorithms</b></p>
+<div class="table-contents"><table class="table" summary="Summary of the modular sum algorithms">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Algorithm
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Modulus
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Weight pattern
+                  </p>
+                </th>
+<th>
+                  <p>
+                    check digit range
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Luhn
+                  </p>
+                </td>
+<td>
+                  <p>
+                    10
+                  </p>
+                </td>
+<td>
+                  <p>
+                    ... 2 1 2 1
+                  </p>
+                </td>
+<td>
+                  <p>
+                    0..9
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Modulus 10
+                  </p>
+                </td>
+<td>
+                  <p>
+                    10
+                  </p>
+                </td>
+<td>
+                  <p>
+                    custom
+                  </p>
+                </td>
+<td>
+                  <p>
+                    0..9
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Modulus 11
+                  </p>
+                </td>
+<td>
+                  <p>
+                    11
+                  </p>
+                </td>
+<td>
+                  <p>
+                    ... 2 1 10 ... 4 3 2 1
+                  </p>
+                </td>
+<td>
+                  <p>
+                    0..9 + 'X'
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Modulus 97
+                  </p>
+                </td>
+<td>
+                  <p>
+                    97
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Verhoeff
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                </td>
+<td>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</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 © 2011 Pierre Talbot<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="mod11.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modulus.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="../acks.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/preface.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/preface.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,100 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Preface</title>
+<link rel="stylesheet" href="../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../index.html" title="Checks">
+<link rel="up" href="../checks.html" title="Checks">
+<link rel="prev" href="../checks.html" title="Checks">
+<link rel="next" href="status.html" title="Status">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../.././images/proposed_for_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="../checks.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="status.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="checks.checks.preface"></a><a class="link" href="preface.html" title="Preface">Preface</a>
+</h3></div></div></div>
+<p>
+        Checks are required on alphanumeric identifiers in numerous domains such
+        as the distribution chain (product bar codes), banking (bank account, credit
+        cards, fidelity cards, ...) and many others. These codes and numbers are
+        often typed, copied or scanned by humans or machines; and both make errors.
+        We need a way to detect errors and this is why check digits have been designed.
+      </p>
+<p>
+        A check digit aims to control the validity of a alphanumeric string and catch
+        the as many changes as possible. (<a class="link" href="errors.html" title="Type of errors">types
+        of error</a> discuss possible alterations and the efficiency of their
+        detection).
+      </p>
+<p>
+        This library provides a collection of functions for validating and creating
+        check digits.
+      </p>
+<p>
+        Scott McMurray has identifed four fairly distinct types of check:
+      </p>
+<div class="orderedlist"><ol type="1">
+<li>
+            ISBN/ISSN/UPC/EAN/VISA/etc, for catching human-entry errors.
+          </li>
+<li>
+            hash functions as in hash tables, which only care about distribution.
+          </li>
+<li>
+            checksums like CRC32, for catching data transmission errors.
+          </li>
+<li>
+            and cryptographic hash functions, the only ones useful against malicious
+            adversaries.
+          </li>
+</ol></div>
+<p>
+        The functions in this Boost.Checks library are primarily for the first category
+        : catching human-entry errors (though it obviously also provides against
+        a mis-scan or mis-transmit by a device like a bar code or card reader.)
+      </p>
+<p>
+        This library supports four families of check : Modulus 10, Modulus 11, Modulus
+        97-10 and Verhoeff. A lot of other check systems are inherited from these
+        families.
+      </p>
+<p>
+        The following diagram shows the hierarchy used in Boost.Checks:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../.././images/checks/check_hierarchy.png" alt="check_hierarchy"></span>
+      </p>
+<p>
+        Numerous check algorithms are in use worldwide, and this is why this library
+        is designed to help you to cater for less common checks, and even to create
+        your own check systems. If you are interested, see <a class="link" href="tutorial/extending_the_library.html" title="Extending the library">extending
+        the library</a>.
+      </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 © 2011 Pierre Talbot<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="../checks.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="status.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/rationale.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/rationale.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,117 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Rationale</title>
+<link rel="stylesheet" href="../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../index.html" title="Checks">
+<link rel="up" href="../checks.html" title="Checks">
+<link rel="prev" href="refs.html" title="References">
+<link rel="next" href="history.html" title="History">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../.././images/proposed_for_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="refs.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="history.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="checks.checks.rationale"></a><a class="link" href="rationale.html" title="Rationale">Rationale</a>
+</h3></div></div></div>
+<p>
+        This section records the rationale and compromises for some design decisions.
+      </p>
+<a name="checks.checks.rationale.scope_of_the_project"></a><h5>
+<a name="checks.checks.rationale.scope_of_the_project-heading"></a>
+        <a class="link" href="rationale.html#checks.checks.rationale.scope_of_the_project">Scope of the
+        project</a>
+      </h5>
+<div class="itemizedlist"><ul type="disc"><li>
+            Scott McMurray has identifed four fairly distinct types of check:
+            <div class="orderedlist"><ol type="1">
+<li>
+                  ISBN/ISSN/UPC/EAN/VISA/etc, for catching human-entry errors.
+                </li>
+<li>
+                  hash functions as in hash tables, which only care about distribution.
+                </li>
+<li>
+                  checksums like CRC32, for catching data transmission errors.
+                </li>
+<li>
+                  and cryptographic hash functions, the only ones useful against
+                  malicious adversaries.
+                </li>
+</ol></div>
+          </li></ul></div>
+<p>
+        This project is directed first at the first class. Others might be the subject
+        of future additions or other libraries.
+      </p>
+<a name="checks.checks.rationale.function_parameter"></a><h5>
+<a name="checks.checks.rationale.function_parameter-heading"></a>
+        <a class="link" href="rationale.html#checks.checks.rationale.function_parameter">Function parameter</a>
+      </h5>
+<div class="itemizedlist"><ul type="disc">
+<li>
+            For more flexibility, this library uses the range concept. So you can
+            use old C-array or std::string,...
+          </li>
+<li>
+            If there is only one check digit in the number, this check digit is returned
+            in the same raw type than in the range sequence.
+          </li>
+<li>
+            If there is more than one check digit, an extra parameter is required.
+            This must be an OutputIterator, the function returns an iterator at one
+            pass the end of the check digit stored into this iterator.
+          </li>
+</ul></div>
+<a name="checks.checks.rationale.use_of_template_parameters_to_pass_size_and_weights"></a><h5>
+<a name="checks.checks.rationale.use_of_template_parameters_to_pass_size_and_weights-heading"></a>
+        <a class="link" href="rationale.html#checks.checks.rationale.use_of_template_parameters_to_pass_size_and_weights">Use
+        of template parameters to pass size and weights</a>
+      </h5>
+<div class="itemizedlist"><ul type="disc">
+<li>
+            This feature means that much of the commonality between the various check
+            systems can be implemented in one place and reused.
+          </li>
+<li>
+            It also makes it possible to implement other check systems (of which
+            there are very many in use worldwide) and to devise new ones without
+            writing new code.
+          </li>
+</ul></div>
+<a name="checks.checks.rationale.performance"></a><h5>
+<a name="checks.checks.rationale.performance-heading"></a>
+        <a class="link" href="rationale.html#checks.checks.rationale.performance">Performance</a>
+      </h5>
+<div class="itemizedlist"><ul type="disc"><li>
+            Performance is not a major objective, but all the current algorithms
+            are implemented with a <span class="emphasis"><em>O(n)</em></span> complexity, where <span class="emphasis"><em>n</em></span>
+            is the number of digits or characters.
+          </li></ul></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 © 2011 Pierre Talbot<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="refs.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="history.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/refs.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/refs.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>References</title>
+<link rel="stylesheet" href="../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../index.html" title="Checks">
+<link rel="up" href="../checks.html" title="Checks">
+<link rel="prev" href="faqs.html" title="FAQs">
+<link rel="next" href="rationale.html" title="Rationale">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../.././images/proposed_for_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="faqs.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="checks.checks.refs"></a><a class="link" href="refs.html" title="References">References</a>
+</h3></div></div></div>
+<div class="orderedlist"><ol type="1">
+<li>
+            <a href="http://en.wikipedia.org/wiki/Routing_transit_number" target="_top">Routing
+            transit number (RTN)</a>
+          </li>
+<li>
+            <a href="http://en.wikipedia.org/wiki/Vehicle_identification_number" target="_top">Vehicle
+            Identification Number (VIN)</a>
+          </li>
+<li>
+            Code 39
+          </li>
+</ol></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 © 2011 Pierre Talbot<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="faqs.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/status.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/status.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,80 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Status</title>
+<link rel="stylesheet" href="../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../index.html" title="Checks">
+<link rel="up" href="../checks.html" title="Checks">
+<link rel="prev" href="preface.html" title="Preface">
+<link rel="next" href="conventions.html" title="Document Conventions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../.././images/proposed_for_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="preface.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="conventions.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="checks.checks.status"></a><a class="link" href="status.html" title="Status">Status</a>
+</h3></div></div></div>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          This is not (yet) an official Boost library. It was a <a href="http://code.google.com/soc/2011/boost/about.html" target="_top">Google
+          Summer of Code project (2011)</a> whose mentor organization was Boost.
+          It remains a library under construction, the code is quite functional,
+          but interfaces, library structure, and names may still be changed without
+          notice. The current version is available at
+        </p>
+<p>
+          <span class="bold"><strong>https://svn.boost.org/svn/boost/sandbox/SOC/2011/checks/libs/checks/doc/pdf/checks.pdf
+          PDF documentation.</strong></span>
+        </p>
+<p>
+          <span class="bold"><strong>https://svn.boost.org/svn/boost/sandbox/SOC/2011/checks/libs/checks/doc/html/index.html
+          HTML documentation.</strong></span>
+        </p>
+<p>
+          <span class="bold"><strong>https://svn.boost.org/svn/boost/sandbox/SOC/2011/checks/boost/checks/boost/
+          Boost Sandbox checks source code.</strong></span>
+        </p>
+</td></tr>
+</table></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          Comments and suggestions (even bugs!) to Pierre Talbot pierre.talbot.6114
+          (at) herslibramont (dot) be
+        </p></td></tr>
+</table></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 © 2011 Pierre Talbot<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="preface.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="conventions.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/tutorial.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/tutorial.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Tutorial</title>
+<link rel="stylesheet" href="../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../index.html" title="Checks">
+<link rel="up" href="../checks.html" title="Checks">
+<link rel="prev" href="conventions.html" title="Document Conventions">
+<link rel="next" href="tutorial/start.html" title="Starting with Checks">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../.././images/proposed_for_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="conventions.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="tutorial/start.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="checks.checks.tutorial"></a><a class="link" href="tutorial.html" title="Tutorial">Tutorial</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Starting with Checks</span></dt>
+<dt><span class="section"><a href="tutorial/extending_the_library.html">Extending
+        the library</a></span></dt>
+</dl></div>
+<p>
+        In this section, we will quickly learn to use this library. But most important
+        is the following quote of Lao Tseu :
+      </p>
+<p>
+        “<span class="quote">Give a Man a Fish, Feed Him For a Day. Teach a Man to Fish, Feed Him
+        For a Lifetime.</span>”
+      </p>
+<p>
+        So we'll also learn to extend this library and create your own check functions.
+      </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 © 2011 Pierre Talbot<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="conventions.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="tutorial/start.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/tutorial/extending_the_library.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/tutorial/extending_the_library.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,634 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Extending the library</title>
+<link rel="stylesheet" href="../../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../../index.html" title="Checks">
+<link rel="up" href="../tutorial.html" title="Tutorial">
+<link rel="prev" href="start.html" title="Starting with Checks">
+<link rel="next" href="../algorithm.html" title="Common check algorithms">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../../.././images/proposed_for_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="start.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="../algorithm.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="checks.checks.tutorial.extending_the_library"></a><a class="link" href="extending_the_library.html" title="Extending the library">Extending
+        the library</a>
+</h4></div></div></div>
+<p>
+          The re-usability of this library is an important feature. In fact, we can't
+          code every existing check systems, this is why we will learn how to extend
+          this library to cater for existing check systems not yet provided, and
+          even to create your own check system.
+        </p>
+<a name="checks.checks.tutorial.extending_the_library.example_with_the_routing_transit_number"></a><h6>
+<a name="checks.checks.tutorial.extending_the_library.example_with_the_routing_transit_number-heading"></a>
+          <a class="link" href="extending_the_library.html#checks.checks.tutorial.extending_the_library.example_with_the_routing_transit_number">Example
+          with the Routing transit number</a>
+        </h6>
+<p>
+          We will show how to extend this library with the <a href="http://en.wikipedia.org/wiki/Routing_transit_number" target="_top">Routing
+          transit number (RTN)</a>. The first thing to do is to read the check
+          digit calculation procedure. So we can notice few points:
+        </p>
+<div class="orderedlist"><ol type="1">
+<li>
+              It is a weighted sum and the weight sequence is: 3,7,1.
+            </li>
+<li>
+              It is using a modulus 10.
+            </li>
+<li>
+              The size of the RTN is 9.
+            </li>
+</ol></div>
+<p>
+          We can create the rtn.hpp file.
+        </p>
+<p>
+          The library supports the weighted sum and the modulus 10 algorithm, so
+          the work will be easy. We can run through the number from right to left
+          or left to right (sense) depending on the weight sequence. We will begin
+          with the leftmost digit because it is more "readable" (at least
+          for Latin language uers).
+        </p>
+<p>
+          We need these include files.
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">checks</span><span class="special">/</span><span class="identifier">modulus10</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">checks</span><span class="special">/</span><span class="identifier">basic_checks</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">RTN_SIZE</span> <span class="number">9</span>
+<span class="preprocessor">#define</span> <span class="identifier">RTN_SIZE_WITHOUT_CHECKDIGIT</span> <span class="number">8</span>
+
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">weight</span><span class="special"><</span><span class="number">3</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">1</span><span class="special">></span> <span class="identifier">rtn_weight</span> <span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">leftmost</span> <span class="identifier">rtn_sense</span> <span class="special">;</span>
+</pre>
+<p>
+        </p>
+<p>
+          We must put the weights and the sense together into an algorithm type:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">modulus10_algorithm</span> <span class="special"><</span> <span class="identifier">rtn_weight</span><span class="special">,</span> <span class="identifier">rtn_sense</span><span class="special">,</span> <span class="number">0</span><span class="special">></span> <span class="identifier">rtn_check_algorithm</span> <span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">modulus10_algorithm</span> <span class="special"><</span> <span class="identifier">rtn_weight</span><span class="special">,</span> <span class="identifier">rtn_sense</span><span class="special">,</span> <span class="number">0</span><span class="special">></span> <span class="identifier">rtn_compute_algorithm</span> <span class="special">;</span>
+</pre>
+<p>
+        </p>
+<p>
+          As the hard part is already done, we can build our check functions now:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">check_range</span><span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">check_rtn</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">check_range</span><span class="special">&</span> <span class="identifier">check_seq</span><span class="special">)</span>
+<span class="special">{</span>
+  <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">check_sequence</span><span class="special"><</span><span class="identifier">rtn_check_algorithm</span><span class="special">,</span> <span class="identifier">RTN_SIZE</span><span class="special">></span> <span class="special">(</span> <span class="identifier">check_seq</span> <span class="special">)</span> <span class="special">;</span>
+<span class="special">}</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">check_range</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">rtn_compute_algorithm</span><span class="special">::</span><span class="identifier">checkdigit</span><span class="special"><</span><span class="identifier">check_range</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">compute_rtn</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">check_range</span><span class="special">&</span> <span class="identifier">check_seq</span><span class="special">)</span>
+<span class="special">{</span>
+  <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">compute_checkdigit</span><span class="special"><</span><span class="identifier">rtn_compute_algorithm</span><span class="special">,</span> <span class="identifier">RTN_SIZE_WITHOUT_CHECKDIGIT</span><span class="special">></span> <span class="special">(</span> <span class="identifier">check_seq</span> <span class="special">)</span> <span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        </p>
+<p>
+          And that's all!
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">compute_checkdigit</span></code> and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">check_sequence</span></code> are both defined in
+            basic_checks.hpp
+          </p></td></tr>
+</table></div>
+<p>
+          We can code a RTN sample in the file checks_tutorial.cpp:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">rtn_number</span> <span class="special">=</span>  <span class="string">"111000025"</span> <span class="special">;</span>
+<span class="keyword">if</span> <span class="special">(</span> <span class="identifier">check_rtn</span> <span class="special">(</span> <span class="identifier">rtn_number</span> <span class="special">)</span> <span class="special">)</span>
+  <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"The Routing Transit Number: "</span> <span class="special"><<</span> <span class="identifier">rtn_number</span> <span class="special"><<</span> <span class="string">" is valid."</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special">;</span>
+<span class="identifier">rtn_number</span> <span class="special">=</span> <span class="string">"11100002"</span><span class="special">;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"The check digit of the number: "</span> <span class="special"><<</span> <span class="identifier">rtn_number</span> <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">compute_rtn</span> <span class="special">(</span><span class="identifier">rtn_number</span> <span class="special">)</span> <span class="special"><<</span> <span class="string">"."</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special">;</span>
+</pre>
+<p>
+        </p>
+<p>
+          and the output is:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">The</span> <span class="identifier">Routing</span> <span class="identifier">Transit</span> <span class="identifier">Number</span><span class="special">:</span> <span class="number">111000025</span> <span class="identifier">is</span> <span class="identifier">valid</span><span class="special">.</span>
+<span class="identifier">The</span> <span class="identifier">check</span> <span class="identifier">digit</span> <span class="identifier">of</span> <span class="identifier">the</span> <span class="identifier">number</span><span class="special">:</span> <span class="number">11100002</span> <span class="identifier">is</span> <span class="number">5.</span>
+
+</pre>
+<p>
+        </p>
+<a name="checks.checks.tutorial.extending_the_library.example_with_the_vehicle_identification_number__vin_"></a><h6>
+<a name="checks.checks.tutorial.extending_the_library.example_with_the_vehicle_identification_number__vin_-heading"></a>
+          <a class="link" href="extending_the_library.html#checks.checks.tutorial.extending_the_library.example_with_the_vehicle_identification_number__vin_">Example
+          with the Vehicle Identification Number (VIN)</a>
+        </h6>
+<p>
+          This second example is quite more complex because the <a href="http://en.wikipedia.org/wiki/Vehicle_identification_number" target="_top">Vehicle
+          Identification Number (VIN)</a> is not a default implemented check
+          algorithm. Like for the <a href="http://en.wikipedia.org/wiki/Routing_transit_number" target="_top">Routing
+          transit number (RTN)</a>, we must read the documentation first, and
+          then we can extract a few elements:
+        </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+              The number contains letters that must be translated to compute or check
+              the check digit.
+            </li>
+<li>
+              The check digit is not at the end of the number. It's at the 9th position,
+              in the midst of the number.
+            </li>
+<li>
+              The letters Q, I, or O are not valid (presumably to avoid confusion
+              with digits 0 and 1).
+            </li>
+<li>
+              This uses a custom modulus 11 algorithm, so the check digit range is
+              [0..9, X]
+            </li>
+</ul></div>
+<p>
+          The library already has support for modulus 11 algorithm in the header:
+          
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">checks</span><span class="special">/</span><span class="identifier">modulus11</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<p>
+        </p>
+<p>
+          We create the vin.hpp file.
+          Step by step, let's now complete this file.
+        </p>
+<div class="orderedlist"><ol type="1">
+<li>
+              The weight sequence is : 2,3,4,5,6,7,8,9,10.
+            </li>
+<li>
+              We run through the sequence from right to left.
+            </li>
+</ol></div>
+<p>
+          We create the types associated with these two observations:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">checks</span><span class="special">/</span><span class="identifier">modulus11</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">checks</span><span class="special">/</span><span class="identifier">basic_checks</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="preprocessor">#define</span> <span class="identifier">VIN_SIZE</span> <span class="number">17</span>
+<span class="preprocessor">#define</span> <span class="identifier">VIN_SIZE_WITHOUT_CHECKDIGIT</span> <span class="number">16</span>
+<span class="preprocessor">#define</span> <span class="identifier">VIN_CHECKDIGIT_POS</span> <span class="number">8</span>
+
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">weight</span><span class="special"><</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">6</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">9</span><span class="special">,</span><span class="number">10</span><span class="special">></span> <span class="identifier">vin_weight</span> <span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">rightmost</span> <span class="identifier">vin_sense</span> <span class="special">;</span>
+</pre>
+<p>
+        </p>
+<p>
+          We will now attack the harder part of the work: we need to build the adapted
+          structure. To create our own algorithm, first we need to declare the structure
+          with inheritance:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">number_of_virtual_value_skipped</span> <span class="special">=</span> <span class="number">0</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">vin_algorithm</span> <span class="special">:</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">modulus11_algorithm</span><span class="special"><</span><span class="identifier">vin_weight</span><span class="special">,</span> <span class="identifier">vin_sense</span><span class="special">,</span> <span class="identifier">number_of_virtual_value_skipped</span><span class="special">></span>
+</pre>
+<p>
+        </p>
+<p>
+          The classic modulus 11 algorithm doesn't permit the translation of letters
+          (only the 'x' if it's the check digit). But the VIN number uses nearly
+          the full latin alphabet (they omitted O, Q, and I to avoid confusion with
+          numerals 1 and 0). We choose to launch the std::invalid_argument exception
+          (that has the effect of stopping the algorithm) if one of these letter
+          is encountered. The other letters must be transformed using this table:
+        </p>
+<div class="table">
+<a name="checks.checks.tutorial.extending_the_library.id"></a><p class="title"><b>Table 1. Letter to digit VIN conversion table</b></p>
+<div class="table-contents"><table class="table" summary="Letter to digit VIN conversion table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Conversion value
+                  </p>
+                </th>
+<th>
+                  <p>
+                    1
+                  </p>
+                </th>
+<th>
+                  <p>
+                    2
+                  </p>
+                </th>
+<th>
+                  <p>
+                    3
+                  </p>
+                </th>
+<th>
+                  <p>
+                    4
+                  </p>
+                </th>
+<th>
+                  <p>
+                    5
+                  </p>
+                </th>
+<th>
+                  <p>
+                    6
+                  </p>
+                </th>
+<th>
+                  <p>
+                    7
+                  </p>
+                </th>
+<th>
+                  <p>
+                    8
+                  </p>
+                </th>
+<th>
+                  <p>
+                    9
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                </td>
+<td>
+                  <p>
+                    A (1)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    B (2)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    C (3)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    D (4)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    E (5)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    F (6)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    G (7)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    H (8)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    I (N/A)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                </td>
+<td>
+                  <p>
+                    J (10)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    K (11)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    L (12)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    M (13)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    N (14)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    O (N/A)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    P (16)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Q (N/A)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    R (18)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    S (19)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    T (20)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    U (21)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    V (22)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    W (23)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    X (24)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Y (25)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Z (26)
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+          We need to find an algorithm that converts a letter into its conversion
+          value, the following function does the job:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">X</span> <span class="special">=</span> <span class="identifier">X</span> <span class="special">%</span> <span class="number">10</span> <span class="special">+</span> <span class="identifier">X</span><span class="special">/</span><span class="number">10</span> <span class="special">+</span> <span class="special">((</span><span class="identifier">X</span> <span class="special">></span> <span class="number">18</span><span class="special">)</span> <span class="special">?</span> <span class="number">1</span> <span class="special">:</span> <span class="number">0</span><span class="special">).</span>
+</pre>
+<p>
+        </p>
+<p>
+          Also the check digit can only be in the range [0..9,X], so we choose to
+          launch the std::invalid_argument exception if another letter is read. With
+          the check digit, and following the modulus 11 algorithm, if the check digit
+          is equal to X, the integer value is 10. But this algorithm is different
+          and we must subtract the check digit from 11.
+        </p>
+<p>
+          Let's see the code now:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">value</span><span class="special">></span>
+<span class="keyword">static</span> <span class="keyword">int</span> <span class="identifier">translate_to_valid_value</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value</span> <span class="special">&</span><span class="identifier">current_value</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">valid_value_counter</span> <span class="special">)</span>
+<span class="special">{</span>
+  <span class="keyword">int</span> <span class="identifier">valid_value</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
+  <span class="keyword">try</span>
+  <span class="special">{</span>
+    <span class="identifier">valid_value</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span> <span class="identifier">current_value</span> <span class="special">)</span> <span class="special">;</span>
+  <span class="special">}</span>
+  <span class="keyword">catch</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">bad_lexical_cast</span> <span class="special">)</span>
+  <span class="special">{</span>
+    <span class="comment">// Transform the value to be between 1 and 26.</span>
+    <span class="keyword">if</span><span class="special">(</span> <span class="identifier">current_value</span> <span class="special">>=</span> <span class="char">'a'</span> <span class="special">&&</span> <span class="identifier">current_value</span> <span class="special"><=</span> <span class="char">'z'</span> <span class="special">)</span>
+      <span class="identifier">valid_value</span> <span class="special">=</span> <span class="identifier">current_value</span> <span class="special">-</span> <span class="char">'a'</span> <span class="special">+</span> <span class="number">1</span> <span class="special">;</span>
+    <span class="keyword">else</span> <span class="keyword">if</span><span class="special">(</span> <span class="identifier">current_value</span> <span class="special">>=</span> <span class="char">'A'</span> <span class="special">&&</span> <span class="identifier">current_value</span> <span class="special"><=</span> <span class="char">'Z'</span> <span class="special">)</span>
+      <span class="identifier">valid_value</span> <span class="special">=</span> <span class="identifier">current_value</span> <span class="special">-</span> <span class="char">'A'</span> <span class="special">+</span> <span class="number">1</span> <span class="special">;</span>
+    <span class="keyword">else</span>
+      <span class="keyword">throw</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">translation_exception</span><span class="special">()</span> <span class="special">;</span>
+
+    <span class="keyword">if</span> <span class="special">(</span> <span class="identifier">valid_value</span> <span class="special">==</span> <span class="number">9</span> <span class="special">||</span> <span class="identifier">valid_value</span> <span class="special">==</span> <span class="number">15</span> <span class="special">||</span> <span class="identifier">valid_value</span> <span class="special">==</span> <span class="number">17</span><span class="special">)</span>
+      <span class="keyword">throw</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">invalid_argument</span><span class="special">(</span> <span class="string">"The letter I, O and Q are not allowed."</span> <span class="special">);</span>
+
+    <span class="keyword">if</span> <span class="special">(</span> <span class="identifier">valid_value_counter</span> <span class="special">==</span> <span class="identifier">VIN_CHECKDIGIT_POS</span> <span class="special">&&</span> <span class="identifier">number_of_virtual_value_skipped</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span>
+    <span class="special">{</span>
+      <span class="keyword">if</span> <span class="special">(</span> <span class="identifier">valid_value</span> <span class="special">!=</span> <span class="number">24</span> <span class="special">)</span>
+        <span class="keyword">throw</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">invalid_argument</span><span class="special">(</span> <span class="string">"The check digit should be a digit or X or x."</span> <span class="special">);</span>
+      <span class="keyword">else</span>
+        <span class="identifier">valid_value</span> <span class="special">=</span> <span class="number">10</span> <span class="special">;</span>
+      <span class="identifier">valid_value</span> <span class="special">=</span> <span class="number">11</span> <span class="special">-</span> <span class="identifier">valid_value</span> <span class="special">;</span>
+    <span class="special">}</span>
+    <span class="keyword">else</span>
+      <span class="identifier">valid_value</span> <span class="special">=</span> <span class="identifier">valid_value</span> <span class="special">%</span> <span class="number">10</span> <span class="special">+</span> <span class="identifier">valid_value</span> <span class="special">/</span> <span class="number">10</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">valid_value</span> <span class="special">></span> <span class="number">18</span><span class="special">)</span> <span class="special">;</span>
+  <span class="special">}</span>
+  <span class="keyword">if</span><span class="special">(</span> <span class="identifier">valid_value</span> <span class="special">></span> <span class="number">10</span><span class="special">)</span>
+    <span class="keyword">throw</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">translation_exception</span><span class="special">()</span> <span class="special">;</span>
+
+  <span class="keyword">return</span> <span class="identifier">valid_value</span> <span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        </p>
+<p>
+          The operation function is partially copied from the function <code class="computeroutput"><span class="identifier">operate_on_valid_value</span></code> in the file weighted_sum.hpp.
+          We need to control the fact that the check digit is in the midst of the
+          number. If there is a check digit into the sequence, we mustn't apply a
+          weight, and we must avoid shift of the full weight sequence for the future
+          iteration.
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">operate_on_valid_value</span><span class="special">(</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">current_valid_value</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">valid_value_counter</span><span class="special">,</span> <span class="keyword">int</span> <span class="special">&</span><span class="identifier">checksum</span> <span class="special">)</span>
+<span class="special">{</span>
+  <span class="keyword">if</span><span class="special">(</span> <span class="identifier">number_of_virtual_value_skipped</span> <span class="special">==</span> <span class="number">0</span> <span class="special">&&</span> <span class="identifier">valid_value_counter</span> <span class="special">==</span> <span class="identifier">VIN_CHECKDIGIT_POS</span> <span class="special">)</span>
+    <span class="identifier">checksum</span> <span class="special">+=</span> <span class="identifier">current_valid_value</span> <span class="special">;</span>
+  <span class="keyword">else</span>
+  <span class="special">{</span>
+    <span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">weight_position</span> <span class="special">=</span> <span class="identifier">valid_value_counter</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">number_of_virtual_value_skipped</span> <span class="special">==</span> <span class="number">0</span> <span class="special">&&</span> <span class="identifier">valid_value_counter</span> <span class="special">></span> <span class="identifier">VIN_CHECKDIGIT_POS</span><span class="special">)</span> <span class="special">;</span>
+    <span class="keyword">int</span> <span class="identifier">current_weight</span> <span class="special">=</span> <span class="identifier">vin_weight</span><span class="special">::</span><span class="identifier">weight_associated_with_pos</span><span class="special">(</span> <span class="identifier">weight_position</span> <span class="special">)</span> <span class="special">;</span>
+    <span class="identifier">checksum</span> <span class="special">+=</span> <span class="identifier">current_valid_value</span> <span class="special">*</span> <span class="identifier">current_weight</span> <span class="special">;</span>
+  <span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<p>
+        </p>
+<p>
+          Finally the calculation of the check digit is different from the classic
+          modulus 11 algorithm, so we need to re-implement it:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">checkdigit</span><span class="special">></span>
+<span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">checkdigit</span> <span class="identifier">compute_checkdigit</span><span class="special">(</span> <span class="keyword">int</span> <span class="identifier">checksum</span> <span class="special">)</span>
+<span class="special">{</span>
+  <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">modulus11_algorithm</span><span class="special"><</span><span class="identifier">vin_weight</span><span class="special">,</span> <span class="identifier">vin_sense</span><span class="special">,</span> <span class="identifier">number_of_virtual_value_skipped</span><span class="special">></span> <span class="identifier">mod11</span> <span class="special">;</span>
+  <span class="keyword">return</span> <span class="identifier">mod11</span><span class="special">::</span><span class="identifier">translate_checkdigit</span><span class="special"><</span><span class="identifier">checkdigit</span><span class="special">>(</span><span class="identifier">checksum</span> <span class="special">%</span> <span class="number">11</span><span class="special">)</span> <span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        </p>
+<p>
+          We can now write the VIN type algorithm:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">vin_algorithm</span> <span class="special"><</span><span class="number">0</span><span class="special">></span> <span class="identifier">vin_check_algorithm</span> <span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">vin_algorithm</span> <span class="special"><</span><span class="number">1</span><span class="special">></span> <span class="identifier">vin_compute_algorithm</span> <span class="special">;</span>
+</pre>
+<p>
+        </p>
+<p>
+          And write the functions:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">check_range</span><span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">check_vin</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">check_range</span><span class="special">&</span> <span class="identifier">check_seq</span><span class="special">)</span>
+<span class="special">{</span>
+  <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">check_sequence</span><span class="special"><</span><span class="identifier">vin_check_algorithm</span><span class="special">,</span> <span class="identifier">VIN_SIZE</span><span class="special">></span> <span class="special">(</span> <span class="identifier">check_seq</span> <span class="special">)</span> <span class="special">;</span>
+<span class="special">}</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">check_range</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">vin_compute_algorithm</span><span class="special">::</span><span class="identifier">checkdigit</span><span class="special"><</span><span class="identifier">check_range</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">compute_vin</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">check_range</span><span class="special">&</span> <span class="identifier">check_seq</span><span class="special">)</span>
+<span class="special">{</span>
+  <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">compute_checkdigit</span><span class="special"><</span><span class="identifier">vin_compute_algorithm</span><span class="special">,</span> <span class="identifier">VIN_SIZE_WITHOUT_CHECKDIGIT</span><span class="special">></span> <span class="special">(</span> <span class="identifier">check_seq</span> <span class="special">)</span> <span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            This algorithm doesn't support full integer array that are not pre-computed
+            (Example: (A) 10 -> 1 ; (M) 13 -> 4). It can be an exercise for
+            the reader.
+          </p></td></tr>
+</table></div>
+<p>
+          Some basic examples are coded in the file checks_tutorial.cpp:
+        </p>
+<p>
+          [vin_example]
+        </p>
+<p>
+          that provides the following output:
+        </p>
+<p>
+          [vin_example_output]
+        </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 © 2011 Pierre Talbot<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="start.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="../algorithm.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/tutorial/start.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/tutorial/start.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,280 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Starting with Checks</title>
+<link rel="stylesheet" href="../../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../../index.html" title="Checks">
+<link rel="up" href="../tutorial.html" title="Tutorial">
+<link rel="prev" href="../tutorial.html" title="Tutorial">
+<link rel="next" href="extending_the_library.html" title="Extending the library">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../../.././images/proposed_for_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="../tutorial.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="extending_the_library.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="checks.checks.tutorial.start"></a><a class="link" href="start.html" title="Starting with Checks">Starting with Checks</a>
+</h4></div></div></div>
+<p>
+          There are two main functions for each check system.
+        </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+              to validate a sequence: <code class="computeroutput"><span class="identifier">check_</span><span class="special"><</span><span class="identifier">number</span><span class="special">></span></code>.
+            </li>
+<li>
+              to provides a check digit for a sequence: <code class="computeroutput"><span class="identifier">compute_</span><span class="special"><</span><span class="identifier">number</span><span class="special">></span></code>.
+            </li>
+</ul></div>
+<p>
+          All the examples of this section are in the file checks_examples.cpp.
+        </p>
+<a name="checks.checks.tutorial.start.credit_card_numbers_check"></a><h6>
+<a name="checks.checks.tutorial.start.credit_card_numbers_check-heading"></a>
+          <a class="link" href="start.html#checks.checks.tutorial.start.credit_card_numbers_check">Credit
+          card numbers check</a>
+        </h6>
+<p>
+          We will start with some credit card numbers checking.
+        </p>
+<p>
+          Please first include these headers:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">checks</span><span class="special">/</span><span class="identifier">visa</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">checks</span><span class="special">/</span><span class="identifier">amex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">checks</span><span class="special">/</span><span class="identifier">mastercard</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+        </p>
+<p>
+          Three credit card checks are implemented: <a href="http://en.wikipedia.org/wiki/Visa_credit_card" target="_top">Visa
+          credit card</a>, <a href="http://en.wikipedia.org/wiki/Mastercard" target="_top">Mastercard
+          credit card</a>, and American Express. The following examples show
+          us how to compute and check numbers:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">visa_credit_card_number</span> <span class="special">=</span> <span class="string">"4000 0807 0620 0007"</span> <span class="special">;</span>
+<span class="keyword">if</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">check_visa</span><span class="special">(</span> <span class="identifier">visa_credit_card_number</span> <span class="special">)</span> <span class="special">)</span>
+  <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"The VISA credit card number : "</span> <span class="special"><<</span> <span class="identifier">visa_credit_card_number</span> <span class="special"><<</span> <span class="string">" is valid."</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special">;</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">amex_credit_card_number</span> <span class="special">=</span> <span class="string">"3458 2531 9273 09"</span> <span class="special">;</span>
+<span class="keyword">char</span> <span class="identifier">amex_checkdigit</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">compute_amex</span><span class="special">(</span> <span class="identifier">amex_credit_card_number</span> <span class="special">)</span> <span class="special">;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"The check digit of the American Express number : "</span> <span class="special"><<</span> <span class="identifier">amex_credit_card_number</span> <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">amex_checkdigit</span> <span class="special"><<</span> <span class="string">"."</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special">;</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">mastercard_credit_card_number</span> <span class="special">=</span> <span class="string">"5320 1274 8562 157"</span> <span class="special">;</span>
+<span class="identifier">mastercard_credit_card_number</span> <span class="special">+=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">compute_mastercard</span><span class="special">(</span> <span class="identifier">mastercard_credit_card_number</span> <span class="special">);</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"This is a valid Mastercard number : "</span> <span class="special"><<</span> <span class="identifier">mastercard_credit_card_number</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special">;</span>
+
+</pre>
+<p>
+        </p>
+<p>
+          This provides the output:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">The</span> <span class="identifier">VISA</span> <span class="identifier">credit</span> <span class="identifier">card</span> <span class="identifier">number</span> <span class="special">:</span> <span class="number">4000</span> <span class="number">0807</span> <span class="number">0620</span> <span class="number">0007</span> <span class="identifier">is</span> <span class="identifier">valid</span><span class="special">.</span>
+<span class="identifier">The</span> <span class="identifier">check</span> <span class="identifier">digit</span> <span class="identifier">of</span> <span class="identifier">the</span> <span class="identifier">American</span> <span class="identifier">Express</span> <span class="identifier">number</span> <span class="special">:</span> <span class="number">3458</span> <span class="number">2531</span> <span class="number">9273</span> <span class="number">09</span> <span class="identifier">is</span> <span class="number">4.</span>
+<span class="identifier">This</span> <span class="identifier">is</span> <span class="identifier">a</span> <span class="identifier">valid</span> <span class="identifier">Mastercard</span> <span class="identifier">number</span> <span class="special">:</span> <span class="number">5320</span> <span class="number">1274</span> <span class="number">8562</span> <span class="number">1570</span>
+
+</pre>
+<p>
+        </p>
+<a name="checks.checks.tutorial.start.multi_check_digits"></a><h6>
+<a name="checks.checks.tutorial.start.multi_check_digits-heading"></a>
+          <a class="link" href="start.html#checks.checks.tutorial.start.multi_check_digits">Multi check
+          digits</a>
+        </h6>
+<p>
+          Some checks use two check digits, for example, the mod97-10 algorithm used
+          to calculate the check digits of the <a href="http://en.wikipedia.org/wiki/International_Bank_Account_Number" target="_top">International
+          Bank Account Number (IBAN)</a>.
+        </p>
+<p>
+          We add an extra parameter to retrieve the two check digits. The include
+          file is:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">checks</span><span class="special">/</span><span class="identifier">modulus97</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+        </p>
+<p>
+          and the next example shows us how to use this function:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">mod97_10_number</span> <span class="special">=</span> <span class="string">"1234567890123456789"</span> <span class="special">;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">mod97_10_checkdigits</span> <span class="special">=</span> <span class="string">"  "</span> <span class="special">;</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">compute_mod97_10</span> <span class="special">(</span> <span class="identifier">mod97_10_number</span> <span class="special">,</span> <span class="identifier">mod97_10_checkdigits</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">)</span> <span class="special">;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"The number : "</span> <span class="special"><<</span> <span class="identifier">mod97_10_number</span> <span class="special"><<</span> <span class="string">" have the check digits : "</span> <span class="special"><<</span> <span class="identifier">mod97_10_checkdigits</span> <span class="special"><<</span> <span class="string">"."</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special">;</span>
+
+<span class="identifier">mod97_10_number</span> <span class="special">=</span> <span class="string">"85212547851652  "</span> <span class="special">;</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">compute_mod97_10</span> <span class="special">(</span> <span class="identifier">mod97_10_number</span> <span class="special">,</span> <span class="identifier">mod97_10_number</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">-</span> <span class="number">2</span><span class="special">);</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"A complete mod97-10 number : "</span> <span class="special"><<</span> <span class="identifier">mod97_10_number</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special">;</span>
+
+</pre>
+<p>
+        </p>
+<p>
+          which provides the output:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">The</span> <span class="identifier">number</span> <span class="special">:</span> <span class="number">1234567890123456789</span> <span class="identifier">have</span> <span class="identifier">the</span> <span class="identifier">check</span> <span class="identifier">digits</span> <span class="special">:</span> <span class="number">68.</span>
+<span class="identifier">A</span> <span class="identifier">complete</span> <span class="identifier">mod97</span><span class="special">-</span><span class="number">10</span> <span class="identifier">number</span> <span class="special">:</span> <span class="number">8521254785165211</span>
+
+</pre>
+<p>
+        </p>
+<a name="checks.checks.tutorial.start.catching_errors"></a><h6>
+<a name="checks.checks.tutorial.start.catching_errors-heading"></a>
+          <a class="link" href="start.html#checks.checks.tutorial.start.catching_errors">Catching errors</a>
+        </h6>
+<p>
+          We will now see how the library reacts with simple errors. The first error
+          is that the number of characters (size of sequence) doesn't fit the requirements.
+          The second error shows that some number must respect pattern, here the
+          three first digit of an ISBN-13 must be "978" or "979".
+          An exception is throwed if any one of these errors are encountered. We
+          will use the <a href="http://en.wikipedia.org/wiki/European_Article_Number" target="_top">International
+          Article Number (EAN)</a> and <a href="http://en.wikipedia.org/wiki/Isbn" target="_top">International
+          Standard Book Number (ISBN)</a> headers:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">checks</span><span class="special">/</span><span class="identifier">ean</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">checks</span><span class="special">/</span><span class="identifier">isbn</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+        </p>
+<p>
+          Two examples of number error:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">ean13_number</span> <span class="special">=</span> <span class="string">"540011301748"</span> <span class="special">;</span> <span class="comment">// Incorrect size.</span>
+<span class="keyword">try</span>
+<span class="special">{</span>
+  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">check_ean13</span> <span class="special">(</span> <span class="identifier">ean13_number</span> <span class="special">)</span> <span class="special">;</span>
+<span class="special">}</span>
+<span class="keyword">catch</span> <span class="special">(</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">invalid_argument</span> <span class="identifier">e</span> <span class="special">)</span>
+<span class="special">{</span>
+  <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special">;</span>
+<span class="special">}</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">isbn13_number</span> <span class="special">=</span> <span class="string">"977-0321227256"</span> <span class="special">;</span> <span class="comment">// Third digit altered.</span>
+<span class="keyword">try</span>
+<span class="special">{</span>
+  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">check_isbn13</span><span class="special">(</span> <span class="identifier">isbn13_number</span> <span class="special">);</span>
+<span class="special">}</span>
+<span class="keyword">catch</span> <span class="special">(</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">invalid_argument</span> <span class="identifier">e</span> <span class="special">)</span>
+<span class="special">{</span>
+  <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special">;</span>
+<span class="special">}</span>
+
+</pre>
+<p>
+        </p>
+<p>
+          The output shows us the detailed message the exception provides:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">Too</span> <span class="identifier">few</span> <span class="keyword">or</span> <span class="identifier">too</span> <span class="identifier">much</span> <span class="identifier">valid</span> <span class="identifier">values</span> <span class="identifier">in</span> <span class="identifier">the</span> <span class="identifier">sequence</span><span class="special">.</span>
+<span class="identifier">The</span> <span class="identifier">third</span> <span class="identifier">digit</span> <span class="identifier">should</span> <span class="identifier">be</span> <span class="number">8</span> <span class="keyword">or</span> <span class="number">9.</span>
+
+</pre>
+<p>
+        </p>
+<a name="checks.checks.tutorial.start.and_with_integer_array"></a><h6>
+<a name="checks.checks.tutorial.start.and_with_integer_array-heading"></a>
+          <a class="link" href="start.html#checks.checks.tutorial.start.and_with_integer_array">And
+          with integer array</a>
+        </h6>
+<p>
+          The C-arrays of integers are also supported. In the other examples, we
+          check "number" but with an ASCII code, we can use integer value
+          as well. The following will show us the result of the computation of two
+          same numbers but in different format. We'll use the header:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">checks</span><span class="special">/</span><span class="identifier">isbn</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+        </p>
+<p>
+          And the examples:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">isbn10_number</span> <span class="special">=</span> <span class="string">"020163371"</span> <span class="special">;</span> <span class="comment">// More Effective C++: 35 New Ways to Improve Your Programs and Designs, Scott Meyers.</span>
+<span class="keyword">int</span> <span class="identifier">isbn10_integer_number</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span><span class="number">0</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">0</span><span class="special">,</span><span class="number">1</span><span class="special">,</span><span class="number">6</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">1</span><span class="special">}</span> <span class="special">;</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"ISBN10 : "</span> <span class="special"><<</span> <span class="identifier">isbn10_number</span> <span class="special"><<</span> <span class="string">". Check digit : "</span> <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">compute_isbn10</span><span class="special">(</span> <span class="identifier">isbn10_number</span> <span class="special">)</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special">;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"ISBN10 integer version. Check digit : "</span> <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">checks</span><span class="special">::</span><span class="identifier">compute_isbn10</span><span class="special">(</span> <span class="identifier">isbn10_integer_number</span> <span class="special">)</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special">;</span>
+
+</pre>
+<p>
+        </p>
+<p>
+          As you can see in the output, the "X" check digit is represented
+          by its integer value (10) with the integer C-array:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">ISBN10</span> <span class="special">:</span> <span class="number">020163371</span><span class="special">.</span> <span class="identifier">Check</span> <span class="identifier">digit</span> <span class="special">:</span> <span class="identifier">X</span>
+<span class="identifier">ISBN10</span> <span class="identifier">integer</span> <span class="identifier">version</span><span class="special">.</span> <span class="identifier">Check</span> <span class="identifier">digit</span> <span class="special">:</span> <span class="number">10</span>
+
+</pre>
+<p>
+        </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 © 2011 Pierre Talbot<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="../tutorial.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="extending_the_library.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/version_id.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks/checks/version_id.html	2011-09-05 13:49:22 EDT (Mon, 05 Sep 2011)
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Version Info</title>
+<link rel="stylesheet" href="../.././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="../../index.html" title="Checks">
+<link rel="up" href="../checks.html" title="Checks">
+<link rel="prev" href="history.html" title="History">
+<link rel="next" href="../../checks_reference.html" title="Checks Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src="../.././images/proposed_for_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="history.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../../checks_reference.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="checks.checks.version_id"></a><a class="link" href="version_id.html" title="Version Info">Version Info</a>
+</h3></div></div></div>
+<p>
+        Last edit to Quickbook file checks.qbk was at 03:18:56 PM on 2011-Sep-05.
+      </p>
+<div class="warning"><table border="0" summary="Warning">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../images/warning.png"></td>
+<th align="left">Warning</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          Home page "Last revised" is GMT, not local time. Last edit date
+          is local time.
+        </p></td></tr>
+</table></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 © 2011 Pierre Talbot<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="history.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../checks.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../../checks_reference.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>