Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r74022 - in sandbox/SOC/2011/checks/libs/checks: doc doc/doxygen/html doc/html example
From: pbristow_at_[hidden]
Date: 2011-08-23 13:44:21


Author: pbristow
Date: 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
New Revision: 74022
URL: http://svn.boost.org/trac/boost/changeset/74022

Log:
Many editorial changes, 1st pass.
Binary files modified:
   sandbox/SOC/2011/checks/libs/checks/doc/checks.pdf
Text files modified:
   sandbox/SOC/2011/checks/libs/checks/doc/algorithm.qbk | 21
   sandbox/SOC/2011/checks/libs/checks/doc/checks.qbk | 93
   sandbox/SOC/2011/checks/libs/checks/doc/conventions.qbk | 9
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/amex_8hpp.html | 82 +
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/amex_8hpp_source.html | 69
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/checks__fwd_8hpp.html | 86 +
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/checks__fwd_8hpp_source.html | 172 +
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/ean_8hpp.html | 136 ++
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/ean_8hpp_source.html | 82
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/files.html | 48
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/globals.html | 52
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/globals_vars.html | 6
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/index.html | 8
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/isbn_8hpp.html | 96 +
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/isbn_8hpp_source.html | 142 +-
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/luhn_8hpp.html | 28
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/luhn_8hpp_source.html | 112
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/mastercard_8hpp.html | 82 +
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/mastercard_8hpp_source.html | 68
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespaceboost.html | 13
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespaceboost_1_1checks.html | 2420 +++++++++++++++++++++++++++------------
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespacemembers.html | 156 +
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespacemembers_func.html | 123 -
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespaces.html | 8
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/radix32_check_8cpp.html | 6
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/radix32_check_8cpp_source.html | 6
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/upc_8hpp.html | 87 +
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/upc_8hpp_source.html | 83
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/verhoeff_8hpp.html | 29
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/verhoeff_8hpp_source.html | 212 +-
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/visa_8hpp.html | 82 +
   sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/visa_8hpp_source.html | 65
   sandbox/SOC/2011/checks/libs/checks/doc/errors.qbk | 29
   sandbox/SOC/2011/checks/libs/checks/doc/html/boostbook.css | 35
   sandbox/SOC/2011/checks/libs/checks/doc/html/checks_reference.html | 34
   sandbox/SOC/2011/checks/libs/checks/doc/html/index.html | 67
   sandbox/SOC/2011/checks/libs/checks/doc/introduction.qbk | 19
   sandbox/SOC/2011/checks/libs/checks/doc/modulus.qbk | 74
   sandbox/SOC/2011/checks/libs/checks/doc/tutorial.qbk | 142 +
   sandbox/SOC/2011/checks/libs/checks/example/checks_examples.cpp | 18
   sandbox/SOC/2011/checks/libs/checks/example/vin.hpp | 18
   41 files changed, 3485 insertions(+), 1633 deletions(-)

Modified: sandbox/SOC/2011/checks/libs/checks/doc/algorithm.qbk
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/algorithm.qbk (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/algorithm.qbk 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -9,19 +9,20 @@
 
 [section:algorithm Common check algorithms]
 
-This section will describe the algorithms used in Boost.Checks.
-A check algorithm is firstly design to:
+This section will discuss the objectives of the algorithms used in Boost.Checks.
+A check algorithm is firstly designed to:
 
-# Catch the most errors as possible that a human can do.
-# Minimize the cost of the check digit - fast computation - and the size of the check digit.
+# Catch the most errors as possible that a human (or machine) can make.
+# Minimize the cost of the check digit for fast computation.
+# Minimize the size (or number) of the check digit(s).
 
 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 __IBAN) use two check digits.
+between the size or the efficiency.
+Critical numbers, for example, the __IBAN, use two check digits.
 
-The main difference with these algorithm 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 equal to 123.
+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 [~123].
 
 [table:summary Error catching summary
 [[][1 Alteration] [2 Alterations] [Twin transpositions] ]
@@ -29,4 +30,4 @@
 [[Verhoeff] [18/18 (100%)] [] [90/90 (100%)]]
 ]
 
-[endsect]
\ No newline at end of file
+[endsect] [/section:algorithm Common check algorithms]

Modified: sandbox/SOC/2011/checks/libs/checks/doc/checks.pdf
==============================================================================
Binary files. No diff available.

Modified: sandbox/SOC/2011/checks/libs/checks/doc/checks.qbk
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/checks.qbk (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/checks.qbk 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -1,4 +1,4 @@
-[article Boost.Checks
+[article Boost_Checks
     [quickbook 1.5]
     [copyright 2011 Pierre Talbot]
     [license
@@ -17,6 +17,9 @@
 [/Note too that it can't be used for images.]
 [def __boostlicense [@http://www.boost.org/LICENSE_1_0.txt Boost License]]
 
+[def __GSOC [@http://code.google.com/soc/2011/boost/about.html Google Summer of Code project (2011)]]
+
+
 [def __CHECKS__HIERARCHY__ [$images/checks/check_hierarchy.png]]
 [def __EXTENDS__LIBRARY__ [link boost_checks.checks.tutorial.extending_the_library extending the library]]
 
@@ -27,12 +30,19 @@
 [def __CHECKS__TUTO__FILE__ [@../../example/checks_tutorial.cpp checks_tutorial.cpp]]
 [def __CHECKS__EXAMPLE__FILE__ [@../../example/checks_examples.cpp checks_examples.cpp]]
 
+[def __VISA [@http://en.wikipedia.org/wiki/Visa_credit_card Visa credit card]]
+[def __MASTERCARD [@http://en.wikipedia.org/wiki/Mastercard Mastercard credit card]]
+[def __AMEX [@http://en.wikipedia.org/wiki/American_Express American Express]]
 [def __ISBN [@http://en.wikipedia.org/wiki/Isbn International Standard Book Number (ISBN)]]
 [def __ISSN [@http://en.wikipedia.org/wiki/International_Standard_Serial_Number International Standard Serial Number (ISSN)]]
 [def __IBAN [@http://en.wikipedia.org/wiki/International_Bank_Account_Number International Bank Account Number (IBAN)]]
 [def __VIN [@http://en.wikipedia.org/wiki/Vehicle_identification_number Vehicle Identification Number (VIN)]]
 [def __RTN [@http://en.wikipedia.org/wiki/Routing_transit_number Routing transit number (RTN)]]
 [def __CODE39 [@http://en.wikipedia.org/wiki/Code_39 Code 39]]
+[def __EAN [@http://en.wikipedia.org/wiki/European_Article_Number International Article Number (EAN)]]
+
+[def __types_of_errors [link boost_checks.checks.errors types of error]]
+[def __overview [link boost_checks.checks.overview Overview]]
 
 [def __spaces '''  '''] [/ two spaces - useful for an indent.]
 
@@ -40,13 +50,16 @@
 
 [section:preface Preface]
 
-The checks are required in a numerous kind of domains such as the distribution chain (bar codes),
-the cards number (bank, fidelity cards, ...) and many others. These codes and numbers are often
-copied or scanned by humans or machines, and both make errors. We need a way to control it and this
-is why the check digit has been designed. A check digit is aimed to control the validity of a number
-and catch the maximum mismatched input (we'll detail further the different errors).
+The checks are required in numerous domains such as the distribution chain (bar codes),
+banking (bank account, credit cards, fidelity cards, ...) and many others.
+These codes and numbers are often 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. A check digit aimes to control the validity of a number
+and catch the as many changes as possible.
+(__types_of_errors discuss possible alterations and their detection).
+
 
-[endsect][/section:preface Preface]
+[endsect] [/section:preface Preface]
 
 [section:overview Overview]
 This library provides a collection of functions for validating and creating check digits.
@@ -58,32 +71,38 @@
 # checksums like CRC32, for catching data transmission errors.
 # and cryptographic hash functions, the only ones useful against malicious adversaries.
 
-These are primarily for the first category : catching human-entry errors (though it obviously also
-provides against a mis-scan by a device like a bar code or card reader.)
-Actually, this library supports four families of check : Modulus 10, Modulus 11, Modulus 97-10
-and Verhoeff. A lot of other checks are inherited from these families, the following diagram
-shows the hierachy used in Boost.Checks:
+These 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.)
 
-__CHECKS__HIERARCHY__
+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.
+
+The following diagram shows the hierachy used in Boost.Checks:
 
-You can find numerous check algorithm, and this is why this library is design to help you to create your own check.
-If you are interested, please consult __EXTENDS__LIBRARY__.
+__CHECKS__HIERARCHY__
 
+Numerous check algorithms are in use worldwide,
+and this is why this library is designed to help you to cater
+for these less common checks, and even to create your own check systems.
+If you are interested, see __EXTENDS__LIBRARY__.
 
-[important This is not (yet) an official Boost library. It was a
-[@http://code.google.com/soc/2011/boost/about.html Google Summer of Code project (2011)]
+[important This is not (yet) an official Boost library. It was a __GSOC
 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
 
-[*https://svn.boost.org/svn/boost/sandbox/SOC/2011/checks/libs/checks/doc/pdf/checks.pdf PDF documentation]
+[*https://svn.boost.org/svn/boost/sandbox/SOC/2011/checks/libs/checks/doc/pdf/checks.pdf PDF documentation.]
 
-[*https://svn.boost.org/svn/boost/sandbox/SOC/2011/checks/libs/checks/doc/html/index.html HTML documentation]
+[*https://svn.boost.org/svn/boost/sandbox/SOC/2011/checks/libs/checks/doc/html/index.html HTML documentation.]
 
-[*https://svn.boost.org/svn/boost/sandbox/SOC/2011/checks/boost/checks/boost/ Boost Sandbox checks source code]
+[*https://svn.boost.org/svn/boost/sandbox/SOC/2011/checks/boost/checks/boost/ Boost Sandbox checks source code.]
+]
 
 [note Comments and suggestions (even bugs!) to Pierre Talbot pierre.talbot.6114 (at) herslibramont (dot) be]
+
 [include conventions.qbk]
+
 [endsect] [/section:overview Overview]
 
 [include tutorial.qbk]
@@ -93,7 +112,8 @@
 
 [section:acks Acknowledgements]
 
-* Thanks to Paul A. Bristow who is the mentor of this project for her infinite patience and his wise advices.
+* Thanks to Paul A. Bristow who is the mentor of this Google Summber of Code project for his infinite patience and his wise advice.
+* Thanks for Google for funding this Google Summber of Code 2011 project.
 
 [endsect] [/section:acks Acknowledgements]
 
@@ -116,18 +136,8 @@
 
 This section records the rationale and compromises for some design decisions.
 
-[h4 Function parameter]
-
-* For more flexibility, this library use the range concept. So you can use old C-array or
-std::string,...
-* 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.
-* 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.
 
 [h4 Scope of the project]
-
 *Scott McMurray has identifed four fairly distinct types of check:
   # ISBN/ISSN/UPC/EAN/VISA/etc, for catching human-entry errors.
   # hash functions as in hash tables, which only care about distribution.
@@ -137,10 +147,27 @@
 This project is directed first at the first class.
 Others might be the subject of future additions or other libraries.
 
+[h4 Function parameter]
+
+* For more flexibility, this library uses the range concept. So you can use old C-array or
+std::string,...
+* 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.
+* 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.
+
+[h4 Use of template parameters to pass size and weights]
+* This feature means that much of the commonality between the various check systems
+can be implemented in one place and reused.
+* 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.
+
 [h4 Performance]
 
 * Performance is not a major objective, but all the current algorithms
-are implemented with a O(n) complexity.
+are implemented with a ['O(n)] complexity, where ['n] is the number of digits or characters.
 
 [endsect] [/section:rationale Rationale]
 
@@ -148,7 +175,7 @@
 
 # Project started by Pierre Talbot June 2011 as a Google Summer of Code Project.
 
-# First release in Boost Sandbox for public comment ????
+# First release in Boost Sandbox for public comment Aug 2011.
 
 [endsect] [/section:history History]
 

Modified: sandbox/SOC/2011/checks/libs/checks/doc/conventions.qbk
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/conventions.qbk (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/conventions.qbk 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -1,7 +1,8 @@
 [section:conventions Document Conventions]
 
-* [*Tutorials] are listed in the ['Table of Contents] and include many examples that should help you get started quickly.
-* [*Source code] of the many ['Examples] will often be your quickest start.
+* [*Tutorials] are listed in the ['Table of Contents] and
+include many examples that should help you get started quickly.
+* [*Source code] of the many ['Examples] will often be your quickest starting point.
 * [*Reference section] prepared using Doxygen will provide the function and class signatures,
 but there is also an ['index] of these.
 * The main ['index] will also help,
@@ -10,11 +11,11 @@
 
 This documentation makes use of the following naming and formatting conventions.
 
-* C++ Code is in `fixed width font` and is syntax-highlighted.
+* C++ Code is in `fixed width font` and is syntax-highlighted in color.
 * Other code is in [^teletype fixed-width font].
 * Replaceable text that you will need to supply is in [~italics].
 * If a name refers to a free function, it is specified like this:
- `free_function()`; that is, it is in code font and its name is followed by `()`
+ `free_function()`; that is, it is in [~code font] and its name is followed by `()`
   to indicate that it is a free function.
 * If a name refers to a class template, it is specified like this:
   `class_template<>`; that is, it is in code font and its name is followed by `<>`

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/amex_8hpp.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/amex_8hpp.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/amex_8hpp.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:53 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -63,21 +63,91 @@
 </div>
 <div class="header">
   <div class="summary">
-Namespaces </div>
+Classes &#124;
+Namespaces &#124;
+Defines &#124;
+Typedefs &#124;
+Functions </div>
   <div class="headertitle">
 <div class="title">I:/boost-sandbox/SOC/2011/checks/boost/checks/amex.hpp File Reference</div> </div>
 </div>
 <div class="contents">
 
+<p>This file provides tools to compute and validate an American Express credit card number.
+More...</p>
+<div class="textblock"><code>#include &lt;<a class="el" href="luhn_8hpp_source.html">boost/checks/luhn.hpp</a>&gt;</code><br/>
+</div>
 <p>Go to the source code of this file.</p>
 <table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1amex__algorithm.html">boost::checks::amex_algorithm&lt; number_of_virtual_value_skipped &gt;</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class can be used to compute or validate checksum with the Luhn algorithm but filter following the amex pattern. More...<br/></td></tr>
 <tr><td colspan="2"><h2><a name="namespaces"></a>
 Namespaces</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Boost <a class="el" href="crc_8hpp.html">checks/crc.hpp</a> header file ------------------------------------//. </p>
-<br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html">boost::checks</a></td></tr>
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="amex_8hpp.html#a19c07a8362d0a4c5a3845acc0019d548">AMEX_SIZE</a>&#160;&#160;&#160;15</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This macro defines the size of a American Express number. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="amex_8hpp.html#ab5f7314649ce4fd8d8a00091ab2aa54f">AMEX_SIZE_WITHOUT_CHECKDIGIT</a>&#160;&#160;&#160;14</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This macro defines the size of a American Express number without its check digit. <br/></td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef amex_algorithm&lt; 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ad6e89cce2497202c43286e24ee800903">boost::checks::amex_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Amex algorithm for validating a check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef amex_algorithm&lt; 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a8e61204056ca87bdb92f246c12774b5d">boost::checks::amex_compute_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Amex algorithm for computing a check digit. <br/></td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a2aff225983f36758feaba34662173b53">boost::checks::check_amex</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the amex_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::amex_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a04b6c190de7e9bb7a99841a8ad996459">boost::checks::compute_amex</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the amex_compute_algorithm type. <br/></td></tr>
 </table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file provides tools to compute and validate an American Express credit card number. </p>
+
+<p>Definition in file <a class="el" href="amex_8hpp_source.html">amex.hpp</a>.</p>
+</div><hr/><h2>Define Documentation</h2>
+<a class="anchor" id="a19c07a8362d0a4c5a3845acc0019d548"></a><!-- doxytag: member="amex.hpp::AMEX_SIZE" ref="a19c07a8362d0a4c5a3845acc0019d548" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define AMEX_SIZE&#160;&#160;&#160;15</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This macro defines the size of a American Express number. </p>
+
+<p>Definition at line <a class="el" href="amex_8hpp_source.html#l00024">24</a> of file <a class="el" href="amex_8hpp_source.html">amex.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab5f7314649ce4fd8d8a00091ab2aa54f"></a><!-- doxytag: member="amex.hpp::AMEX_SIZE_WITHOUT_CHECKDIGIT" ref="ab5f7314649ce4fd8d8a00091ab2aa54f" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define AMEX_SIZE_WITHOUT_CHECKDIGIT&#160;&#160;&#160;14</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This macro defines the size of a American Express number without its check digit. </p>
+
+<p>Definition at line <a class="el" href="amex_8hpp_source.html#l00028">28</a> of file <a class="el" href="amex_8hpp_source.html">amex.hpp</a>.</p>
+
+</div>
+</div>
 </div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
 
@@ -97,7 +167,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:53</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/amex_8hpp_source.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/amex_8hpp_source.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/amex_8hpp_source.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:52 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -65,26 +65,61 @@
 <div class="title">I:/boost-sandbox/SOC/2011/checks/boost/checks/amex.hpp</div> </div>
 </div>
 <div class="contents">
-Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 / Boost checks/amex.hpp header file ------------------------------------<span class="comment">//</span>
+Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// Boost checks/amex.hpp header file ------------------------------------//</span>
 <a name="l00002"></a>00002 <span class="comment">// (C) Copyright Pierre Talbot 2011</span>
 <a name="l00003"></a>00003 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
 <a name="l00004"></a>00004 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
 <a name="l00005"></a>00005 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt>
 <a name="l00006"></a>00006 <span class="comment">// See
http://www.boost.org for updates, documentation, and revision history.</span>
 <a name="l00007"></a>00007
-<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_AMEX_INCLUDED</span>
-<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_AMEX_INCLUDED</span>
-<a name="l00010"></a>00010 <span class="preprocessor"></span>
-<a name="l00011"></a>00011
-<a name="l00012"></a>00012 <span class="keyword">namespace </span>boost {
-<a name="l00013"></a>00013 <span class="keyword">namespace </span>checks{
-<a name="l00014"></a>00014
-<a name="l00015"></a>00015 <span class="comment">/* American express : use luhn algorithm */</span>
-<a name="l00016"></a>00016
-<a name="l00017"></a>00017 } <span class="comment">// namespace checks</span>
-<a name="l00018"></a>00018 } <span class="comment">// namespace boost</span>
-<a name="l00019"></a>00019
-<a name="l00020"></a>00020 <span class="preprocessor">#endif</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#ifndef BOOST_CHECKS_AMEX_HPP</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_CHECKS_AMEX_HPP</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span>
+<a name="l00015"></a>00015 <span class="preprocessor">#ifdef _MSC_VER</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor"> #pragma once</span>
+<a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00018"></a>00018 <span class="preprocessor"></span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include &lt;<a class="code" href="luhn_8hpp.html" title="This file provides tools to compute and validate sequence with the Luhn algorithm.">boost/checks/luhn.hpp</a>&gt;</span>
+<a name="l00020"></a>00020
+<a name="l00024"></a><a class="code" href="amex_8hpp.html#a19c07a8362d0a4c5a3845acc0019d548">00024</a> <span class="preprocessor">#define AMEX_SIZE 15</span>
+<a name="l00025"></a>00025 <span class="preprocessor"></span>
+<a name="l00028"></a><a class="code" href="amex_8hpp.html#ab5f7314649ce4fd8d8a00091ab2aa54f">00028</a> <span class="preprocessor">#define AMEX_SIZE_WITHOUT_CHECKDIGIT 14</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span>
+<a name="l00030"></a><a class="code" href="namespaceboost.html">00030</a> <span class="keyword">namespace </span>boost {
+<a name="l00031"></a><a class="code" href="namespaceboost_1_1checks.html">00031</a> <span class="keyword">namespace </span>checks{
+<a name="l00032"></a>00032
+<a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> number_of_virtual_value_skipped = 0&gt;
+<a name="l00039"></a><a class="code" href="structboost_1_1checks_1_1amex__algorithm.html">00039</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1checks_1_1amex__algorithm.html" title="This class can be used to compute or validate checksum with the Luhn algorithm but filter following t...">amex_algorithm</a> : boost::checks::<a class="code" href="structboost_1_1checks_1_1luhn__algorithm.html" title="This class can be used to compute or validate checksum with the Luhn algorithm.">luhn_algorithm</a> &lt; number_of_virtual_value_skipped &gt;
+<a name="l00040"></a>00040 {
+<a name="l00051"></a><a class="code" href="structboost_1_1checks_1_1amex__algorithm.html#ad39e37908dfc13862bfda90d36d77d1a">00051</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1checks_1_1amex__algorithm.html#ad39e37908dfc13862bfda90d36d77d1a" title="Verify that a number matches the amex pattern.">filter_valid_value_with_pos</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_valid_value, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_value_position )
+<a name="l00052"></a>00052 {
+<a name="l00053"></a>00053 <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> real_pos_from_left = <a class="code" href="amex_8hpp.html#a19c07a8362d0a4c5a3845acc0019d548" title="This macro defines the size of a American Express number.">AMEX_SIZE</a> - current_value_position - number_of_virtual_value_skipped ;
+<a name="l00054"></a>00054
+<a name="l00055"></a>00055 <span class="keywordflow">if</span>( real_pos_from_left == 1 &amp;&amp; current_valid_value != 3)
+<a name="l00056"></a>00056 <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;The Major Industry Identifier of an American Express should be 3.&quot;</span>) ;
+<a name="l00057"></a>00057 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( real_pos_from_left == 2 &amp;&amp; current_valid_value != 4 &amp;&amp; current_valid_value != 7 )
+<a name="l00058"></a>00058 <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;The Issuer Identification Number of an American Express should be 34 or 37.&quot;</span> ) ;
+<a name="l00059"></a>00059 }
+<a name="l00060"></a>00060 };
+<a name="l00061"></a>00061
+<a name="l00065"></a><a class="code" href="namespaceboost_1_1checks.html#ad6e89cce2497202c43286e24ee800903">00065</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1amex__algorithm.html" title="This class can be used to compute or validate checksum with the Luhn algorithm but filter following t...">amex_algorithm&lt;0&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#ad6e89cce2497202c43286e24ee800903" title="This is the type of the Amex algorithm for validating a check digit.">amex_check_algorithm</a> ;
+<a name="l00069"></a><a class="code" href="namespaceboost_1_1checks.html#a8e61204056ca87bdb92f246c12774b5d">00069</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1amex__algorithm.html" title="This class can be used to compute or validate checksum with the Luhn algorithm but filter following t...">amex_algorithm&lt;1&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a8e61204056ca87bdb92f246c12774b5d" title="This is the type of the Amex algorithm for computing a check digit.">amex_compute_algorithm</a> ;
+<a name="l00070"></a>00070
+<a name="l00084"></a>00084 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00085"></a><a class="code" href="namespaceboost_1_1checks.html#a2aff225983f36758feaba34662173b53">00085</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a2aff225983f36758feaba34662173b53" title="Validate a sequence according to the amex_check_algorithm type.">check_amex</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00086"></a>00086 {
+<a name="l00087"></a>00087 <span class="keywordflow">return</span> boost::checks::check_sequence&lt;amex_check_algorithm, AMEX_SIZE&gt; ( check_seq ) ;
+<a name="l00088"></a>00088 }
+<a name="l00089"></a>00089
+<a name="l00104"></a>00104 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00105"></a><a class="code" href="namespaceboost_1_1checks.html#a04b6c190de7e9bb7a99841a8ad996459">00105</a> <span class="keyword">typename</span> boost::checks::amex_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a04b6c190de7e9bb7a99841a8ad996459" title="Calculate the check digit of a sequence according to the amex_compute_algorithm type.">compute_amex</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00106"></a>00106 {
+<a name="l00107"></a>00107 <span class="keywordflow">return</span> boost::checks::compute_checkdigit&lt;amex_compute_algorithm, AMEX_SIZE_WITHOUT_CHECKDIGIT&gt; ( check_seq ) ;
+<a name="l00108"></a>00108 }
+<a name="l00109"></a>00109
+<a name="l00110"></a>00110
+<a name="l00111"></a>00111 }}
+<a name="l00112"></a>00112 <span class="preprocessor">#endif</span>
 </pre></div></div>
 </div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
@@ -105,7 +140,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:52</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/checks__fwd_8hpp.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/checks__fwd_8hpp.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/checks__fwd_8hpp.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:53 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -76,55 +76,131 @@
 <code>#include &lt;<a class="el" href="verhoeff_8hpp_source.html">boost/checks/verhoeff.hpp</a>&gt;</code><br/>
 <code>#include &lt;<a class="el" href="modulus11_8hpp_source.html">boost/checks/modulus11.hpp</a>&gt;</code><br/>
 <code>#include &lt;<a class="el" href="modulus97_8hpp_source.html">boost/checks/modulus97.hpp</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="ean_8hpp_source.html">boost/checks/ean.hpp</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="isbn_8hpp_source.html">boost/checks/isbn.hpp</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="upc_8hpp_source.html">boost/checks/upc.hpp</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="amex_8hpp_source.html">boost/checks/amex.hpp</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="visa_8hpp_source.html">boost/checks/visa.hpp</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="mastercard_8hpp_source.html">boost/checks/mastercard.hpp</a>&gt;</code><br/>
 </div>
 <p>Go to the source code of this file.</p>
 <table class="memberdecls">
 <tr><td colspan="2"><h2><a name="namespaces"></a>
 Namespaces</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Boost <a class="el" href="crc_8hpp.html">checks/crc.hpp</a> header file ------------------------------------//. </p>
-<br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html">boost::checks</a></td></tr>
 <tr><td colspan="2"><h2><a name="func-members"></a>
 Functions</h2></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a36a3ea230792e9f9ba0c02ce1c46354c">boost::checks::check_luhn</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the luhn_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a2651a01fc5a7a3eec7381f18fcb04295">boost::checks::check_luhn</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the luhn_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::luhn_compute_algorithm::checkdigit<br class="typebreak"/>
 &lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a8f86db1b7d82751de71288456d4edf0a">boost::checks::compute_luhn</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the luhn_compute_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::luhn_compute_algorithm::checkdigit<br class="typebreak"/>
 &lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a72f611fe14c840774de011e0271eb4b0">boost::checks::compute_luhn</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the luhn_compute_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#abe6ccc42ec484aac046ea80bfaad4ae4">boost::checks::check_verhoeff</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the verhoeff_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a86e8991bc68fab9958a902b140bd05c6">boost::checks::check_verhoeff</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the verhoeff_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::verhoeff_compute_algorithm::checkdigit<br class="typebreak"/>
 &lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a069b69920cc6182e4bd0f1414cdc7747">boost::checks::compute_verhoeff</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the verhoeff_compute_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::verhoeff_compute_algorithm::checkdigit<br class="typebreak"/>
 &lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a4bcb041b2939d1b52d223b9372b24536">boost::checks::compute_verhoeff</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the verhoeff_compute_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#acb7e8e0940822a9cb6836251c064e03f">boost::checks::check_modulus11</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the mod11_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a2d76774a0b153e9046cd18823cc12dd6">boost::checks::check_modulus11</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the mod11_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::mod11_compute_algorithm::checkdigit<br class="typebreak"/>
 &lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a65a3b463188c57b0991eeb513e36817d">boost::checks::compute_modulus11</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the mod11_compute_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::mod11_compute_algorithm::checkdigit<br class="typebreak"/>
 &lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a9cb1939fed27705a86a2e609c49e35e5">boost::checks::compute_modulus11</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the mod11_compute_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#afbc1a04be2d50c0caeb8f15237930513">boost::checks::check_mod97_10</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the mod97_10_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#aa32d98f0c9606a1d46786a57151c81ab">boost::checks::check_mod97_10</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the mod97_10_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range , typename checkdigits_iter &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">checkdigits_iter&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#aa4c7db694c89fb4ba0a2b288776c66f3">boost::checks::compute_mod97_10</a> (const check_range &amp;check_seq, checkdigits_iter mod97_checkdigits)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digits of a sequence according to the mod97_10_compute_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range , typename checkdigits_iter &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">checkdigits_iter&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a8f1e84d2acc21b23ebe972ca73a879b7">boost::checks::compute_mod97_10</a> (const check_range &amp;check_seq, checkdigits_iter mod97_checkdigits)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digits of a sequence according to the mod97_10_compute_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a99f1f79f65b14f9f2c68477c69ab7420">boost::checks::check_ean13</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the ean_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::ean_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ac08dd90c2f9518ad9f9addb3863db98e">boost::checks::compute_ean13</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the ean_compute_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a1d5df84c16aa8c879214bf8f6a6993ea">boost::checks::check_ean8</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the ean_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::ean_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#adb63ff3a11463aba48f55b5d96dfada1">boost::checks::compute_ean8</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the ean_compute_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#af52b5d0c188f321561b69f312c93b336">boost::checks::check_isbn10</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the mod11_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::mod11_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a41519cb136ca0786262764baa7b4622f">boost::checks::compute_isbn10</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the mod11_compute_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a787f7cd04f5561dcdadff392c5af0bee">boost::checks::check_isbn13</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the isbn13_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::isbn13_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a5dd55ec9238d3d11527546f34d5ce2db">boost::checks::compute_isbn13</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the isbn13_compute_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a944d9977c2db906b76346bc76928f06d">boost::checks::check_upca</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the upc_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::upc_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ae494e5fd020da1bacf88547eda843b81">boost::checks::compute_upca</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the upc_compute_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a2aff225983f36758feaba34662173b53">boost::checks::check_amex</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the amex_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::amex_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a04b6c190de7e9bb7a99841a8ad996459">boost::checks::compute_amex</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the amex_compute_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ab59d983a0e6f7df034570cdf7e14bdcb">boost::checks::check_visa</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the visa_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::visa_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a4770ebdffc040e9cc9cb1fb6f1d75457">boost::checks::compute_visa</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the visa_compute_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ae9e7b0798732cefb3c6d51a4cc68d09c">boost::checks::check_mastercard</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the mastercard_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::mastercard_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a0f8b86d5edf6cc569f494bb890c83dcc">boost::checks::compute_mastercard</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the mastercard_compute_algorithm type. <br/></td></tr>
 </table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>Boost.Checks forward declaration of function signatures. </p>
@@ -150,7 +226,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:53</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/checks__fwd_8hpp_source.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/checks__fwd_8hpp_source.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/checks__fwd_8hpp_source.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:52 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -82,74 +82,142 @@
 <a name="l00056"></a>00056 <span class="preprocessor"></span>
 <a name="l00057"></a>00057 <span class="preprocessor">#ifdef _MSC_VER</span>
 <a name="l00058"></a>00058 <span class="preprocessor"></span><span class="preprocessor"> #pragma once</span>
-<a name="l00059"></a>00059 <span class="preprocessor"></span><span class="preprocessor">#endif // _MSC_VER</span>
+<a name="l00059"></a>00059 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
 <a name="l00060"></a>00060 <span class="preprocessor"></span>
-<a name="l00061"></a>00061 <span class="preprocessor">#include &lt;<a class="code" href="luhn_8hpp.html">boost/checks/luhn.hpp</a>&gt;</span>
-<a name="l00062"></a>00062 <span class="preprocessor">#include &lt;<a class="code" href="verhoeff_8hpp.html">boost/checks/verhoeff.hpp</a>&gt;</span>
-<a name="l00063"></a>00063 <span class="preprocessor">#include &lt;<a class="code" href="modulus11_8hpp.html">boost/checks/modulus11.hpp</a>&gt;</span>
-<a name="l00064"></a>00064 <span class="preprocessor">#include &lt;<a class="code" href="modulus97_8hpp.html">boost/checks/modulus97.hpp</a>&gt;</span>
-<a name="l00065"></a>00065
-<a name="l00066"></a>00066 <span class="keyword">namespace </span>boost{
-<a name="l00067"></a>00067 <span class="keyword">namespace </span>checks{
-<a name="l00068"></a>00068
-<a name="l00069"></a>00069 <span class="comment">// Luhn</span>
-<a name="l00070"></a>00070
-<a name="l00071"></a>00071 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
-<a name="l00072"></a>00072 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a36a3ea230792e9f9ba0c02ce1c46354c">check_luhn</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
-<a name="l00073"></a>00073
-<a name="l00074"></a>00074 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
-<a name="l00075"></a>00075 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a36a3ea230792e9f9ba0c02ce1c46354c">check_luhn</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00061"></a>00061 <span class="preprocessor">#include &lt;<a class="code" href="luhn_8hpp.html" title="This file provides tools to compute and validate sequence with the Luhn algorithm.">boost/checks/luhn.hpp</a>&gt;</span>
+<a name="l00062"></a>00062 <span class="preprocessor">#include &lt;<a class="code" href="verhoeff_8hpp.html" title="This file provides tools to compute a Verhoeff checksum.">boost/checks/verhoeff.hpp</a>&gt;</span>
+<a name="l00063"></a>00063 <span class="preprocessor">#include &lt;<a class="code" href="modulus11_8hpp.html" title="This file provides tools to compute and validate classic modulus 11 checksum.">boost/checks/modulus11.hpp</a>&gt;</span>
+<a name="l00064"></a>00064 <span class="preprocessor">#include &lt;<a class="code" href="modulus97_8hpp.html" title="This file provides tools to compute and validate classic modulus 97 checksum. It provides function fo...">boost/checks/modulus97.hpp</a>&gt;</span>
+<a name="l00065"></a>00065 <span class="preprocessor">#include &lt;<a class="code" href="ean_8hpp.html" title="This file provides tools to compute and validate an European Article Numbering of size 8 or 13...">boost/checks/ean.hpp</a>&gt;</span>
+<a name="l00066"></a>00066 <span class="preprocessor">#include &lt;<a class="code" href="isbn_8hpp.html" title="This file provides tools to compute and validate an International Standard Book Number of size 10 or ...">boost/checks/isbn.hpp</a>&gt;</span>
+<a name="l00067"></a>00067 <span class="preprocessor">#include &lt;<a class="code" href="upc_8hpp.html" title="This file provides tools to compute and validate an Universal Product Code.">boost/checks/upc.hpp</a>&gt;</span>
+<a name="l00068"></a>00068 <span class="preprocessor">#include &lt;<a class="code" href="amex_8hpp.html" title="This file provides tools to compute and validate an American Express credit card number.">boost/checks/amex.hpp</a>&gt;</span>
+<a name="l00069"></a>00069 <span class="preprocessor">#include &lt;<a class="code" href="visa_8hpp.html" title="This file provides tools to compute and validate a Visa credit card number.">boost/checks/visa.hpp</a>&gt;</span>
+<a name="l00070"></a>00070 <span class="preprocessor">#include &lt;<a class="code" href="mastercard_8hpp.html" title="This file provides tools to compute and validate a Mastercard credit card number.">boost/checks/mastercard.hpp</a>&gt;</span>
+<a name="l00071"></a>00071
+<a name="l00072"></a>00072 <span class="keyword">namespace </span>boost{
+<a name="l00073"></a>00073 <span class="keyword">namespace </span>checks{
+<a name="l00074"></a>00074
+<a name="l00075"></a>00075 <span class="comment">// Luhn</span>
 <a name="l00076"></a>00076
 <a name="l00077"></a>00077 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
-<a name="l00078"></a>00078 <span class="keyword">typename</span> boost::checks::luhn_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a8f86db1b7d82751de71288456d4edf0a">compute_luhn</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00078"></a>00078 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a36a3ea230792e9f9ba0c02ce1c46354c" title="Validate a sequence according to the luhn_check_algorithm type.">check_luhn</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
 <a name="l00079"></a>00079
 <a name="l00080"></a>00080 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
-<a name="l00081"></a>00081 <span class="keyword">typename</span> boost::checks::luhn_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a8f86db1b7d82751de71288456d4edf0a">compute_luhn</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00081"></a>00081 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a36a3ea230792e9f9ba0c02ce1c46354c" title="Validate a sequence according to the luhn_check_algorithm type.">check_luhn</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
 <a name="l00082"></a>00082
-<a name="l00083"></a>00083 <span class="comment">// Verhoeff</span>
-<a name="l00084"></a>00084
-<a name="l00085"></a>00085 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
-<a name="l00086"></a>00086 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#abe6ccc42ec484aac046ea80bfaad4ae4">check_verhoeff</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
-<a name="l00087"></a>00087
-<a name="l00088"></a>00088 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
-<a name="l00089"></a>00089 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#abe6ccc42ec484aac046ea80bfaad4ae4">check_verhoeff</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00083"></a>00083 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
+<a name="l00084"></a>00084 <span class="keyword">typename</span> boost::checks::luhn_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a8f86db1b7d82751de71288456d4edf0a" title="Calculate the check digit of a sequence according to the luhn_compute_algorithm type.">compute_luhn</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00085"></a>00085
+<a name="l00086"></a>00086 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00087"></a>00087 <span class="keyword">typename</span> boost::checks::luhn_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a8f86db1b7d82751de71288456d4edf0a" title="Calculate the check digit of a sequence according to the luhn_compute_algorithm type.">compute_luhn</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 <span class="comment">// Verhoeff</span>
 <a name="l00090"></a>00090
 <a name="l00091"></a>00091 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
-<a name="l00092"></a>00092 <span class="keyword">typename</span> boost::checks::verhoeff_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a069b69920cc6182e4bd0f1414cdc7747">compute_verhoeff</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00092"></a>00092 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#abe6ccc42ec484aac046ea80bfaad4ae4" title="Validate a sequence according to the verhoeff_check_algorithm type.">check_verhoeff</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
 <a name="l00093"></a>00093
 <a name="l00094"></a>00094 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
-<a name="l00095"></a>00095 <span class="keyword">typename</span> boost::checks::verhoeff_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a069b69920cc6182e4bd0f1414cdc7747">compute_verhoeff</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00095"></a>00095 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#abe6ccc42ec484aac046ea80bfaad4ae4" title="Validate a sequence according to the verhoeff_check_algorithm type.">check_verhoeff</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
 <a name="l00096"></a>00096
-<a name="l00097"></a>00097 <span class="comment">// Modulus 11</span>
-<a name="l00098"></a>00098
-<a name="l00099"></a>00099 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
-<a name="l00100"></a>00100 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#acb7e8e0940822a9cb6836251c064e03f">check_modulus11</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
-<a name="l00101"></a>00101
-<a name="l00102"></a>00102 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
-<a name="l00103"></a>00103 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#acb7e8e0940822a9cb6836251c064e03f">check_modulus11</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00097"></a>00097 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
+<a name="l00098"></a>00098 <span class="keyword">typename</span> boost::checks::verhoeff_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a069b69920cc6182e4bd0f1414cdc7747" title="Calculate the check digit of a sequence according to the verhoeff_compute_algorithm type...">compute_verhoeff</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00099"></a>00099
+<a name="l00100"></a>00100 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00101"></a>00101 <span class="keyword">typename</span> boost::checks::verhoeff_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a069b69920cc6182e4bd0f1414cdc7747" title="Calculate the check digit of a sequence according to the verhoeff_compute_algorithm type...">compute_verhoeff</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00102"></a>00102
+<a name="l00103"></a>00103 <span class="comment">// Modulus 11</span>
 <a name="l00104"></a>00104
 <a name="l00105"></a>00105 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
-<a name="l00106"></a>00106 <span class="keyword">typename</span> boost::checks::mod11_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a65a3b463188c57b0991eeb513e36817d">compute_modulus11</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00106"></a>00106 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#acb7e8e0940822a9cb6836251c064e03f" title="Validate a sequence according to the mod11_check_algorithm type.">check_modulus11</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
 <a name="l00107"></a>00107
 <a name="l00108"></a>00108 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
-<a name="l00109"></a>00109 <span class="keyword">typename</span> boost::checks::mod11_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a65a3b463188c57b0991eeb513e36817d">compute_modulus11</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00109"></a>00109 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#acb7e8e0940822a9cb6836251c064e03f" title="Validate a sequence according to the mod11_check_algorithm type.">check_modulus11</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
 <a name="l00110"></a>00110
-<a name="l00111"></a>00111 <span class="comment">// Modulus 97-10 (ISO/IEC 7064:2003)</span>
-<a name="l00112"></a>00112
-<a name="l00113"></a>00113 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
-<a name="l00114"></a>00114 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#afbc1a04be2d50c0caeb8f15237930513">check_mod97_10</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
-<a name="l00115"></a>00115
-<a name="l00116"></a>00116 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
-<a name="l00117"></a>00117 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#afbc1a04be2d50c0caeb8f15237930513">check_mod97_10</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00111"></a>00111 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
+<a name="l00112"></a>00112 <span class="keyword">typename</span> boost::checks::mod11_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a65a3b463188c57b0991eeb513e36817d" title="Calculate the check digit of a sequence according to the mod11_compute_algorithm type.">compute_modulus11</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00113"></a>00113
+<a name="l00114"></a>00114 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00115"></a>00115 <span class="keyword">typename</span> boost::checks::mod11_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a65a3b463188c57b0991eeb513e36817d" title="Calculate the check digit of a sequence according to the mod11_compute_algorithm type.">compute_modulus11</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00116"></a>00116
+<a name="l00117"></a>00117 <span class="comment">// Modulus 97-10 (ISO/IEC 7064:2003)</span>
 <a name="l00118"></a>00118
-<a name="l00119"></a>00119 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range, <span class="keyword">typename</span> checkdigits_iter&gt;
-<a name="l00120"></a>00120 <span class="keyword">typename</span> checkdigits_iter <a class="code" href="namespaceboost_1_1checks.html#aa4c7db694c89fb4ba0a2b288776c66f3">compute_mod97_10</a> (<span class="keyword">const</span> check_range&amp; check_seq, checkdigits_iter mod97_checkdigits) ;
+<a name="l00119"></a>00119 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
+<a name="l00120"></a>00120 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#afbc1a04be2d50c0caeb8f15237930513" title="Validate a sequence according to the mod97_10_check_algorithm type.">check_mod97_10</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
 <a name="l00121"></a>00121
-<a name="l00122"></a>00122 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range, <span class="keyword">typename</span> checkdigits_iter&gt;
-<a name="l00123"></a>00123 <span class="keyword">typename</span> checkdigits_iter <a class="code" href="namespaceboost_1_1checks.html#aa4c7db694c89fb4ba0a2b288776c66f3">compute_mod97_10</a> (<span class="keyword">const</span> check_range&amp; check_seq, checkdigits_iter mod97_checkdigits) ;
+<a name="l00122"></a>00122 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00123"></a>00123 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#afbc1a04be2d50c0caeb8f15237930513" title="Validate a sequence according to the mod97_10_check_algorithm type.">check_mod97_10</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
 <a name="l00124"></a>00124
-<a name="l00125"></a>00125 }}
-<a name="l00126"></a>00126 <span class="preprocessor">#endif \\ BOOST_CHECK_CHECKS_FWD_HPP</span>
+<a name="l00125"></a>00125 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range, <span class="keyword">typename</span> checkdigits_iter&gt;
+<a name="l00126"></a>00126 <span class="keyword">typename</span> checkdigits_iter <a class="code" href="namespaceboost_1_1checks.html#aa4c7db694c89fb4ba0a2b288776c66f3" title="Calculate the check digits of a sequence according to the mod97_10_compute_algorithm type...">compute_mod97_10</a> (<span class="keyword">const</span> check_range&amp; check_seq, checkdigits_iter mod97_checkdigits) ;
+<a name="l00127"></a>00127
+<a name="l00128"></a>00128 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range, <span class="keyword">typename</span> checkdigits_iter&gt;
+<a name="l00129"></a>00129 <span class="keyword">typename</span> checkdigits_iter <a class="code" href="namespaceboost_1_1checks.html#aa4c7db694c89fb4ba0a2b288776c66f3" title="Calculate the check digits of a sequence according to the mod97_10_compute_algorithm type...">compute_mod97_10</a> (<span class="keyword">const</span> check_range&amp; check_seq, checkdigits_iter mod97_checkdigits) ;
+<a name="l00130"></a>00130
+<a name="l00131"></a>00131 <span class="comment">// EAN-13 and EAN-8</span>
+<a name="l00132"></a>00132
+<a name="l00133"></a>00133 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00134"></a>00134 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a99f1f79f65b14f9f2c68477c69ab7420" title="Validate a sequence according to the ean_check_algorithm type.">check_ean13</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00135"></a>00135
+<a name="l00136"></a>00136 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00137"></a>00137 <span class="keyword">typename</span> boost::checks::ean_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#ac08dd90c2f9518ad9f9addb3863db98e" title="Calculate the check digit of a sequence according to the ean_compute_algorithm type.">compute_ean13</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00138"></a>00138
+<a name="l00139"></a>00139 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00140"></a>00140 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a1d5df84c16aa8c879214bf8f6a6993ea" title="Validate a sequence according to the ean_check_algorithm type.">check_ean8</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00141"></a>00141
+<a name="l00142"></a>00142 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00143"></a>00143 <span class="keyword">typename</span> boost::checks::ean_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#adb63ff3a11463aba48f55b5d96dfada1" title="Calculate the check digit of a sequence according to the ean_compute_algorithm type.">compute_ean8</a> (<span class="keyword">const</span> check_range&amp; check_seq);
+<a name="l00144"></a>00144
+<a name="l00145"></a>00145 <span class="comment">// IBSN-10 and ISBN-13</span>
+<a name="l00146"></a>00146
+<a name="l00147"></a>00147 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00148"></a>00148 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#af52b5d0c188f321561b69f312c93b336" title="Validate a sequence according to the mod11_check_algorithm type.">check_isbn10</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00149"></a>00149
+<a name="l00150"></a>00150 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00151"></a>00151 <span class="keyword">typename</span> boost::checks::mod11_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a41519cb136ca0786262764baa7b4622f" title="Calculate the check digit of a sequence according to the mod11_compute_algorithm type.">compute_isbn10</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00152"></a>00152
+<a name="l00153"></a>00153 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00154"></a>00154 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a787f7cd04f5561dcdadff392c5af0bee" title="Validate a sequence according to the isbn13_check_algorithm type.">check_isbn13</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00155"></a>00155
+<a name="l00156"></a>00156 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00157"></a>00157 <span class="keyword">typename</span> boost::checks::isbn13_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a5dd55ec9238d3d11527546f34d5ce2db" title="Calculate the check digit of a sequence according to the isbn13_compute_algorithm type...">compute_isbn13</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00158"></a>00158
+<a name="l00159"></a>00159 <span class="comment">// UPC-A</span>
+<a name="l00160"></a>00160
+<a name="l00161"></a>00161 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00162"></a>00162 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a944d9977c2db906b76346bc76928f06d" title="Validate a sequence according to the upc_check_algorithm type.">check_upca</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00163"></a>00163
+<a name="l00164"></a>00164 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00165"></a>00165 <span class="keyword">typename</span> boost::checks::upc_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#ae494e5fd020da1bacf88547eda843b81" title="Calculate the check digit of a sequence according to the upc_compute_algorithm type.">compute_upca</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00166"></a>00166
+<a name="l00167"></a>00167
+<a name="l00168"></a>00168 <span class="comment">// American Express</span>
+<a name="l00169"></a>00169
+<a name="l00170"></a>00170 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00171"></a>00171 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a2aff225983f36758feaba34662173b53" title="Validate a sequence according to the amex_check_algorithm type.">check_amex</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00172"></a>00172
+<a name="l00173"></a>00173 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00174"></a>00174 <span class="keyword">typename</span> boost::checks::amex_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a04b6c190de7e9bb7a99841a8ad996459" title="Calculate the check digit of a sequence according to the amex_compute_algorithm type.">compute_amex</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00175"></a>00175
+<a name="l00176"></a>00176 <span class="comment">// VISA</span>
+<a name="l00177"></a>00177
+<a name="l00178"></a>00178 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00179"></a>00179 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#ab59d983a0e6f7df034570cdf7e14bdcb" title="Validate a sequence according to the visa_check_algorithm type.">check_visa</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00180"></a>00180
+<a name="l00181"></a>00181 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00182"></a>00182 <span class="keyword">typename</span> boost::checks::visa_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a4770ebdffc040e9cc9cb1fb6f1d75457" title="Calculate the check digit of a sequence according to the visa_compute_algorithm type.">compute_visa</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00183"></a>00183
+<a name="l00184"></a>00184 <span class="comment">// Mastercard</span>
+<a name="l00185"></a>00185
+<a name="l00186"></a>00186 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00187"></a>00187 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#ae9e7b0798732cefb3c6d51a4cc68d09c" title="Validate a sequence according to the mastercard_check_algorithm type.">check_mastercard</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00188"></a>00188
+<a name="l00189"></a>00189 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00190"></a>00190 <span class="keyword">typename</span> boost::checks::mastercard_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a0f8b86d5edf6cc569f494bb890c83dcc" title="Calculate the check digit of a sequence according to the mastercard_compute_algorithm type...">compute_mastercard</a> (<span class="keyword">const</span> check_range&amp; check_seq) ;
+<a name="l00191"></a>00191
+<a name="l00192"></a>00192
+<a name="l00193"></a>00193 }}
+<a name="l00194"></a>00194 <span class="preprocessor">#endif \\ BOOST_CHECK_CHECKS_FWD_HPP</span>
 </pre></div></div>
 </div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
@@ -170,7 +238,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:52</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/ean_8hpp.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/ean_8hpp.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/ean_8hpp.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:53 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -64,31 +64,141 @@
 <div class="header">
   <div class="summary">
 <a href="#namespaces">Namespaces</a> &#124;
+Defines &#124;
+Typedefs &#124;
 <a href="#func-members">Functions</a> </div>
   <div class="headertitle">
 <div class="title">I:/boost-sandbox/SOC/2011/checks/boost/checks/ean.hpp File Reference</div> </div>
 </div>
 <div class="contents">
 
+<p>This file provides tools to compute and validate an European Article Numbering of size 8 or 13.
+More...</p>
+<div class="textblock"><code>#include &lt;<a class="el" href="weight_8hpp_source.html">boost/checks/weight.hpp</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="iteration__sense_8hpp_source.html">boost/checks/iteration_sense.hpp</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="basic__checks_8hpp_source.html">boost/checks/basic_checks.hpp</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="modulus10_8hpp_source.html">boost/checks/modulus10.hpp</a>&gt;</code><br/>
+</div>
 <p>Go to the source code of this file.</p>
 <table class="memberdecls">
 <tr><td colspan="2"><h2><a name="namespaces"></a>
 Namespaces</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Boost <a class="el" href="crc_8hpp.html">checks/crc.hpp</a> header file ------------------------------------//. </p>
-<br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html">boost::checks</a></td></tr>
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ean_8hpp.html#a758d30b3284ca9f8d664c91ef0f05eb8">EAN13_SIZE</a>&#160;&#160;&#160;13</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This macro defines the size of an EAN-13. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ean_8hpp.html#a4d91ea1f8e4253c2c436dc88bcfc87d4">EAN13_SIZE_WITHOUT_CHECKDIGIT</a>&#160;&#160;&#160;12</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This macro defines the size of an EAN-13 without its check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ean_8hpp.html#acf032d13d2cb78522dd09943d58019f0">EAN8_SIZE</a>&#160;&#160;&#160;8</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This macro defines the size of an EAN-8. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ean_8hpp.html#aa74ee498dfa488ceb8c3a555d875c3f2">EAN8_SIZE_WITHOUT_CHECKDIGIT</a>&#160;&#160;&#160;7</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This macro defines the size of a EAN-8 without its check digit. <br/></td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1weight.html">boost::checks::weight</a>&lt; 1, 3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a9954b4088442885ef6e2576de09a447a">boost::checks::ean_weight</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the weight used by EAN system. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a5777fac9f48a6435fb586c59c3cfe85b">boost::checks::ean_sense</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the running sense to check an EAN. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
+<a class="el" href="structboost_1_1checks_1_1modulus10__algorithm.html">boost::checks::modulus10_algorithm</a><br class="typebreak"/>
+&lt; ean_weight, ean_sense, 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a7ade1a7caf15a4e84fe883128d230415">boost::checks::ean_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the EAN algorithm for validating a check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
+<a class="el" href="structboost_1_1checks_1_1modulus10__algorithm.html">boost::checks::modulus10_algorithm</a><br class="typebreak"/>
+&lt; ean_weight, ean_sense, 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a155a87965d77be3e8ca147deca9e8642">boost::checks::ean_compute_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the EAN algorithm for computing a check digit. <br/></td></tr>
 <tr><td colspan="2"><h2><a name="func-members"></a>
 Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a5ee705fcc8ca3f666b238eea344913a8">boost::checks::Is_ean8</a> (In ean_begin, In ean_end)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">char&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a95182d3e9906feaa08450142a74ac958">boost::checks::ean8_check_digit</a> (In ean_begin, In ean_end)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In , class Prefix &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a0f8eb5d1aa18e2ffb31cf5171d2bfe47">boost::checks::Is_ean13</a> (In ean_begin, In ean_end, Prefix ean_prefix_begin=null, Prefix ean_prefix_end=null)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">char&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ae675f57e175d0da388219dc6bc742ed3">boost::checks::ean13_check_digit</a> (In ean_begin, In ean_end)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a99f1f79f65b14f9f2c68477c69ab7420">boost::checks::check_ean13</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the ean_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::ean_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ac08dd90c2f9518ad9f9addb3863db98e">boost::checks::compute_ean13</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the ean_compute_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a1d5df84c16aa8c879214bf8f6a6993ea">boost::checks::check_ean8</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the ean_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::ean_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#adb63ff3a11463aba48f55b5d96dfada1">boost::checks::compute_ean8</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the ean_compute_algorithm type. <br/></td></tr>
 </table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file provides tools to compute and validate an European Article Numbering of size 8 or 13. </p>
+
+<p>Definition in file <a class="el" href="ean_8hpp_source.html">ean.hpp</a>.</p>
+</div><hr/><h2>Define Documentation</h2>
+<a class="anchor" id="a758d30b3284ca9f8d664c91ef0f05eb8"></a><!-- doxytag: member="ean.hpp::EAN13_SIZE" ref="a758d30b3284ca9f8d664c91ef0f05eb8" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define EAN13_SIZE&#160;&#160;&#160;13</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This macro defines the size of an EAN-13. </p>
+
+<p>Definition at line <a class="el" href="ean_8hpp_source.html#l00027">27</a> of file <a class="el" href="ean_8hpp_source.html">ean.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4d91ea1f8e4253c2c436dc88bcfc87d4"></a><!-- doxytag: member="ean.hpp::EAN13_SIZE_WITHOUT_CHECKDIGIT" ref="a4d91ea1f8e4253c2c436dc88bcfc87d4" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define EAN13_SIZE_WITHOUT_CHECKDIGIT&#160;&#160;&#160;12</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This macro defines the size of an EAN-13 without its check digit. </p>
+
+<p>Definition at line <a class="el" href="ean_8hpp_source.html#l00031">31</a> of file <a class="el" href="ean_8hpp_source.html">ean.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acf032d13d2cb78522dd09943d58019f0"></a><!-- doxytag: member="ean.hpp::EAN8_SIZE" ref="acf032d13d2cb78522dd09943d58019f0" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define EAN8_SIZE&#160;&#160;&#160;8</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This macro defines the size of an EAN-8. </p>
+
+<p>Definition at line <a class="el" href="ean_8hpp_source.html#l00035">35</a> of file <a class="el" href="ean_8hpp_source.html">ean.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa74ee498dfa488ceb8c3a555d875c3f2"></a><!-- doxytag: member="ean.hpp::EAN8_SIZE_WITHOUT_CHECKDIGIT" ref="aa74ee498dfa488ceb8c3a555d875c3f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define EAN8_SIZE_WITHOUT_CHECKDIGIT&#160;&#160;&#160;7</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This macro defines the size of a EAN-8 without its check digit. </p>
+
+<p>Definition at line <a class="el" href="ean_8hpp_source.html#l00039">39</a> of file <a class="el" href="ean_8hpp_source.html">ean.hpp</a>.</p>
+
+</div>
+</div>
 </div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
 
@@ -108,7 +218,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:53</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/ean_8hpp_source.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/ean_8hpp_source.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/ean_8hpp_source.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:52 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -72,28 +72,62 @@
 <a name="l00005"></a>00005 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt>
 <a name="l00006"></a>00006 <span class="comment">// See
http://www.boost.org for updates, documentation, and revision history.</span>
 <a name="l00007"></a>00007
-<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_EAN_INCLUDED</span>
-<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_EAN_INCLUDED</span>
-<a name="l00010"></a>00010 <span class="preprocessor"></span>
-<a name="l00011"></a>00011 <span class="keyword">namespace </span>boost {
-<a name="l00012"></a>00012 <span class="keyword">namespace </span>checks{
-<a name="l00013"></a>00013
-<a name="l00016"></a>00016 <span class="keyword">template</span> &lt;<span class="keyword">class</span> In&gt;
-<a name="l00017"></a><a class="code" href="namespaceboost_1_1checks.html#a5ee705fcc8ca3f666b238eea344913a8">00017</a> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a5ee705fcc8ca3f666b238eea344913a8">Is_ean8</a>(In ean_begin, In ean_end){}
-<a name="l00018"></a>00018
-<a name="l00021"></a>00021 <span class="keyword">template</span> &lt;<span class="keyword">class</span> In&gt;
-<a name="l00022"></a><a class="code" href="namespaceboost_1_1checks.html#a95182d3e9906feaa08450142a74ac958">00022</a> <span class="keyword">inline</span> <span class="keywordtype">char</span> <a class="code" href="namespaceboost_1_1checks.html#a95182d3e9906feaa08450142a74ac958">ean8_check_digit</a>(In ean_begin, In ean_end){}
+<a name="l00012"></a>00012 <span class="preprocessor">#ifndef BOOST_CHECKS_EAN_HPP</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_CHECKS_EAN_HPP</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span>
+<a name="l00015"></a>00015 <span class="preprocessor">#ifdef _MSC_VER</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor"> #pragma once</span>
+<a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00018"></a>00018 <span class="preprocessor"></span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include &lt;<a class="code" href="weight_8hpp.html" title="Provides a template overriden struct to encapsulate a compile-time weight sequence.">boost/checks/weight.hpp</a>&gt;</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include &lt;<a class="code" href="iteration__sense_8hpp.html" title="Provides two sense of iteration to run through the sequence from right to left or left to right...">boost/checks/iteration_sense.hpp</a>&gt;</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;<a class="code" href="basic__checks_8hpp.html" title="This file provides a set of basic functions used to compute and validate check digit(s) and checksum...">boost/checks/basic_checks.hpp</a>&gt;</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;<a class="code" href="modulus10_8hpp.html" title="This file provides tools to compute and validate classic modulus 10 checksum.">boost/checks/modulus10.hpp</a>&gt;</span>
 <a name="l00023"></a>00023
-<a name="l00035"></a>00035 <span class="keyword">template</span> &lt;<span class="keyword">class</span> In, <span class="keyword">class</span> Prefix&gt;
-<a name="l00036"></a><a class="code" href="namespaceboost_1_1checks.html#a0f8eb5d1aa18e2ffb31cf5171d2bfe47">00036</a> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a0f8eb5d1aa18e2ffb31cf5171d2bfe47">Is_ean13</a>(In ean_begin, In ean_end, Prefix ean_prefix_begin = null, Prefix ean_prefix_end = null){}
-<a name="l00037"></a>00037
-<a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">class</span> In&gt;
-<a name="l00041"></a><a class="code" href="namespaceboost_1_1checks.html#ae675f57e175d0da388219dc6bc742ed3">00041</a> <span class="keyword">inline</span> <span class="keywordtype">char</span> <a class="code" href="namespaceboost_1_1checks.html#ae675f57e175d0da388219dc6bc742ed3">ean13_check_digit</a>(In ean_begin, In ean_end){}
-<a name="l00042"></a>00042
-<a name="l00043"></a>00043 } <span class="comment">// namespace checks</span>
-<a name="l00044"></a>00044 } <span class="comment">// namespace boost</span>
-<a name="l00045"></a>00045
-<a name="l00046"></a>00046 <span class="preprocessor">#endif</span>
+<a name="l00027"></a><a class="code" href="ean_8hpp.html#a758d30b3284ca9f8d664c91ef0f05eb8">00027</a> <span class="preprocessor">#define EAN13_SIZE 13</span>
+<a name="l00028"></a>00028 <span class="preprocessor"></span>
+<a name="l00031"></a><a class="code" href="ean_8hpp.html#a4d91ea1f8e4253c2c436dc88bcfc87d4">00031</a> <span class="preprocessor">#define EAN13_SIZE_WITHOUT_CHECKDIGIT 12</span>
+<a name="l00032"></a>00032 <span class="preprocessor"></span>
+<a name="l00035"></a><a class="code" href="ean_8hpp.html#acf032d13d2cb78522dd09943d58019f0">00035</a> <span class="preprocessor">#define EAN8_SIZE 8 </span>
+<a name="l00036"></a>00036 <span class="preprocessor"></span>
+<a name="l00039"></a><a class="code" href="ean_8hpp.html#aa74ee498dfa488ceb8c3a555d875c3f2">00039</a> <span class="preprocessor">#define EAN8_SIZE_WITHOUT_CHECKDIGIT 7</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span>
+<a name="l00041"></a>00041 <span class="keyword">namespace </span>boost {
+<a name="l00042"></a>00042 <span class="keyword">namespace </span>checks{
+<a name="l00043"></a>00043
+<a name="l00047"></a><a class="code" href="namespaceboost_1_1checks.html#a9954b4088442885ef6e2576de09a447a">00047</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1weight.html" title="The weight metafunction encapsulate 0 to BOOST_CHECK_LIMIT_WEIGHTS weights.">boost::checks::weight&lt;1,3&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a9954b4088442885ef6e2576de09a447a" title="This is the weight used by EAN system.">ean_weight</a> ;
+<a name="l00051"></a><a class="code" href="namespaceboost_1_1checks.html#a5777fac9f48a6435fb586c59c3cfe85b">00051</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1rightmost.html" title="Policy class that provides methods to run through a sequence from right to left.">boost::checks::rightmost</a> <a class="code" href="namespaceboost_1_1checks.html#a5777fac9f48a6435fb586c59c3cfe85b" title="This is the running sense to check an EAN.">ean_sense</a> ;
+<a name="l00052"></a>00052
+<a name="l00056"></a><a class="code" href="namespaceboost_1_1checks.html#a7ade1a7caf15a4e84fe883128d230415">00056</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1modulus10__algorithm.html" title="This class can be used to compute or validate checksum with a basic modulus 10.">boost::checks::modulus10_algorithm&lt; ean_weight, ean_sense, 0&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a7ade1a7caf15a4e84fe883128d230415" title="This is the type of the EAN algorithm for validating a check digit.">ean_check_algorithm</a> ;
+<a name="l00060"></a><a class="code" href="namespaceboost_1_1checks.html#a155a87965d77be3e8ca147deca9e8642">00060</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1modulus10__algorithm.html" title="This class can be used to compute or validate checksum with a basic modulus 10.">boost::checks::modulus10_algorithm&lt; ean_weight, ean_sense, 1&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a155a87965d77be3e8ca147deca9e8642" title="This is the type of the EAN algorithm for computing a check digit.">ean_compute_algorithm</a> ;
+<a name="l00061"></a>00061
+<a name="l00074"></a>00074 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00075"></a><a class="code" href="namespaceboost_1_1checks.html#a99f1f79f65b14f9f2c68477c69ab7420">00075</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a99f1f79f65b14f9f2c68477c69ab7420" title="Validate a sequence according to the ean_check_algorithm type.">check_ean13</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00076"></a>00076 {
+<a name="l00077"></a>00077 <span class="keywordflow">return</span> boost::checks::check_sequence&lt;ean_check_algorithm, EAN13_SIZE&gt; ( check_seq ) ;
+<a name="l00078"></a>00078 }
+<a name="l00079"></a>00079
+<a name="l00093"></a>00093 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00094"></a><a class="code" href="namespaceboost_1_1checks.html#ac08dd90c2f9518ad9f9addb3863db98e">00094</a> <span class="keyword">typename</span> boost::checks::ean_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#ac08dd90c2f9518ad9f9addb3863db98e" title="Calculate the check digit of a sequence according to the ean_compute_algorithm type.">compute_ean13</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00095"></a>00095 {
+<a name="l00096"></a>00096 <span class="keywordflow">return</span> boost::checks::compute_checkdigit&lt;ean_compute_algorithm, EAN13_SIZE_WITHOUT_CHECKDIGIT&gt; ( check_seq ) ;
+<a name="l00097"></a>00097 }
+<a name="l00098"></a>00098
+<a name="l00111"></a>00111 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00112"></a><a class="code" href="namespaceboost_1_1checks.html#a1d5df84c16aa8c879214bf8f6a6993ea">00112</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a1d5df84c16aa8c879214bf8f6a6993ea" title="Validate a sequence according to the ean_check_algorithm type.">check_ean8</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00113"></a>00113 {
+<a name="l00114"></a>00114 <span class="keywordflow">return</span> boost::checks::check_sequence&lt;ean_check_algorithm, EAN8_SIZE&gt; ( check_seq ) ;
+<a name="l00115"></a>00115 }
+<a name="l00116"></a>00116
+<a name="l00130"></a>00130 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00131"></a><a class="code" href="namespaceboost_1_1checks.html#adb63ff3a11463aba48f55b5d96dfada1">00131</a> <span class="keyword">typename</span> boost::checks::ean_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#adb63ff3a11463aba48f55b5d96dfada1" title="Calculate the check digit of a sequence according to the ean_compute_algorithm type.">compute_ean8</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00132"></a>00132 {
+<a name="l00133"></a>00133 <span class="keywordflow">return</span> boost::checks::compute_checkdigit&lt;ean_compute_algorithm, EAN8_SIZE_WITHOUT_CHECKDIGIT&gt; ( check_seq ) ;
+<a name="l00134"></a>00134 }
+<a name="l00135"></a>00135
+<a name="l00136"></a>00136
+<a name="l00137"></a>00137 }}
+<a name="l00138"></a>00138 <span class="preprocessor">#endif // BOOST_CHECKS_EAN_HPP</span>
 </pre></div></div>
 </div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
@@ -114,7 +148,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:52</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/files.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/files.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/files.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:54 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -67,32 +67,26 @@
 </div>
 <div class="contents">
 <div class="textblock">Here is a list of all files with brief descriptions:</div><table>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="adler_8hpp.html">adler.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="amex_8hpp.html">amex.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="basic__check__algorithm_8hpp.html">basic_check_algorithm.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="basic__checks_8hpp.html">basic_checks.hpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="amex_8hpp.html">amex.hpp</a> [code]</td><td class="indexvalue">This file provides tools to compute and validate an American Express credit card number </td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="basic__check__algorithm_8hpp.html">basic_check_algorithm.hpp</a> [code]</td><td class="indexvalue">This file provides a class that should be used as an "interface" because most of the static functions should be re-implemented using inheritance </td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="basic__checks_8hpp.html">basic_checks.hpp</a> [code]</td><td class="indexvalue">This file provides a set of basic functions used to compute and validate check digit(s) and checksum </td></tr>
   <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="checks__fwd_8hpp.html">checks_fwd.hpp</a> [code]</td><td class="indexvalue">Boost.Checks forward declaration of function signatures </td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="crc_8hpp.html">crc.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="ean_8hpp.html">ean.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="fletcher_8hpp.html">fletcher.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="iban_8hpp.html">iban.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="isan_8hpp.html">isan.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="isbn_8hpp.html">isbn.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="iteration__sense_8hpp.html">iteration_sense.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="limits_8hpp.html">limits.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="luhn_8hpp.html">luhn.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="mastercard_8hpp.html">mastercard.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="modulus_8hpp.html">modulus.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="modulus10_8hpp.html">modulus10.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="modulus11_8hpp.html">modulus11.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="modulus97_8hpp.html">modulus97.hpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="ean_8hpp.html">ean.hpp</a> [code]</td><td class="indexvalue">This file provides tools to compute and validate an European Article Numbering of size 8 or 13 </td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="isbn_8hpp.html">isbn.hpp</a> [code]</td><td class="indexvalue">This file provides tools to compute and validate an International Standard Book Number of size 10 or 13 </td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="iteration__sense_8hpp.html">iteration_sense.hpp</a> [code]</td><td class="indexvalue">Provides two sense of iteration to run through the sequence from right to left or left to right </td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="limits_8hpp.html">limits.hpp</a> [code]</td><td class="indexvalue">Provides two types of size contract to manage the expected size of the check sequence </td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="luhn_8hpp.html">luhn.hpp</a> [code]</td><td class="indexvalue">This file provides tools to compute and validate sequence with the Luhn algorithm </td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="mastercard_8hpp.html">mastercard.hpp</a> [code]</td><td class="indexvalue">This file provides tools to compute and validate a Mastercard credit card number </td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="modulus10_8hpp.html">modulus10.hpp</a> [code]</td><td class="indexvalue">This file provides tools to compute and validate classic modulus 10 checksum </td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="modulus11_8hpp.html">modulus11.hpp</a> [code]</td><td class="indexvalue">This file provides tools to compute and validate classic modulus 11 checksum </td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="modulus97_8hpp.html">modulus97.hpp</a> [code]</td><td class="indexvalue">This file provides tools to compute and validate classic modulus 97 checksum. It provides function for convenience with the mod97-10 algorithm (ISO/IEC 7064:2003) </td></tr>
   <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="radix32_check_8cpp.html">radix32Check.cpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="traduction__exception_8hpp.html">traduction_exception.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="upc_8hpp.html">upc.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="verhoeff_8hpp.html">verhoeff.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="visa_8hpp.html">visa.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="weight_8hpp.html">weight.hpp</a> [code]</td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="weighted__sum_8hpp.html">weighted_sum.hpp</a> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="translation__exception_8hpp.html">translation_exception.hpp</a> [code]</td><td class="indexvalue">This file provides an exception class used when the translation of a value failed </td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="upc_8hpp.html">upc.hpp</a> [code]</td><td class="indexvalue">This file provides tools to compute and validate an Universal Product Code </td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="verhoeff_8hpp.html">verhoeff.hpp</a> [code]</td><td class="indexvalue">This file provides tools to compute a Verhoeff checksum </td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="visa_8hpp.html">visa.hpp</a> [code]</td><td class="indexvalue">This file provides tools to compute and validate a Visa credit card number </td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="weight_8hpp.html">weight.hpp</a> [code]</td><td class="indexvalue">Provides a template overriden struct to encapsulate a compile-time weight sequence </td></tr>
+ <tr><td class="indexkey">I:/boost-sandbox/SOC/2011/checks/boost/checks/<a class="el" href="weighted__sum_8hpp.html">weighted_sum.hpp</a> [code]</td><td class="indexvalue">This file provides tools to compute weighted sum </td></tr>
 </table>
 </div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
@@ -113,7 +107,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:54</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/globals.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/globals.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/globals.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:54 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -73,11 +73,41 @@
 <li>_WEIGHT_factory
 : <a class="el" href="weight_8hpp.html#acf89ed5df63b021eef40a48cdb8abf80">weight.hpp</a>
 </li>
+<li>AMEX_SIZE
+: <a class="el" href="amex_8hpp.html#a19c07a8362d0a4c5a3845acc0019d548">amex.hpp</a>
+</li>
+<li>AMEX_SIZE_WITHOUT_CHECKDIGIT
+: <a class="el" href="amex_8hpp.html#ab5f7314649ce4fd8d8a00091ab2aa54f">amex.hpp</a>
+</li>
 <li>BOOST_CHECK_LIMIT_WEIGHTS
 : <a class="el" href="weight_8hpp.html#abb559d77fd6b5d5318052b781a6ef275">weight.hpp</a>
 </li>
-<li>MOD97_make_weight
-: <a class="el" href="modulus97_8hpp.html#af69f2f3437ad84ccd20a346576d0d23d">modulus97.hpp</a>
+<li>EAN13_SIZE
+: <a class="el" href="ean_8hpp.html#a758d30b3284ca9f8d664c91ef0f05eb8">ean.hpp</a>
+</li>
+<li>EAN13_SIZE_WITHOUT_CHECKDIGIT
+: <a class="el" href="ean_8hpp.html#a4d91ea1f8e4253c2c436dc88bcfc87d4">ean.hpp</a>
+</li>
+<li>EAN8_SIZE
+: <a class="el" href="ean_8hpp.html#acf032d13d2cb78522dd09943d58019f0">ean.hpp</a>
+</li>
+<li>EAN8_SIZE_WITHOUT_CHECKDIGIT
+: <a class="el" href="ean_8hpp.html#aa74ee498dfa488ceb8c3a555d875c3f2">ean.hpp</a>
+</li>
+<li>ISBN10_SIZE
+: <a class="el" href="isbn_8hpp.html#a4045f48b363697139eb31be93a66ab29">isbn.hpp</a>
+</li>
+<li>ISBN10_SIZE_WITHOUT_CHECKDIGIT
+: <a class="el" href="isbn_8hpp.html#a338b76f95f0c09a571db119c9ad485ca">isbn.hpp</a>
+</li>
+<li>MASTERCARD_SIZE
+: <a class="el" href="mastercard_8hpp.html#a9c3148a8387bb2d79225356d4505e50e">mastercard.hpp</a>
+</li>
+<li>MASTERCARD_SIZE_WITHOUT_CHECKDIGIT
+: <a class="el" href="mastercard_8hpp.html#a8ad1373b555771d052d6f272a433c1e0">mastercard.hpp</a>
+</li>
+<li>MOD97_weight_maker
+: <a class="el" href="modulus97_8hpp.html#a6ed05d9635d0e5ec0ba57a86484b577a">modulus97.hpp</a>
 </li>
 <li>NEXT
 : <a class="el" href="modulus97_8hpp.html#a2983cd3016fa8bd520b549da47f68dbe">modulus97.hpp</a>
@@ -88,6 +118,18 @@
 <li>perm42
 : <a class="el" href="radix32_check_8cpp.html#a3d03d3275c208f604f2dd1709a56c6af">radix32Check.cpp</a>
 </li>
+<li>UPCA_SIZE
+: <a class="el" href="upc_8hpp.html#a737e0533a524b002ee19616f251812a7">upc.hpp</a>
+</li>
+<li>UPCA_SIZE_WITHOUT_CHECKDIGIT
+: <a class="el" href="upc_8hpp.html#ac3e19f81cb44043813fc75139981bedc">upc.hpp</a>
+</li>
+<li>VISA_SIZE
+: <a class="el" href="visa_8hpp.html#a913937f24479e4dad67ed0b6bfda60f8">visa.hpp</a>
+</li>
+<li>VISA_SIZE_WITHOUT_CHECKDIGIT
+: <a class="el" href="visa_8hpp.html#acbcb4d1383c20dda670bae712b64b7d5">visa.hpp</a>
+</li>
 </ul>
 </div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
@@ -108,7 +150,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:54</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/globals_vars.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/globals_vars.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/globals_vars.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:54 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -96,7 +96,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:54</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/index.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/index.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/index.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:52 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li class="current">Main Page</li>
@@ -57,7 +57,7 @@
 </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">Checks Documentation</div> </div>
+<div class="title">Boost.Checks Documentation</div> </div>
 </div>
 <div class="contents">
 <div class="textblock"><p><b>Boost.Checks</b> </p>
@@ -92,7 +92,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:52</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/isbn_8hpp.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/isbn_8hpp.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/isbn_8hpp.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:53 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -63,32 +63,102 @@
 </div>
 <div class="header">
   <div class="summary">
+Classes &#124;
 <a href="#namespaces">Namespaces</a> &#124;
+Defines &#124;
+Typedefs &#124;
 <a href="#func-members">Functions</a> </div>
   <div class="headertitle">
 <div class="title">I:/boost-sandbox/SOC/2011/checks/boost/checks/isbn.hpp File Reference</div> </div>
 </div>
 <div class="contents">
 
+<p>This file provides tools to compute and validate an International Standard Book Number of size 10 or 13.
+More...</p>
+<div class="textblock"><code>#include &lt;<a class="el" href="ean_8hpp_source.html">boost/checks/ean.hpp</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="modulus11_8hpp_source.html">boost/checks/modulus11.hpp</a>&gt;</code><br/>
+</div>
 <p>Go to the source code of this file.</p>
 <table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1isbn13__algorithm.html">boost::checks::isbn13_algorithm&lt; number_of_virtual_value_skipped &gt;</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class can be used to compute or validate checksum with a basic modulus 10 but using a custom filter for the ISBN-13 prefix. More...<br/></td></tr>
 <tr><td colspan="2"><h2><a name="namespaces"></a>
 Namespaces</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Boost <a class="el" href="crc_8hpp.html">checks/crc.hpp</a> header file ------------------------------------//. </p>
-<br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html">boost::checks</a></td></tr>
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="isbn_8hpp.html#a4045f48b363697139eb31be93a66ab29">ISBN10_SIZE</a>&#160;&#160;&#160;10</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This macro defines the size of an ISBN-10. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="isbn_8hpp.html#a338b76f95f0c09a571db119c9ad485ca">ISBN10_SIZE_WITHOUT_CHECKDIGIT</a>&#160;&#160;&#160;9</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This macro defines the size of an ISBN-10 without its check digit. <br/></td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
+<a class="el" href="structboost_1_1checks_1_1isbn13__algorithm.html">boost::checks::isbn13_algorithm</a>&lt; 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a268063a04f4922a2fa58daf19baa616c">boost::checks::isbn13_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the ISBN-13 algorithm for validating a check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
+<a class="el" href="structboost_1_1checks_1_1isbn13__algorithm.html">boost::checks::isbn13_algorithm</a>&lt; 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#aa04af64ebe32659934424590adb037ed">boost::checks::isbn13_compute_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the ISBN-13 algorithm for computing a check digit. <br/></td></tr>
 <tr><td colspan="2"><h2><a name="func-members"></a>
 Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ac1b614e02e1f754bbf700c757160bbfe">boost::checks::Is_isbn10</a> (In isbn_begin, In isbn_end)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">char&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#aa8f170503844cf15cc4b0296c241e947">boost::checks::isbn10_check_digit</a> (In isbn_begin, In isbn_end)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ad94e11097f0451dacc57e5dadc9e0356">boost::checks::Is_isbn13</a> (In isbn_begin, In isbn_end)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">char&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#aad0aa8b4907502a3cd4c2eaf63d34277">boost::checks::isbn13_check_digit</a> (In isbn_begin, In isbn_end)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a787f7cd04f5561dcdadff392c5af0bee">boost::checks::check_isbn13</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the isbn13_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::isbn13_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a5dd55ec9238d3d11527546f34d5ce2db">boost::checks::compute_isbn13</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the isbn13_compute_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#af52b5d0c188f321561b69f312c93b336">boost::checks::check_isbn10</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the mod11_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::mod11_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a41519cb136ca0786262764baa7b4622f">boost::checks::compute_isbn10</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the mod11_compute_algorithm type. <br/></td></tr>
 </table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file provides tools to compute and validate an International Standard Book Number of size 10 or 13. </p>
+<dl class="remark"><dt><b>Remarks:</b></dt><dd>The ISBN-13 is derived from the EAN number, so EAN macro or type are used. </dd></dl>
+
+<p>Definition in file <a class="el" href="isbn_8hpp_source.html">isbn.hpp</a>.</p>
+</div><hr/><h2>Define Documentation</h2>
+<a class="anchor" id="a4045f48b363697139eb31be93a66ab29"></a><!-- doxytag: member="isbn.hpp::ISBN10_SIZE" ref="a4045f48b363697139eb31be93a66ab29" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define ISBN10_SIZE&#160;&#160;&#160;10</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This macro defines the size of an ISBN-10. </p>
+
+<p>Definition at line <a class="el" href="isbn_8hpp_source.html#l00027">27</a> of file <a class="el" href="isbn_8hpp_source.html">isbn.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a338b76f95f0c09a571db119c9ad485ca"></a><!-- doxytag: member="isbn.hpp::ISBN10_SIZE_WITHOUT_CHECKDIGIT" ref="a338b76f95f0c09a571db119c9ad485ca" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define ISBN10_SIZE_WITHOUT_CHECKDIGIT&#160;&#160;&#160;9</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This macro defines the size of an ISBN-10 without its check digit. </p>
+
+<p>Definition at line <a class="el" href="isbn_8hpp_source.html#l00031">31</a> of file <a class="el" href="isbn_8hpp_source.html">isbn.hpp</a>.</p>
+
+</div>
+</div>
 </div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
 
@@ -108,7 +178,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:53</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/isbn_8hpp_source.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/isbn_8hpp_source.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/isbn_8hpp_source.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:52 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -72,81 +72,69 @@
 <a name="l00005"></a>00005 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt>
 <a name="l00006"></a>00006 <span class="comment">// See
http://www.boost.org for updates, documentation, and revision history.</span>
 <a name="l00007"></a>00007
-<a name="l00008"></a>00008
-<a name="l00009"></a>00009 <span class="comment">// Note on doxygen trip char. It seems to be convention to use \param rather than @param.</span>
-<a name="l00010"></a>00010
-<a name="l00011"></a>00011 <span class="comment">// I can&#39;t fully remember the logic but Steven Watanabe did explain it to me.</span>
-<a name="l00012"></a>00012 <span class="comment">// Steven is a Quickbook Doxygen guru!</span>
-<a name="l00013"></a>00013 <span class="comment">// He also uses @ but for things like @c metafunction&lt;_&gt; which just does typewirter font.</span>
-<a name="l00014"></a>00014
-<a name="l00015"></a>00015
-<a name="l00016"></a>00016
-<a name="l00017"></a>00017 <span class="preprocessor">#ifndef BOOST_ISBN_INCLUDED</span>
-<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_ISBN_INCLUDED</span>
-<a name="l00019"></a>00019 <span class="preprocessor"></span>
-<a name="l00020"></a>00020 <span class="keyword">namespace </span>boost {
-<a name="l00021"></a>00021 <span class="keyword">namespace </span>checks{
-<a name="l00022"></a>00022
+<a name="l00014"></a>00014 <span class="preprocessor">#ifndef BOOST_CHECKS_ISBN_HPP</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_CHECKS_ISBN_HPP</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span>
+<a name="l00017"></a>00017 <span class="preprocessor">#ifdef _MSC_VER</span>
+<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor"> #pragma once</span>
+<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00020"></a>00020 <span class="preprocessor"></span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;<a class="code" href="ean_8hpp.html" title="This file provides tools to compute and validate an European Article Numbering of size 8 or 13...">boost/checks/ean.hpp</a>&gt;</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;<a class="code" href="modulus11_8hpp.html" title="This file provides tools to compute and validate classic modulus 11 checksum.">boost/checks/modulus11.hpp</a>&gt;</span>
 <a name="l00023"></a>00023
-<a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keyword">class</span> In&gt;
-<a name="l00033"></a><a class="code" href="namespaceboost_1_1checks.html#ac1b614e02e1f754bbf700c757160bbfe">00033</a> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#ac1b614e02e1f754bbf700c757160bbfe">Is_isbn10</a>(In isbn_begin, In isbn_end)
-<a name="l00034"></a>00034 {
-<a name="l00035"></a>00035 <span class="keywordflow">if</span>( isbn_begin == isbn_end ) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00036"></a>00036 In iter = isbn_begin;
-<a name="l00037"></a>00037 <span class="keywordtype">int</span> check = 0, i;
-<a name="l00038"></a>00038 <span class="keywordflow">for</span>(i=10; i&gt;0 &amp;&amp; iter != isbn_end;)
-<a name="l00039"></a>00039 {
-<a name="l00040"></a>00040 <span class="keywordflow">if</span>( *iter != <span class="charliteral">&#39;-&#39;</span>)
-<a name="l00041"></a>00041 {
-<a name="l00042"></a>00042 <span class="keywordflow">if</span>(!isdigit(*iter))
-<a name="l00043"></a>00043 <span class="keywordflow">if</span>(i==1 &amp;&amp; (*iter == <span class="charliteral">&#39;x&#39;</span> || *iter == <span class="charliteral">&#39;X&#39;</span>)) check += 10;
-<a name="l00044"></a>00044 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00045"></a>00045 <span class="keywordflow">else</span>
-<a name="l00046"></a>00046 check += i * (*iter - 48);
-<a name="l00047"></a>00047 --i;
-<a name="l00048"></a>00048 }
-<a name="l00049"></a>00049 ++iter;
-<a name="l00050"></a>00050 }
-<a name="l00051"></a>00051 <span class="keywordflow">return</span> (i &gt; 0 || iter != isbn_end) ? <span class="keyword">false</span> : check % 11 == 0;
-<a name="l00052"></a>00052 }
-<a name="l00053"></a>00053
-<a name="l00062"></a>00062 <span class="keyword">template</span> &lt;<span class="keyword">class</span> In&gt;
-<a name="l00063"></a><a class="code" href="namespaceboost_1_1checks.html#aa8f170503844cf15cc4b0296c241e947">00063</a> <span class="keyword">inline</span> <span class="keywordtype">char</span> <a class="code" href="namespaceboost_1_1checks.html#aa8f170503844cf15cc4b0296c241e947">isbn10_check_digit</a>(In isbn_begin, In isbn_end)
-<a name="l00064"></a>00064 {
-<a name="l00065"></a>00065 <span class="keywordflow">if</span>( isbn_begin == isbn_end ) <span class="keywordflow">return</span> -1;
-<a name="l00066"></a>00066 In iter = isbn_begin;
-<a name="l00067"></a>00067 <span class="keywordtype">int</span> check = 0, i;
-<a name="l00068"></a>00068 <span class="keywordflow">for</span>(i=10; i&gt;1 &amp;&amp; iter != isbn_end;)
-<a name="l00069"></a>00069 {
-<a name="l00070"></a>00070 <span class="keywordflow">if</span>(isdigit(*iter))
-<a name="l00071"></a>00071 {
-<a name="l00072"></a>00072 check += i * (*iter - 48);
-<a name="l00073"></a>00073 --i;
-<a name="l00074"></a>00074 }
-<a name="l00075"></a>00075 ++iter;
-<a name="l00076"></a>00076 }
-<a name="l00077"></a>00077 <span class="keywordflow">if</span>(i &gt; 1 || iter != isbn_end) <span class="keywordflow">return</span> -1;
-<a name="l00078"></a>00078 check = 11 - check % 11;
-<a name="l00079"></a>00079 <span class="keywordflow">return</span> (check == 10) ? <span class="charliteral">&#39;X&#39;</span> : <span class="keyword">static_cast&lt;</span><span class="keywordtype">char</span><span class="keyword">&gt;</span>(check + 48);
-<a name="l00080"></a>00080 }
-<a name="l00081"></a>00081
-<a name="l00082"></a>00082
-<a name="l00085"></a>00085 <span class="keyword">template</span> &lt;<span class="keyword">class</span> In&gt;
-<a name="l00086"></a><a class="code" href="namespaceboost_1_1checks.html#ad94e11097f0451dacc57e5dadc9e0356">00086</a> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#ad94e11097f0451dacc57e5dadc9e0356">Is_isbn13</a>(In isbn_begin, In isbn_end)
-<a name="l00087"></a>00087 {
-<a name="l00088"></a>00088 <span class="comment">// Call Is_ean13 with limitation on the 3 first number (978 - 979).</span>
-<a name="l00089"></a>00089 }
-<a name="l00090"></a>00090
-<a name="l00093"></a>00093 <span class="keyword">template</span> &lt;<span class="keyword">class</span> In&gt;
-<a name="l00094"></a><a class="code" href="namespaceboost_1_1checks.html#aad0aa8b4907502a3cd4c2eaf63d34277">00094</a> <span class="keyword">inline</span> <span class="keywordtype">char</span> <a class="code" href="namespaceboost_1_1checks.html#aad0aa8b4907502a3cd4c2eaf63d34277">isbn13_check_digit</a>(In isbn_begin, In isbn_end)
-<a name="l00095"></a>00095 {
-<a name="l00096"></a>00096 <span class="comment">// Call ean13_check_digit with limitation on the 3 first number (978 - 979).</span>
-<a name="l00097"></a>00097 }
-<a name="l00098"></a>00098
-<a name="l00099"></a>00099 } <span class="comment">// namespace checks</span>
-<a name="l00100"></a>00100 } <span class="comment">// namespace boost</span>
-<a name="l00101"></a>00101
-<a name="l00102"></a>00102 <span class="preprocessor">#endif</span>
+<a name="l00027"></a><a class="code" href="isbn_8hpp.html#a4045f48b363697139eb31be93a66ab29">00027</a> <span class="preprocessor">#define ISBN10_SIZE 10</span>
+<a name="l00028"></a>00028 <span class="preprocessor"></span>
+<a name="l00031"></a><a class="code" href="isbn_8hpp.html#a338b76f95f0c09a571db119c9ad485ca">00031</a> <span class="preprocessor">#define ISBN10_SIZE_WITHOUT_CHECKDIGIT 9</span>
+<a name="l00032"></a>00032 <span class="preprocessor"></span>
+<a name="l00033"></a>00033 <span class="keyword">namespace </span>boost {
+<a name="l00034"></a>00034 <span class="keyword">namespace </span>checks{
+<a name="l00035"></a>00035
+<a name="l00041"></a>00041 <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> number_of_virtual_value_skipped = 0&gt;
+<a name="l00042"></a><a class="code" href="structboost_1_1checks_1_1isbn13__algorithm.html">00042</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1checks_1_1isbn13__algorithm.html" title="This class can be used to compute or validate checksum with a basic modulus 10 but using a custom fil...">isbn13_algorithm</a> : boost::checks::<a class="code" href="structboost_1_1checks_1_1modulus10__algorithm.html" title="This class can be used to compute or validate checksum with a basic modulus 10.">modulus10_algorithm</a> &lt; boost::checks::ean_weight, boost::checks::ean_sense, number_of_virtual_value_skipped &gt;
+<a name="l00043"></a>00043 {
+<a name="l00054"></a><a class="code" href="structboost_1_1checks_1_1isbn13__algorithm.html#ac1b0e004df9b5ca90aab4a6e86fe111e">00054</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1checks_1_1isbn13__algorithm.html#ac1b0e004df9b5ca90aab4a6e86fe111e" title="Verify that a number matches the ISBN-13 pattern.">filter_valid_value_with_pos</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_valid_value, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_value_position )
+<a name="l00055"></a>00055 {
+<a name="l00056"></a>00056 <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> real_pos_from_left = <a class="code" href="ean_8hpp.html#a758d30b3284ca9f8d664c91ef0f05eb8" title="This macro defines the size of an EAN-13.">EAN13_SIZE</a> - current_value_position - number_of_virtual_value_skipped ;
+<a name="l00057"></a>00057
+<a name="l00058"></a>00058 <span class="keywordflow">if</span>( real_pos_from_left == 1 &amp;&amp; current_valid_value != 9)
+<a name="l00059"></a>00059 <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;The first digit should be 9.&quot;</span>) ;
+<a name="l00060"></a>00060 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( real_pos_from_left == 2 &amp;&amp; current_valid_value != 7)
+<a name="l00061"></a>00061 <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;The second digit should be 7.&quot;</span>) ;
+<a name="l00062"></a>00062 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( real_pos_from_left == 3 &amp;&amp; current_valid_value != 8 &amp;&amp; current_valid_value != 9)
+<a name="l00063"></a>00063 <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;The third digit should be 8 or 9.&quot;</span>) ;
+<a name="l00064"></a>00064 }
+<a name="l00065"></a>00065 };
+<a name="l00066"></a>00066
+<a name="l00070"></a><a class="code" href="namespaceboost_1_1checks.html#a268063a04f4922a2fa58daf19baa616c">00070</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1isbn13__algorithm.html" title="This class can be used to compute or validate checksum with a basic modulus 10 but using a custom fil...">boost::checks::isbn13_algorithm&lt;0&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a268063a04f4922a2fa58daf19baa616c" title="This is the type of the ISBN-13 algorithm for validating a check digit.">isbn13_check_algorithm</a> ;
+<a name="l00074"></a><a class="code" href="namespaceboost_1_1checks.html#aa04af64ebe32659934424590adb037ed">00074</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1isbn13__algorithm.html" title="This class can be used to compute or validate checksum with a basic modulus 10 but using a custom fil...">boost::checks::isbn13_algorithm&lt;1&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#aa04af64ebe32659934424590adb037ed" title="This is the type of the ISBN-13 algorithm for computing a check digit.">isbn13_compute_algorithm</a> ;
+<a name="l00075"></a>00075
+<a name="l00088"></a>00088 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00089"></a><a class="code" href="namespaceboost_1_1checks.html#a787f7cd04f5561dcdadff392c5af0bee">00089</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a787f7cd04f5561dcdadff392c5af0bee" title="Validate a sequence according to the isbn13_check_algorithm type.">check_isbn13</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00090"></a>00090 {
+<a name="l00091"></a>00091 <span class="keywordflow">return</span> boost::checks::check_sequence&lt;isbn13_check_algorithm, EAN13_SIZE&gt; ( check_seq ) ;
+<a name="l00092"></a>00092 }
+<a name="l00093"></a>00093
+<a name="l00107"></a>00107 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00108"></a><a class="code" href="namespaceboost_1_1checks.html#a5dd55ec9238d3d11527546f34d5ce2db">00108</a> <span class="keyword">typename</span> boost::checks::isbn13_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a5dd55ec9238d3d11527546f34d5ce2db" title="Calculate the check digit of a sequence according to the isbn13_compute_algorithm type...">compute_isbn13</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00109"></a>00109 {
+<a name="l00110"></a>00110 <span class="keywordflow">return</span> boost::checks::compute_checkdigit&lt;isbn13_compute_algorithm, EAN13_SIZE_WITHOUT_CHECKDIGIT&gt; ( check_seq ) ;
+<a name="l00111"></a>00111 }
+<a name="l00112"></a>00112
+<a name="l00125"></a>00125 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00126"></a><a class="code" href="namespaceboost_1_1checks.html#af52b5d0c188f321561b69f312c93b336">00126</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#af52b5d0c188f321561b69f312c93b336" title="Validate a sequence according to the mod11_check_algorithm type.">check_isbn10</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00127"></a>00127 {
+<a name="l00128"></a>00128 <span class="keywordflow">return</span> boost::checks::check_modulus11&lt; ISBN10_SIZE &gt;( check_seq );
+<a name="l00129"></a>00129 }
+<a name="l00130"></a>00130
+<a name="l00144"></a>00144 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00145"></a><a class="code" href="namespaceboost_1_1checks.html#a41519cb136ca0786262764baa7b4622f">00145</a> <span class="keyword">typename</span> boost::checks::mod11_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a41519cb136ca0786262764baa7b4622f" title="Calculate the check digit of a sequence according to the mod11_compute_algorithm type.">compute_isbn10</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00146"></a>00146 {
+<a name="l00147"></a>00147 <span class="keywordflow">return</span> boost::checks::compute_modulus11&lt; ISBN10_SIZE_WITHOUT_CHECKDIGIT &gt;( check_seq ) ;
+<a name="l00148"></a>00148 }
+<a name="l00149"></a>00149
+<a name="l00150"></a>00150
+<a name="l00151"></a>00151 }}
+<a name="l00152"></a>00152 <span class="preprocessor">#endif // BOOST_CHECKS_ISBN_HPP</span>
 </pre></div></div>
 </div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
@@ -167,7 +155,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:52</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/luhn_8hpp.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/luhn_8hpp.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/luhn_8hpp.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:53 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -71,39 +71,53 @@
 <div class="title">I:/boost-sandbox/SOC/2011/checks/boost/checks/luhn.hpp File Reference</div> </div>
 </div>
 <div class="contents">
+
+<p>This file provides tools to compute and validate sequence with the Luhn algorithm.
+More...</p>
 <div class="textblock"><code>#include &lt;<a class="el" href="modulus10_8hpp_source.html">boost/checks/modulus10.hpp</a>&gt;</code><br/>
 </div>
 <p>Go to the source code of this file.</p>
 <table class="memberdecls">
 <tr><td colspan="2"><h2><a name="nested-classes"></a>
 Classes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1luhn__algorithm.html">boost::checks::luhn_algorithm</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1luhn__algorithm.html">boost::checks::luhn_algorithm&lt; number_of_virtual_value_skipped &gt;</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class can be used to compute or validate checksum with the Luhn algorithm. More...<br/></td></tr>
 <tr><td colspan="2"><h2><a name="namespaces"></a>
 Namespaces</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Boost <a class="el" href="crc_8hpp.html">checks/crc.hpp</a> header file ------------------------------------//. </p>
-<br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html">boost::checks</a></td></tr>
 <tr><td colspan="2"><h2><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1weight.html">boost::checks::weight</a>&lt; 1, 2 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a07ef187e34f49f346f0af0378d5acc50">boost::checks::luhn_weight</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the weight used by the Luhn algorithm. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a5a32b294c38ffb4402a883b6438bd285">boost::checks::luhn_sense</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the running sense to check an Luhn number. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef luhn_algorithm&lt; 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a19d649f8bb40c5ecd4407637ff581e75">boost::checks::luhn_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Luhn algorithm for validating a check digit. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef luhn_algorithm&lt; 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ac2e4fa7c035bea78225af042d690b0d7">boost::checks::luhn_compute_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Luhn algorithm for computing a check digit. <br/></td></tr>
 <tr><td colspan="2"><h2><a name="func-members"></a>
 Functions</h2></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a36a3ea230792e9f9ba0c02ce1c46354c">boost::checks::check_luhn</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the luhn_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a2651a01fc5a7a3eec7381f18fcb04295">boost::checks::check_luhn</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the luhn_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::luhn_compute_algorithm::checkdigit<br class="typebreak"/>
 &lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a8f86db1b7d82751de71288456d4edf0a">boost::checks::compute_luhn</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the luhn_compute_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::luhn_compute_algorithm::checkdigit<br class="typebreak"/>
 &lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a72f611fe14c840774de011e0271eb4b0">boost::checks::compute_luhn</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the luhn_compute_algorithm type. <br/></td></tr>
 </table>
-</div>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file provides tools to compute and validate sequence with the Luhn algorithm. </p>
+
+<p>Definition in file <a class="el" href="luhn_8hpp_source.html">luhn.hpp</a>.</p>
+</div></div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
 
 <!-- Copyright 2011 Pierre Talbot. -->
@@ -122,7 +136,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:53</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/luhn_8hpp_source.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/luhn_8hpp_source.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/luhn_8hpp_source.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:52 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -72,57 +72,63 @@
 <a name="l00005"></a>00005 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt>
 <a name="l00006"></a>00006 <span class="comment">// See
http://www.boost.org for updates, documentation, and revision history.</span>
 <a name="l00007"></a>00007
-<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_CHECKS_LUHN_INCLUDED</span>
-<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_CHECKS_LUHN_INCLUDED</span>
-<a name="l00010"></a>00010 <span class="preprocessor"></span>
-<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;<a class="code" href="modulus10_8hpp.html">boost/checks/modulus10.hpp</a>&gt;</span>
-<a name="l00012"></a>00012
-<a name="l00013"></a>00013 <span class="keyword">namespace </span>boost {
-<a name="l00014"></a>00014 <span class="keyword">namespace </span>checks{
-<a name="l00015"></a>00015
-<a name="l00016"></a><a class="code" href="namespaceboost_1_1checks.html#a07ef187e34f49f346f0af0378d5acc50">00016</a> <span class="keyword">typedef</span> boost<a class="code" href="structboost_1_1checks_1_1weight.html">::checks::weight&lt;1,2&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a07ef187e34f49f346f0af0378d5acc50">luhn_weight</a> ;
-<a name="l00017"></a><a class="code" href="namespaceboost_1_1checks.html#a5a32b294c38ffb4402a883b6438bd285">00017</a> <span class="keyword">typedef</span> boost<a class="code" href="structboost_1_1checks_1_1rightmost.html">::checks::rightmost</a> <a class="code" href="namespaceboost_1_1checks.html#a5a32b294c38ffb4402a883b6438bd285">luhn_sense</a> ;
-<a name="l00018"></a>00018
-<a name="l00019"></a>00019 <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> number_of_virtual_value_skipped = 0&gt;
-<a name="l00020"></a>00020 <span class="keyword">struct </span><a class="code" href="structboost_1_1checks_1_1luhn__algorithm.html">luhn_algorithm</a> : boost::checks::<a class="code" href="structboost_1_1checks_1_1modulus10__algorithm.html">modulus10_algorithm</a> &lt; luhn_weight, luhn_sense, number_of_virtual_value_skipped&gt;
-<a name="l00021"></a>00021 {
-<a name="l00022"></a><a class="code" href="structboost_1_1checks_1_1luhn__algorithm.html#aa6a185b61da1b2e994c660498a821c2a">00022</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1checks_1_1luhn__algorithm.html#aa6a185b61da1b2e994c660498a821c2a">operate_on_valid_value</a>( <span class="keyword">const</span> <span class="keywordtype">int</span> current_valid_value, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> valid_value_counter, <span class="keywordtype">int</span> &amp;checksum )
-<a name="l00023"></a>00023 {
-<a name="l00024"></a>00024 <span class="keywordtype">int</span> current_weight = <a class="code" href="structboost_1_1checks_1_1weight.html#a632fc13dc710738fa916a1b1c9715150">luhn_weight::weight_associated_with_pos</a>( valid_value_counter + number_of_virtual_value_skipped ) ;
-<a name="l00025"></a>00025 checksum += (current_valid_value &lt;&lt; (current_weight - 1)) - 9 * ( current_valid_value &lt;&lt; (current_weight - 1) &gt; 9) ;
-<a name="l00026"></a>00026 }
-<a name="l00027"></a>00027 };
+<a name="l00012"></a>00012 <span class="preprocessor">#ifndef BOOST_CHECKS_LUHN_INCLUDED</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_CHECKS_LUHN_INCLUDED</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span>
+<a name="l00015"></a>00015 <span class="preprocessor">#ifdef _MSC_VER</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor"> #pragma once</span>
+<a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00018"></a>00018 <span class="preprocessor"></span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include &lt;<a class="code" href="modulus10_8hpp.html" title="This file provides tools to compute and validate classic modulus 10 checksum.">boost/checks/modulus10.hpp</a>&gt;</span>
+<a name="l00020"></a>00020
+<a name="l00021"></a>00021 <span class="keyword">namespace </span>boost {
+<a name="l00022"></a>00022 <span class="keyword">namespace </span>checks{
+<a name="l00023"></a>00023
+<a name="l00027"></a><a class="code" href="namespaceboost_1_1checks.html#a07ef187e34f49f346f0af0378d5acc50">00027</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1weight.html" title="The weight metafunction encapsulate 0 to BOOST_CHECK_LIMIT_WEIGHTS weights.">boost::checks::weight&lt;1,2&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a07ef187e34f49f346f0af0378d5acc50" title="This is the weight used by the Luhn algorithm.">luhn_weight</a> ;
 <a name="l00028"></a>00028
-<a name="l00029"></a><a class="code" href="namespaceboost_1_1checks.html#a19d649f8bb40c5ecd4407637ff581e75">00029</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1luhn__algorithm.html">luhn_algorithm&lt;0&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a19d649f8bb40c5ecd4407637ff581e75">luhn_check_algorithm</a> ;
-<a name="l00030"></a><a class="code" href="namespaceboost_1_1checks.html#ac2e4fa7c035bea78225af042d690b0d7">00030</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1luhn__algorithm.html">luhn_algorithm&lt;1&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#ac2e4fa7c035bea78225af042d690b0d7">luhn_compute_algorithm</a> ;
-<a name="l00031"></a>00031
-<a name="l00032"></a>00032 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
-<a name="l00033"></a><a class="code" href="namespaceboost_1_1checks.html#a36a3ea230792e9f9ba0c02ce1c46354c">00033</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a36a3ea230792e9f9ba0c02ce1c46354c">check_luhn</a> (<span class="keyword">const</span> check_range&amp; check_seq)
-<a name="l00034"></a>00034 {
-<a name="l00035"></a>00035 <span class="keywordflow">return</span> boost::checks::check_sequence&lt;luhn_check_algorithm, size_expected&gt; ( check_seq ) ;
-<a name="l00036"></a>00036 }
-<a name="l00037"></a>00037
-<a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
-<a name="l00039"></a><a class="code" href="namespaceboost_1_1checks.html#a2651a01fc5a7a3eec7381f18fcb04295">00039</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a36a3ea230792e9f9ba0c02ce1c46354c">check_luhn</a> (<span class="keyword">const</span> check_range&amp; check_seq)
-<a name="l00040"></a>00040 {
-<a name="l00041"></a>00041 <span class="keywordflow">return</span> boost::checks::check_sequence&lt;luhn_check_algorithm&gt; ( check_seq ) ;
-<a name="l00042"></a>00042 }
-<a name="l00043"></a>00043
-<a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
-<a name="l00045"></a><a class="code" href="namespaceboost_1_1checks.html#a8f86db1b7d82751de71288456d4edf0a">00045</a> <span class="keyword">typename</span> boost::checks::luhn_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a8f86db1b7d82751de71288456d4edf0a">compute_luhn</a> (<span class="keyword">const</span> check_range&amp; check_seq)
-<a name="l00046"></a>00046 {
-<a name="l00047"></a>00047 <span class="keywordflow">return</span> boost::checks::compute_checkdigit&lt;luhn_compute_algorithm, size_expected&gt; ( check_seq ) ;
-<a name="l00048"></a>00048 }
-<a name="l00049"></a>00049
-<a name="l00050"></a>00050 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
-<a name="l00051"></a><a class="code" href="namespaceboost_1_1checks.html#a72f611fe14c840774de011e0271eb4b0">00051</a> <span class="keyword">typename</span> boost::checks::luhn_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a8f86db1b7d82751de71288456d4edf0a">compute_luhn</a> (<span class="keyword">const</span> check_range&amp; check_seq)
-<a name="l00052"></a>00052 {
-<a name="l00053"></a>00053 <span class="keywordflow">return</span> boost::checks::compute_checkdigit&lt;luhn_compute_algorithm&gt; ( check_seq ) ;
-<a name="l00054"></a>00054 }
-<a name="l00055"></a>00055
-<a name="l00056"></a>00056
-<a name="l00057"></a>00057 }}
-<a name="l00058"></a>00058 <span class="preprocessor">#endif // BOOST_CHECKS_LUHN_HPP</span>
+<a name="l00032"></a><a class="code" href="namespaceboost_1_1checks.html#a5a32b294c38ffb4402a883b6438bd285">00032</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1rightmost.html" title="Policy class that provides methods to run through a sequence from right to left.">boost::checks::rightmost</a> <a class="code" href="namespaceboost_1_1checks.html#a5a32b294c38ffb4402a883b6438bd285" title="This is the running sense to check an Luhn number.">luhn_sense</a> ;
+<a name="l00033"></a>00033
+<a name="l00039"></a>00039 <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> number_of_virtual_value_skipped = 0&gt;
+<a name="l00040"></a><a class="code" href="structboost_1_1checks_1_1luhn__algorithm.html">00040</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1checks_1_1luhn__algorithm.html" title="This class can be used to compute or validate checksum with the Luhn algorithm.">luhn_algorithm</a> : boost::checks::<a class="code" href="structboost_1_1checks_1_1modulus10__algorithm.html" title="This class can be used to compute or validate checksum with a basic modulus 10.">modulus10_algorithm</a> &lt; luhn_weight, luhn_sense, number_of_virtual_value_skipped&gt;
+<a name="l00041"></a>00041 {
+<a name="l00053"></a><a class="code" href="structboost_1_1checks_1_1luhn__algorithm.html#aa44f160be0c291cdc86f2354869df777">00053</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1checks_1_1luhn__algorithm.html#aa44f160be0c291cdc86f2354869df777" title="Compute the Luhn algorithm operation on the checksum.">operate_on_valid_value</a>( <span class="keyword">const</span> <span class="keywordtype">int</span> current_valid_value, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> valid_value_counter, <span class="keywordtype">int</span> &amp;checksum )
+<a name="l00054"></a>00054 {
+<a name="l00055"></a>00055 <span class="keywordtype">int</span> current_weight = <a class="code" href="structboost_1_1checks_1_1weight.html#a9b6a080a404311595af090920e215a0f" title="Get the weight at the current value position.">luhn_weight::weight_associated_with_pos</a>( valid_value_counter + number_of_virtual_value_skipped ) ;
+<a name="l00056"></a>00056 <span class="keywordtype">int</span> weighted_value = current_valid_value &lt;&lt; (current_weight-1);
+<a name="l00057"></a>00057 checksum += weighted_value % 10 + weighted_value / 10 ;
+<a name="l00058"></a>00058 }
+<a name="l00059"></a>00059 };
+<a name="l00060"></a>00060
+<a name="l00064"></a><a class="code" href="namespaceboost_1_1checks.html#a19d649f8bb40c5ecd4407637ff581e75">00064</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1luhn__algorithm.html" title="This class can be used to compute or validate checksum with the Luhn algorithm.">luhn_algorithm&lt;0&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a19d649f8bb40c5ecd4407637ff581e75" title="This is the type of the Luhn algorithm for validating a check digit.">luhn_check_algorithm</a> ;
+<a name="l00068"></a><a class="code" href="namespaceboost_1_1checks.html#ac2e4fa7c035bea78225af042d690b0d7">00068</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1luhn__algorithm.html" title="This class can be used to compute or validate checksum with the Luhn algorithm.">luhn_algorithm&lt;1&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#ac2e4fa7c035bea78225af042d690b0d7" title="This is the type of the Luhn algorithm for computing a check digit.">luhn_compute_algorithm</a> ;
+<a name="l00069"></a>00069
+<a name="l00083"></a>00083 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
+<a name="l00084"></a><a class="code" href="namespaceboost_1_1checks.html#a36a3ea230792e9f9ba0c02ce1c46354c">00084</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a36a3ea230792e9f9ba0c02ce1c46354c" title="Validate a sequence according to the luhn_check_algorithm type.">check_luhn</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00085"></a>00085 {
+<a name="l00086"></a>00086 <span class="keywordflow">return</span> boost::checks::check_sequence&lt;luhn_check_algorithm, size_expected&gt; ( check_seq ) ;
+<a name="l00087"></a>00087 }
+<a name="l00088"></a>00088
+<a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00102"></a><a class="code" href="namespaceboost_1_1checks.html#a2651a01fc5a7a3eec7381f18fcb04295">00102</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a36a3ea230792e9f9ba0c02ce1c46354c" title="Validate a sequence according to the luhn_check_algorithm type.">check_luhn</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00103"></a>00103 {
+<a name="l00104"></a>00104 <span class="keywordflow">return</span> boost::checks::check_sequence&lt;luhn_check_algorithm&gt; ( check_seq ) ;
+<a name="l00105"></a>00105 }
+<a name="l00106"></a>00106
+<a name="l00121"></a>00121 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
+<a name="l00122"></a><a class="code" href="namespaceboost_1_1checks.html#a8f86db1b7d82751de71288456d4edf0a">00122</a> <span class="keyword">typename</span> boost::checks::luhn_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a8f86db1b7d82751de71288456d4edf0a" title="Calculate the check digit of a sequence according to the luhn_compute_algorithm type.">compute_luhn</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00123"></a>00123 {
+<a name="l00124"></a>00124 <span class="keywordflow">return</span> boost::checks::compute_checkdigit&lt;luhn_compute_algorithm, size_expected&gt; ( check_seq ) ;
+<a name="l00125"></a>00125 }
+<a name="l00126"></a>00126
+<a name="l00140"></a>00140 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00141"></a><a class="code" href="namespaceboost_1_1checks.html#a72f611fe14c840774de011e0271eb4b0">00141</a> <span class="keyword">typename</span> boost::checks::luhn_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a8f86db1b7d82751de71288456d4edf0a" title="Calculate the check digit of a sequence according to the luhn_compute_algorithm type.">compute_luhn</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00142"></a>00142 {
+<a name="l00143"></a>00143 <span class="keywordflow">return</span> boost::checks::compute_checkdigit&lt;luhn_compute_algorithm&gt; ( check_seq ) ;
+<a name="l00144"></a>00144 }
+<a name="l00145"></a>00145
+<a name="l00146"></a>00146
+<a name="l00147"></a>00147 }}
+<a name="l00148"></a>00148 <span class="preprocessor">#endif // BOOST_CHECKS_LUHN_HPP</span>
 </pre></div></div>
 </div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
@@ -143,7 +149,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:52</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/mastercard_8hpp.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/mastercard_8hpp.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/mastercard_8hpp.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:53 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -63,21 +63,91 @@
 </div>
 <div class="header">
   <div class="summary">
-Namespaces </div>
+Classes &#124;
+Namespaces &#124;
+Defines &#124;
+Typedefs &#124;
+Functions </div>
   <div class="headertitle">
 <div class="title">I:/boost-sandbox/SOC/2011/checks/boost/checks/mastercard.hpp File Reference</div> </div>
 </div>
 <div class="contents">
 
+<p>This file provides tools to compute and validate a Mastercard credit card number.
+More...</p>
+<div class="textblock"><code>#include &lt;<a class="el" href="luhn_8hpp_source.html">boost/checks/luhn.hpp</a>&gt;</code><br/>
+</div>
 <p>Go to the source code of this file.</p>
 <table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1mastercard__algorithm.html">boost::checks::mastercard_algorithm&lt; number_of_virtual_value_skipped &gt;</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class can be used to compute or validate checksum with the Luhn algorithm but filter following the Mastercard pattern. More...<br/></td></tr>
 <tr><td colspan="2"><h2><a name="namespaces"></a>
 Namespaces</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Boost <a class="el" href="crc_8hpp.html">checks/crc.hpp</a> header file ------------------------------------//. </p>
-<br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html">boost::checks</a></td></tr>
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mastercard_8hpp.html#a9c3148a8387bb2d79225356d4505e50e">MASTERCARD_SIZE</a>&#160;&#160;&#160;16</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This macro defines the size of a Mastercard number. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mastercard_8hpp.html#a8ad1373b555771d052d6f272a433c1e0">MASTERCARD_SIZE_WITHOUT_CHECKDIGIT</a>&#160;&#160;&#160;15</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This macro defines the size of a Mastercard number without its check digit. <br/></td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef mastercard_algorithm&lt; 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a216597b28715b6f774d51ba2ffa9e38d">boost::checks::mastercard_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Mastercard algorithm for validating a check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef mastercard_algorithm&lt; 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a8da35e1a8a76d25048b5258df10ecff5">boost::checks::mastercard_compute_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Mastercard algorithm for computing a check digit. <br/></td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ae9e7b0798732cefb3c6d51a4cc68d09c">boost::checks::check_mastercard</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the mastercard_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::mastercard_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a0f8b86d5edf6cc569f494bb890c83dcc">boost::checks::compute_mastercard</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the mastercard_compute_algorithm type. <br/></td></tr>
 </table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file provides tools to compute and validate a Mastercard credit card number. </p>
+
+<p>Definition in file <a class="el" href="mastercard_8hpp_source.html">mastercard.hpp</a>.</p>
+</div><hr/><h2>Define Documentation</h2>
+<a class="anchor" id="a9c3148a8387bb2d79225356d4505e50e"></a><!-- doxytag: member="mastercard.hpp::MASTERCARD_SIZE" ref="a9c3148a8387bb2d79225356d4505e50e" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define MASTERCARD_SIZE&#160;&#160;&#160;16</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This macro defines the size of a Mastercard number. </p>
+
+<p>Definition at line <a class="el" href="mastercard_8hpp_source.html#l00024">24</a> of file <a class="el" href="mastercard_8hpp_source.html">mastercard.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8ad1373b555771d052d6f272a433c1e0"></a><!-- doxytag: member="mastercard.hpp::MASTERCARD_SIZE_WITHOUT_CHECKDIGIT" ref="a8ad1373b555771d052d6f272a433c1e0" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define MASTERCARD_SIZE_WITHOUT_CHECKDIGIT&#160;&#160;&#160;15</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This macro defines the size of a Mastercard number without its check digit. </p>
+
+<p>Definition at line <a class="el" href="mastercard_8hpp_source.html#l00028">28</a> of file <a class="el" href="mastercard_8hpp_source.html">mastercard.hpp</a>.</p>
+
+</div>
+</div>
 </div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
 
@@ -97,7 +167,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:53</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/mastercard_8hpp_source.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/mastercard_8hpp_source.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/mastercard_8hpp_source.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:53 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -72,19 +72,55 @@
 <a name="l00005"></a>00005 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt>
 <a name="l00006"></a>00006 <span class="comment">// See
http://www.boost.org for updates, documentation, and revision history.</span>
 <a name="l00007"></a>00007
-<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_MASTERCARD_INCLUDED</span>
-<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_MASTERCARD_INCLUDED</span>
-<a name="l00010"></a>00010 <span class="preprocessor"></span>
-<a name="l00011"></a>00011
-<a name="l00012"></a>00012 <span class="keyword">namespace </span>boost {
-<a name="l00013"></a>00013 <span class="keyword">namespace </span>checks{
-<a name="l00014"></a>00014
-<a name="l00015"></a>00015 <span class="comment">/* Mastercard : use luhn algorithm */</span>
-<a name="l00016"></a>00016
-<a name="l00017"></a>00017 } <span class="comment">// namespace checks</span>
-<a name="l00018"></a>00018 } <span class="comment">// namespace boost</span>
-<a name="l00019"></a>00019
-<a name="l00020"></a>00020 <span class="preprocessor">#endif</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#ifndef BOOST_CHECKS_MASTERCARD_HPP</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_CHECKS_MASTERCARD_HPP</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span>
+<a name="l00015"></a>00015 <span class="preprocessor">#ifdef _MSC_VER</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor"> #pragma once</span>
+<a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00018"></a>00018 <span class="preprocessor"></span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include &lt;<a class="code" href="luhn_8hpp.html" title="This file provides tools to compute and validate sequence with the Luhn algorithm.">boost/checks/luhn.hpp</a>&gt;</span>
+<a name="l00020"></a>00020
+<a name="l00024"></a><a class="code" href="mastercard_8hpp.html#a9c3148a8387bb2d79225356d4505e50e">00024</a> <span class="preprocessor">#define MASTERCARD_SIZE 16</span>
+<a name="l00025"></a>00025 <span class="preprocessor"></span>
+<a name="l00028"></a><a class="code" href="mastercard_8hpp.html#a8ad1373b555771d052d6f272a433c1e0">00028</a> <span class="preprocessor">#define MASTERCARD_SIZE_WITHOUT_CHECKDIGIT 15</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span>
+<a name="l00030"></a>00030 <span class="keyword">namespace </span>boost {
+<a name="l00031"></a>00031 <span class="keyword">namespace </span>checks{
+<a name="l00032"></a>00032
+<a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> number_of_virtual_value_skipped = 0&gt;
+<a name="l00039"></a><a class="code" href="structboost_1_1checks_1_1mastercard__algorithm.html">00039</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1checks_1_1mastercard__algorithm.html" title="This class can be used to compute or validate checksum with the Luhn algorithm but filter following t...">mastercard_algorithm</a> : boost::checks::<a class="code" href="structboost_1_1checks_1_1luhn__algorithm.html" title="This class can be used to compute or validate checksum with the Luhn algorithm.">luhn_algorithm</a> &lt; number_of_virtual_value_skipped &gt;
+<a name="l00040"></a>00040 {
+<a name="l00051"></a><a class="code" href="structboost_1_1checks_1_1mastercard__algorithm.html#a5b66ffb180129ad064e538671adab514">00051</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1checks_1_1mastercard__algorithm.html#a5b66ffb180129ad064e538671adab514" title="Verify that a number matches the Mastercard pattern.">filter_valid_value_with_pos</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_valid_value, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_value_position )
+<a name="l00052"></a>00052 {
+<a name="l00053"></a>00053 <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> real_pos_from_left = <a class="code" href="mastercard_8hpp.html#a9c3148a8387bb2d79225356d4505e50e" title="This macro defines the size of a Mastercard number.">MASTERCARD_SIZE</a> - current_value_position - number_of_virtual_value_skipped ;
+<a name="l00054"></a>00054
+<a name="l00055"></a>00055 <span class="keywordflow">if</span>( real_pos_from_left == 1 &amp;&amp; current_valid_value != 5)
+<a name="l00056"></a>00056 <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;The Major Industry Identifier of a Mastercard should be 5.&quot;</span>) ;
+<a name="l00057"></a>00057 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( real_pos_from_left == 2 &amp;&amp; (current_valid_value == 0 || current_valid_value &gt; 5) )
+<a name="l00058"></a>00058 <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;The Issuer Identification Number of an Mastercard should be between 51 and 55.&quot;</span> ) ;
+<a name="l00059"></a>00059 }
+<a name="l00060"></a>00060 };
+<a name="l00061"></a>00061
+<a name="l00065"></a><a class="code" href="namespaceboost_1_1checks.html#a216597b28715b6f774d51ba2ffa9e38d">00065</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1mastercard__algorithm.html" title="This class can be used to compute or validate checksum with the Luhn algorithm but filter following t...">mastercard_algorithm&lt;0&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a216597b28715b6f774d51ba2ffa9e38d" title="This is the type of the Mastercard algorithm for validating a check digit.">mastercard_check_algorithm</a> ;
+<a name="l00069"></a><a class="code" href="namespaceboost_1_1checks.html#a8da35e1a8a76d25048b5258df10ecff5">00069</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1mastercard__algorithm.html" title="This class can be used to compute or validate checksum with the Luhn algorithm but filter following t...">mastercard_algorithm&lt;1&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a8da35e1a8a76d25048b5258df10ecff5" title="This is the type of the Mastercard algorithm for computing a check digit.">mastercard_compute_algorithm</a> ;
+<a name="l00070"></a>00070
+<a name="l00084"></a>00084 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00085"></a><a class="code" href="namespaceboost_1_1checks.html#ae9e7b0798732cefb3c6d51a4cc68d09c">00085</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#ae9e7b0798732cefb3c6d51a4cc68d09c" title="Validate a sequence according to the mastercard_check_algorithm type.">check_mastercard</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00086"></a>00086 {
+<a name="l00087"></a>00087 <span class="keywordflow">return</span> boost::checks::check_sequence&lt;mastercard_check_algorithm, MASTERCARD_SIZE&gt; ( check_seq ) ;
+<a name="l00088"></a>00088 }
+<a name="l00089"></a>00089
+<a name="l00104"></a>00104 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00105"></a><a class="code" href="namespaceboost_1_1checks.html#a0f8b86d5edf6cc569f494bb890c83dcc">00105</a> <span class="keyword">typename</span> boost::checks::mastercard_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a0f8b86d5edf6cc569f494bb890c83dcc" title="Calculate the check digit of a sequence according to the mastercard_compute_algorithm type...">compute_mastercard</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00106"></a>00106 {
+<a name="l00107"></a>00107 <span class="keywordflow">return</span> boost::checks::compute_checkdigit&lt;mastercard_compute_algorithm, MASTERCARD_SIZE_WITHOUT_CHECKDIGIT&gt; ( check_seq ) ;
+<a name="l00108"></a>00108 }
+<a name="l00109"></a>00109
+<a name="l00110"></a>00110
+<a name="l00111"></a>00111 }}
+<a name="l00112"></a>00112 <span class="preprocessor">#endif // BOOST_CHECKS_MASTERCARD_HPP</span>
+<a name="l00113"></a>00113 <span class="preprocessor"></span>
 </pre></div></div>
 </div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
@@ -105,7 +141,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:53</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespaceboost.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespaceboost.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespaceboost.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:53 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -68,17 +68,12 @@
 <div class="title">boost Namespace Reference</div> </div>
 </div>
 <div class="contents">
-
-<p>Boost <a class="el" href="crc_8hpp.html">checks/crc.hpp</a> header file ------------------------------------//.
-More...</p>
 <table class="memberdecls">
 <tr><td colspan="2"><h2><a name="namespaces"></a>
 Namespaces</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html">checks</a></td></tr>
 </table>
-<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Boost <a class="el" href="crc_8hpp.html">checks/crc.hpp</a> header file ------------------------------------//. </p>
-</div></div>
+</div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
 
 <!-- Copyright 2011 Pierre Talbot. -->
@@ -97,7 +92,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:53</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespaceboost_1_1checks.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespaceboost_1_1checks.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespaceboost_1_1checks.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:53 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -79,819 +79,821 @@
 <table class="memberdecls">
 <tr><td colspan="2"><h2><a name="nested-classes"></a>
 Classes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1basic__check__algorithm.html">basic_check_algorithm</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1rightmost.html">rightmost</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1leftmost.html">leftmost</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1strict__size__contract.html">strict_size_contract</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1no__null__size__contract.html">no_null_size_contract</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1luhn__algorithm.html">luhn_algorithm</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1modulus10__algorithm.html">modulus10_algorithm</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1modulus11__algorithm.html">modulus11_algorithm</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1modulus97__algorithm.html">modulus97_algorithm</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1make__mod97__weight.html">make_mod97_weight</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1amex__algorithm.html">amex_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class can be used to compute or validate checksum with the Luhn algorithm but filter following the amex pattern. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1basic__check__algorithm.html">basic_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The main check algorithm class that provides every static functions that can be overloaded.<br/>
+ Most of the functions must be re-implemented to have the desired behavior. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1isbn13__algorithm.html">isbn13_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class can be used to compute or validate checksum with a basic modulus 10 but using a custom filter for the ISBN-13 prefix. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1rightmost.html">rightmost</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Policy class that provides methods to run through a sequence from right to left. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1leftmost.html">leftmost</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Policy class that provides methods to run through a sequence from left to right. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1strict__size__contract.html">strict_size_contract</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is a contract class used to verify that a sequence have the expected size. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1no__null__size__contract.html">no_null_size_contract</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is a contract class used to verify that a sequence have not a size of zero. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1luhn__algorithm.html">luhn_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class can be used to compute or validate checksum with the Luhn algorithm. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1mastercard__algorithm.html">mastercard_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class can be used to compute or validate checksum with the Luhn algorithm but filter following the Mastercard pattern. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1modulus10__algorithm.html">modulus10_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class can be used to compute or validate checksum with a basic modulus 10. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1modulus11__algorithm.html">modulus11_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class can be used to compute or validate checksum with a basic modulus 11. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1modulus97__algorithm.html">modulus97_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class can be used to compute or validate checksum with a basic modulus 97. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1make__mod97__weight.html">make_mod97_weight</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class is used to pre-computed the weight of the mod97-10 algorithm (a = 1; a = a * 10 % 97 ;). More...<br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1make__mod97__weight_3_0168_01_4.html">make_mod97_weight&lt; 68 &gt;</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1checks_1_1traduction__exception.html">traduction_exception</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1verhoeff__algorithm.html">verhoeff_algorithm</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1weight.html">weight</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1weighted__sum__algorithm.html">weighted_sum_algorithm</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1checks_1_1translation__exception.html">translation_exception</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class provides support for translation failure. For example, sequence value into integer, or integer into check digit type. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1verhoeff__algorithm.html">verhoeff_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class can be used to compute or validate checksum with the Verhoeff algorithm. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1visa__algorithm.html">visa_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class can be used to compute or validate checksum with the Luhn algorithm but filter following the Visa pattern. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1weight.html">weight</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The weight metafunction encapsulate 0 to BOOST_CHECK_LIMIT_WEIGHTS weights. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1weighted__sum__algorithm.html">weighted_sum_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class permit to add to the current checksum the weight multiply by the current value. More...<br/></td></tr>
 <tr><td colspan="2"><h2><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1amex__algorithm.html">amex_algorithm</a>&lt; 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ad6e89cce2497202c43286e24ee800903">amex_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Amex algorithm for validating a check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1amex__algorithm.html">amex_algorithm</a>&lt; 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a8e61204056ca87bdb92f246c12774b5d">amex_compute_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Amex algorithm for computing a check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1weight.html">boost::checks::weight</a>&lt; 1, 3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a9954b4088442885ef6e2576de09a447a">ean_weight</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the weight used by EAN system. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a5777fac9f48a6435fb586c59c3cfe85b">ean_sense</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the running sense to check an EAN. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
+<a class="el" href="structboost_1_1checks_1_1modulus10__algorithm.html">boost::checks::modulus10_algorithm</a><br class="typebreak"/>
+&lt; <a class="el" href="namespaceboost_1_1checks.html#a9954b4088442885ef6e2576de09a447a">ean_weight</a>, <a class="el" href="namespaceboost_1_1checks.html#a5777fac9f48a6435fb586c59c3cfe85b">ean_sense</a>, 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a7ade1a7caf15a4e84fe883128d230415">ean_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the EAN algorithm for validating a check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
+<a class="el" href="structboost_1_1checks_1_1modulus10__algorithm.html">boost::checks::modulus10_algorithm</a><br class="typebreak"/>
+&lt; <a class="el" href="namespaceboost_1_1checks.html#a9954b4088442885ef6e2576de09a447a">ean_weight</a>, <a class="el" href="namespaceboost_1_1checks.html#a5777fac9f48a6435fb586c59c3cfe85b">ean_sense</a>, 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a155a87965d77be3e8ca147deca9e8642">ean_compute_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the EAN algorithm for computing a check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
+<a class="el" href="structboost_1_1checks_1_1isbn13__algorithm.html">boost::checks::isbn13_algorithm</a>&lt; 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a268063a04f4922a2fa58daf19baa616c">isbn13_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the ISBN-13 algorithm for validating a check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
+<a class="el" href="structboost_1_1checks_1_1isbn13__algorithm.html">boost::checks::isbn13_algorithm</a>&lt; 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#aa04af64ebe32659934424590adb037ed">isbn13_compute_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the ISBN-13 algorithm for computing a check digit. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1weight.html">boost::checks::weight</a>&lt; 1, 2 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a07ef187e34f49f346f0af0378d5acc50">luhn_weight</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the weight used by the Luhn algorithm. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a5a32b294c38ffb4402a883b6438bd285">luhn_sense</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the running sense to check an Luhn number. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1luhn__algorithm.html">luhn_algorithm</a>&lt; 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a19d649f8bb40c5ecd4407637ff581e75">luhn_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Luhn algorithm for validating a check digit. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1luhn__algorithm.html">luhn_algorithm</a>&lt; 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ac2e4fa7c035bea78225af042d690b0d7">luhn_compute_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Luhn algorithm for computing a check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1mastercard__algorithm.html">mastercard_algorithm</a>&lt; 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a216597b28715b6f774d51ba2ffa9e38d">mastercard_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Mastercard algorithm for validating a check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1mastercard__algorithm.html">mastercard_algorithm</a>&lt; 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a8da35e1a8a76d25048b5258df10ecff5">mastercard_compute_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Mastercard algorithm for computing a check digit. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1weight.html">boost::checks::weight</a>&lt; 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a64fa88448138043e7005fd6a8ab96ca0">mod11_weight</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The most common weight pattern used with a modulus 11 algorithm. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a301a34d78937488786d783d37703e61f">mod11_sense</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The most common iteration sense used with a modulus 11 algorithm. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1modulus11__algorithm.html">modulus11_algorithm</a><br class="typebreak"/>
 &lt; <a class="el" href="namespaceboost_1_1checks.html#a64fa88448138043e7005fd6a8ab96ca0">mod11_weight</a>, <a class="el" href="namespaceboost_1_1checks.html#a301a34d78937488786d783d37703e61f">mod11_sense</a>, 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a3e7a6811ebe47566037d3df5b984b654">mod11_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the most common modulus 11 algorithm for validating a check digit. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1modulus11__algorithm.html">modulus11_algorithm</a><br class="typebreak"/>
 &lt; <a class="el" href="namespaceboost_1_1checks.html#a64fa88448138043e7005fd6a8ab96ca0">mod11_weight</a>, <a class="el" href="namespaceboost_1_1checks.html#a301a34d78937488786d783d37703e61f">mod11_sense</a>, 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a335686e6e27a2f273da403df3e8a7ce2">mod11_compute_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the most common modulus 11 algorithm for computing a check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1make__mod97__weight.html">make_mod97_weight</a>&lt; 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a6e393a7c0f86be5625ed099b1f19a7a2">initial_mod97_weight</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the initial weight for the mod97-10 weights serie. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1weight.html">boost::checks::weight</a><br class="typebreak"/>
 &lt; BOOST_PP_ENUM(96, <br class="typebreak"/>
-MOD97_make_weight,~) &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#aaa3252ba0a0eca194744be0cfbb56ae0">mod97_10_weight</a></td></tr>
+MOD97_weight_maker,~) &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a8ecfb8f9e67b6348df22bdb2934e10d6">mod97_10_weight</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is weight of the mod97-10 algorithm. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a877b2a498e290daf7bd3894298c162ae">mod97_10_sense</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The iteration sense of the sequence. From right to left. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1modulus97__algorithm.html">modulus97_algorithm</a><br class="typebreak"/>
-&lt; <a class="el" href="namespaceboost_1_1checks.html#aaa3252ba0a0eca194744be0cfbb56ae0">mod97_10_weight</a>, <br class="typebreak"/>
+&lt; <a class="el" href="namespaceboost_1_1checks.html#a8ecfb8f9e67b6348df22bdb2934e10d6">mod97_10_weight</a>, <br class="typebreak"/>
 <a class="el" href="namespaceboost_1_1checks.html#a877b2a498e290daf7bd3894298c162ae">mod97_10_sense</a>, 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a381ae47bc53437d1f84e8a252964a8cb">mod97_10_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the modulus 97-10 algorithm for validating a check digit. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1modulus97__algorithm.html">modulus97_algorithm</a><br class="typebreak"/>
-&lt; <a class="el" href="namespaceboost_1_1checks.html#aaa3252ba0a0eca194744be0cfbb56ae0">mod97_10_weight</a>, <br class="typebreak"/>
+&lt; <a class="el" href="namespaceboost_1_1checks.html#a8ecfb8f9e67b6348df22bdb2934e10d6">mod97_10_weight</a>, <br class="typebreak"/>
 <a class="el" href="namespaceboost_1_1checks.html#a877b2a498e290daf7bd3894298c162ae">mod97_10_sense</a>, 2 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#aca43234abcde3ab58a2092a3283829a5">mod97_10_compute_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the modulus 97-10 algorithm for computing a check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1weight.html">boost::checks::weight</a>&lt; 1, 3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#acbf981f5856e57b68e8860594f9aa572">upc_weight</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the weight used by UPC system. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#af677c97bdddd63cbe273974672c03616">upc_sense</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the running sense to check an UPC. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
+<a class="el" href="structboost_1_1checks_1_1modulus10__algorithm.html">boost::checks::modulus10_algorithm</a><br class="typebreak"/>
+&lt; <a class="el" href="namespaceboost_1_1checks.html#acbf981f5856e57b68e8860594f9aa572">upc_weight</a>, <a class="el" href="namespaceboost_1_1checks.html#af677c97bdddd63cbe273974672c03616">upc_sense</a>, 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a6ab9ef49508b3081845481fdfe7bb78f">upc_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the UPC algorithm for validating a check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
+<a class="el" href="structboost_1_1checks_1_1modulus10__algorithm.html">boost::checks::modulus10_algorithm</a><br class="typebreak"/>
+&lt; <a class="el" href="namespaceboost_1_1checks.html#acbf981f5856e57b68e8860594f9aa572">upc_weight</a>, <a class="el" href="namespaceboost_1_1checks.html#af677c97bdddd63cbe273974672c03616">upc_sense</a>, 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a4a8f9d39418287c4004d9ed79e4b1240">upc_compute_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the UPC algorithm for computing a check digit. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a752731034c77974a50e886866ca5895a">verhoeff_iteration_sense</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the sense of the Verhoeff sequence iteration. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1verhoeff__algorithm.html">verhoeff_algorithm</a>&lt; 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a5ce2d0db03cfe90a961779538d897a22">verhoeff_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Verhoeff algorithm for validating a check digit. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1verhoeff__algorithm.html">verhoeff_algorithm</a>&lt; 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a93cfc6f3a20335c421e20f92d3c821c8">verhoeff_compute_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Verhoeff algorithm for computing a check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1visa__algorithm.html">visa_algorithm</a>&lt; 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a6d5c430a2bceeedf1002d92a98aa4c43">visa_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Visa algorithm for validating a check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1visa__algorithm.html">visa_algorithm</a>&lt; 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a323a27cc40681492362fb3c0893979cb">visa_compute_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Visa algorithm for computing a check digit. <br/></td></tr>
 <tr><td colspan="2"><h2><a name="func-members"></a>
 Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a2aff225983f36758feaba34662173b53">check_amex</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the amex_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::amex_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a04b6c190de7e9bb7a99841a8ad996459">compute_amex</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the amex_compute_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename algorithm , typename size_contract , typename iterator &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a47d3a9835bc33566a01ca5614a13f1fe">compute_checksum</a> (iterator seq_begin, iterator seq_end)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Run through a sequence and calculate the checksum with the algorithm policy class. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename algorithm , typename size_contract , typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a635c57c7b253fcadc1dfa5415d7647b1">compute_checksum</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create iterators according to the algorithm::iterator policy. And call the iterator overload version of compute_checksum. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename algorithm , typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a3e9f9bfde34262ad3f4e69ddf2e1bbd4">check_sequence</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to algorithm. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename algorithm , size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a574b80a0aafa204b1079de298dad8ea5">check_sequence</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to algorithm. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename algorithm , typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">algorithm::checkdigit<br class="typebreak"/>
 &lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#af2694703fb484efc186146542e4a7c53">compute_checkdigit</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to algorithm. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename algorithm , size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">algorithm::checkdigit<br class="typebreak"/>
 &lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a58d8bcbe9cc7d264f4a2b09d49717a56">compute_checkdigit</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to algorithm. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename algorithm , typename check_range , typename checkdigit_iterator &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">checkdigit_iterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#adbf0f4f0f946d7c47fddd7553d9cd065">compute_multicheckdigit</a> (const check_range &amp;check_seq, checkdigit_iterator checkdigits)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the checkdigits of a sequence according to algorithm. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename algorithm , size_t size_expected, typename check_range , typename checkdigit_iterator &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">checkdigit_iterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a5b6bdc6137cc4bc9b494138fa8b6127c">compute_multicheckdigit</a> (const check_range &amp;check_seq, checkdigit_iterator checkdigits)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the checkdigits of a sequence according to algorithm. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a36a3ea230792e9f9ba0c02ce1c46354c">check_luhn</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the luhn_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a2651a01fc5a7a3eec7381f18fcb04295">check_luhn</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the luhn_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::luhn_compute_algorithm::checkdigit<br class="typebreak"/>
 &lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a8f86db1b7d82751de71288456d4edf0a">compute_luhn</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the luhn_compute_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::luhn_compute_algorithm::checkdigit<br class="typebreak"/>
 &lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a72f611fe14c840774de011e0271eb4b0">compute_luhn</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the luhn_compute_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#abe6ccc42ec484aac046ea80bfaad4ae4">check_verhoeff</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the verhoeff_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a86e8991bc68fab9958a902b140bd05c6">check_verhoeff</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the verhoeff_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::verhoeff_compute_algorithm::checkdigit<br class="typebreak"/>
 &lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a069b69920cc6182e4bd0f1414cdc7747">compute_verhoeff</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the verhoeff_compute_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::verhoeff_compute_algorithm::checkdigit<br class="typebreak"/>
 &lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a4bcb041b2939d1b52d223b9372b24536">compute_verhoeff</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the verhoeff_compute_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#acb7e8e0940822a9cb6836251c064e03f">check_modulus11</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the mod11_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a2d76774a0b153e9046cd18823cc12dd6">check_modulus11</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the mod11_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::mod11_compute_algorithm::checkdigit<br class="typebreak"/>
 &lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a65a3b463188c57b0991eeb513e36817d">compute_modulus11</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the mod11_compute_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::mod11_compute_algorithm::checkdigit<br class="typebreak"/>
 &lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a9cb1939fed27705a86a2e609c49e35e5">compute_modulus11</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the mod11_compute_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#afbc1a04be2d50c0caeb8f15237930513">check_mod97_10</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the mod97_10_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#aa32d98f0c9606a1d46786a57151c81ab">check_mod97_10</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the mod97_10_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range , typename checkdigits_iter &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">checkdigits_iter&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#aa4c7db694c89fb4ba0a2b288776c66f3">compute_mod97_10</a> (const check_range &amp;check_seq, checkdigits_iter mod97_checkdigits)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digits of a sequence according to the mod97_10_compute_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range , typename checkdigits_iter &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">checkdigits_iter&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a8f1e84d2acc21b23ebe972ca73a879b7">compute_mod97_10</a> (const check_range &amp;check_seq, checkdigits_iter mod97_checkdigits)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a5ee705fcc8ca3f666b238eea344913a8">Is_ean8</a> (In ean_begin, In ean_end)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">char&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a95182d3e9906feaa08450142a74ac958">ean8_check_digit</a> (In ean_begin, In ean_end)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In , class Prefix &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a0f8eb5d1aa18e2ffb31cf5171d2bfe47">Is_ean13</a> (In ean_begin, In ean_end, Prefix ean_prefix_begin=null, Prefix ean_prefix_end=null)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">char&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ae675f57e175d0da388219dc6bc742ed3">ean13_check_digit</a> (In ean_begin, In ean_end)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ac1b614e02e1f754bbf700c757160bbfe">Is_isbn10</a> (In isbn_begin, In isbn_end)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">char&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#aa8f170503844cf15cc4b0296c241e947">isbn10_check_digit</a> (In isbn_begin, In isbn_end)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ad94e11097f0451dacc57e5dadc9e0356">Is_isbn13</a> (In isbn_begin, In isbn_end)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">char&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#aad0aa8b4907502a3cd4c2eaf63d34277">isbn13_check_digit</a> (In isbn_begin, In isbn_end)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename luhn_iter &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a084b58dbddd6ad96be2c625086e44534">check_luhn</a> (luhn_iter &amp;begin, const luhn_iter &amp;end, std::size_t nbr_digits)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename luhn_iter &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">char&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a0c7d6a470894c687d5dff05996f5757c">compute_luhn</a> (luhn_iter &amp;begin, const luhn_iter &amp;end, std::size_t nbr_digits)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename luhn_checkdigit , typename luhn_iter &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">luhn_checkdigit&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a081faed2c6f4a1be7fd09aef7f0edf52">compute_luhn</a> (luhn_iter &amp;begin, const luhn_iter &amp;end, std::size_t nbr_digits)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename mod10_iter , typename weight_t &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a2cae3e674bd94ba471dcb91fe21ca57a">check_mod10</a> (mod10_iter &amp;begin, const mod10_iter &amp;end, const weight_t &amp;<a class="el" href="structboost_1_1checks_1_1weight.html">weight</a>, std::size_t nbr_digits)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename mod10_iter , typename weight_t &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">char&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#af07be2309007468b136b99fd98b9bd64">compute_mod10</a> (mod10_iter &amp;begin, const mod10_iter &amp;end, const weight_t &amp;<a class="el" href="structboost_1_1checks_1_1weight.html">weight</a>, std::size_t nbr_digits)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename mod10_checkdigit , typename mod10_iter , typename weight_t &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">mod10_checkdigit&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a3c69232ff7e99030c18496c5810b3add">compute_mod10</a> (mod10_iter &amp;begin, const mod10_iter &amp;end, const weight_t &amp;<a class="el" href="structboost_1_1checks_1_1weight.html">weight</a>, std::size_t nbr_digits)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename mod11_iter &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a1d8fca39772cfb1be8ec91cbbec097e9">check_mod11</a> (mod11_iter &amp;begin, const mod11_iter &amp;end, std::size_t nbr_digits)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename mod11_iter &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">char&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a3533e8c8f814d018b9cd48b689cf37f5">compute_mod11</a> (mod11_iter &amp;begin, const mod11_iter &amp;end, std::size_t nbr_digits)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename mod11_checkdigit , typename mod11_iter &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">mod11_checkdigit&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#aca0c048503be271cac917bfff92d08bb">compute_mod11</a> (mod11_iter &amp;begin, const mod11_iter &amp;end, std::size_t nbr_digits)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename mod97_iter &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ad5ddc70e24dff8523c786e8f840f4a83">check_mod97</a> (mod97_iter &amp;begin, const mod97_iter &amp;end, std::size_t nbr_digits)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename mod97_iter &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">char&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a4c64fe520dcd8a9020e9165fc163f490">compute_mod97</a> (mod97_iter &amp;begin, const mod97_iter &amp;end, std::size_t nbr_digits)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a1371260adf7744f307e9742db72c79f0">Is_upca</a> (In upc_begin, In upc_end)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">char&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#aa2da70ce43176c0c4b1acd495671c1e2">upca_check_digit</a> (In upc_begin, In upc_end)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digits of a sequence according to the mod97_10_compute_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a99f1f79f65b14f9f2c68477c69ab7420">check_ean13</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the ean_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::ean_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ac08dd90c2f9518ad9f9addb3863db98e">compute_ean13</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the ean_compute_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a1d5df84c16aa8c879214bf8f6a6993ea">check_ean8</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the ean_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::ean_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#adb63ff3a11463aba48f55b5d96dfada1">compute_ean8</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the ean_compute_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#af52b5d0c188f321561b69f312c93b336">check_isbn10</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the mod11_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::mod11_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a41519cb136ca0786262764baa7b4622f">compute_isbn10</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the mod11_compute_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a787f7cd04f5561dcdadff392c5af0bee">check_isbn13</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the isbn13_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::isbn13_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a5dd55ec9238d3d11527546f34d5ce2db">compute_isbn13</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the isbn13_compute_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a944d9977c2db906b76346bc76928f06d">check_upca</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the upc_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::upc_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ae494e5fd020da1bacf88547eda843b81">compute_upca</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the upc_compute_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ab59d983a0e6f7df034570cdf7e14bdcb">check_visa</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the visa_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::visa_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a4770ebdffc040e9cc9cb1fb6f1d75457">compute_visa</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the visa_compute_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ae9e7b0798732cefb3c6d51a4cc68d09c">check_mastercard</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the mastercard_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::mastercard_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a0f8b86d5edf6cc569f494bb890c83dcc">compute_mastercard</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the mastercard_compute_algorithm type. <br/></td></tr>
 </table>
 <hr/><h2>Typedef Documentation</h2>
-<a class="anchor" id="a19d649f8bb40c5ecd4407637ff581e75"></a><!-- doxytag: member="boost::checks::luhn_check_algorithm" ref="a19d649f8bb40c5ecd4407637ff581e75" args="" -->
+<a class="anchor" id="ad6e89cce2497202c43286e24ee800903"></a><!-- doxytag: member="boost::checks::amex_check_algorithm" ref="ad6e89cce2497202c43286e24ee800903" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
- <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1luhn__algorithm.html">luhn_algorithm</a>&lt;0&gt; <a class="el" href="namespaceboost_1_1checks.html#a19d649f8bb40c5ecd4407637ff581e75">boost::checks::luhn_check_algorithm</a></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1amex__algorithm.html">amex_algorithm</a>&lt;0&gt; <a class="el" href="namespaceboost_1_1checks.html#ad6e89cce2497202c43286e24ee800903">boost::checks::amex_check_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="luhn_8hpp_source.html#l00029">29</a> of file <a class="el" href="luhn_8hpp_source.html">luhn.hpp</a>.</p>
+<p>This is the type of the Amex algorithm for validating a check digit. </p>
+
+<p>Definition at line <a class="el" href="amex_8hpp_source.html#l00065">65</a> of file <a class="el" href="amex_8hpp_source.html">amex.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ac2e4fa7c035bea78225af042d690b0d7"></a><!-- doxytag: member="boost::checks::luhn_compute_algorithm" ref="ac2e4fa7c035bea78225af042d690b0d7" args="" -->
+<a class="anchor" id="a8e61204056ca87bdb92f246c12774b5d"></a><!-- doxytag: member="boost::checks::amex_compute_algorithm" ref="a8e61204056ca87bdb92f246c12774b5d" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
- <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1luhn__algorithm.html">luhn_algorithm</a>&lt;1&gt; <a class="el" href="namespaceboost_1_1checks.html#ac2e4fa7c035bea78225af042d690b0d7">boost::checks::luhn_compute_algorithm</a></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1amex__algorithm.html">amex_algorithm</a>&lt;1&gt; <a class="el" href="namespaceboost_1_1checks.html#a8e61204056ca87bdb92f246c12774b5d">boost::checks::amex_compute_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="luhn_8hpp_source.html#l00030">30</a> of file <a class="el" href="luhn_8hpp_source.html">luhn.hpp</a>.</p>
+<p>This is the type of the Amex algorithm for computing a check digit. </p>
+
+<p>Definition at line <a class="el" href="amex_8hpp_source.html#l00069">69</a> of file <a class="el" href="amex_8hpp_source.html">amex.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a5a32b294c38ffb4402a883b6438bd285"></a><!-- doxytag: member="boost::checks::luhn_sense" ref="a5a32b294c38ffb4402a883b6438bd285" args="" -->
+<a class="anchor" id="a7ade1a7caf15a4e84fe883128d230415"></a><!-- doxytag: member="boost::checks::ean_check_algorithm" ref="a7ade1a7caf15a4e84fe883128d230415" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
- <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a> <a class="el" href="namespaceboost_1_1checks.html#a5a32b294c38ffb4402a883b6438bd285">boost::checks::luhn_sense</a></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1modulus10__algorithm.html">boost::checks::modulus10_algorithm</a>&lt; <a class="el" href="namespaceboost_1_1checks.html#a9954b4088442885ef6e2576de09a447a">ean_weight</a>, <a class="el" href="namespaceboost_1_1checks.html#a5777fac9f48a6435fb586c59c3cfe85b">ean_sense</a>, 0&gt; <a class="el" href="namespaceboost_1_1checks.html#a7ade1a7caf15a4e84fe883128d230415">boost::checks::ean_check_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="luhn_8hpp_source.html#l00017">17</a> of file <a class="el" href="luhn_8hpp_source.html">luhn.hpp</a>.</p>
+<p>This is the type of the EAN algorithm for validating a check digit. </p>
+
+<p>Definition at line <a class="el" href="ean_8hpp_source.html#l00056">56</a> of file <a class="el" href="ean_8hpp_source.html">ean.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a07ef187e34f49f346f0af0378d5acc50"></a><!-- doxytag: member="boost::checks::luhn_weight" ref="a07ef187e34f49f346f0af0378d5acc50" args="" -->
+<a class="anchor" id="a155a87965d77be3e8ca147deca9e8642"></a><!-- doxytag: member="boost::checks::ean_compute_algorithm" ref="a155a87965d77be3e8ca147deca9e8642" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
- <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1weight.html">boost::checks::weight</a>&lt;1,2&gt; <a class="el" href="namespaceboost_1_1checks.html#a07ef187e34f49f346f0af0378d5acc50">boost::checks::luhn_weight</a></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1modulus10__algorithm.html">boost::checks::modulus10_algorithm</a>&lt; <a class="el" href="namespaceboost_1_1checks.html#a9954b4088442885ef6e2576de09a447a">ean_weight</a>, <a class="el" href="namespaceboost_1_1checks.html#a5777fac9f48a6435fb586c59c3cfe85b">ean_sense</a>, 1&gt; <a class="el" href="namespaceboost_1_1checks.html#a155a87965d77be3e8ca147deca9e8642">boost::checks::ean_compute_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="luhn_8hpp_source.html#l00016">16</a> of file <a class="el" href="luhn_8hpp_source.html">luhn.hpp</a>.</p>
+<p>This is the type of the EAN algorithm for computing a check digit. </p>
+
+<p>Definition at line <a class="el" href="ean_8hpp_source.html#l00060">60</a> of file <a class="el" href="ean_8hpp_source.html">ean.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a3e7a6811ebe47566037d3df5b984b654"></a><!-- doxytag: member="boost::checks::mod11_check_algorithm" ref="a3e7a6811ebe47566037d3df5b984b654" args="" -->
+<a class="anchor" id="a5777fac9f48a6435fb586c59c3cfe85b"></a><!-- doxytag: member="boost::checks::ean_sense" ref="a5777fac9f48a6435fb586c59c3cfe85b" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
- <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1modulus11__algorithm.html">modulus11_algorithm</a>&lt;<a class="el" href="namespaceboost_1_1checks.html#a64fa88448138043e7005fd6a8ab96ca0">mod11_weight</a>, <a class="el" href="namespaceboost_1_1checks.html#a301a34d78937488786d783d37703e61f">mod11_sense</a>, 0&gt; <a class="el" href="namespaceboost_1_1checks.html#a3e7a6811ebe47566037d3df5b984b654">boost::checks::mod11_check_algorithm</a></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a> <a class="el" href="namespaceboost_1_1checks.html#a5777fac9f48a6435fb586c59c3cfe85b">boost::checks::ean_sense</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus11_8hpp_source.html#l00071">71</a> of file <a class="el" href="modulus11_8hpp_source.html">modulus11.hpp</a>.</p>
+<p>This is the running sense to check an EAN. </p>
+
+<p>Definition at line <a class="el" href="ean_8hpp_source.html#l00051">51</a> of file <a class="el" href="ean_8hpp_source.html">ean.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a335686e6e27a2f273da403df3e8a7ce2"></a><!-- doxytag: member="boost::checks::mod11_compute_algorithm" ref="a335686e6e27a2f273da403df3e8a7ce2" args="" -->
+<a class="anchor" id="a9954b4088442885ef6e2576de09a447a"></a><!-- doxytag: member="boost::checks::ean_weight" ref="a9954b4088442885ef6e2576de09a447a" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
- <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1modulus11__algorithm.html">modulus11_algorithm</a>&lt;<a class="el" href="namespaceboost_1_1checks.html#a64fa88448138043e7005fd6a8ab96ca0">mod11_weight</a>, <a class="el" href="namespaceboost_1_1checks.html#a301a34d78937488786d783d37703e61f">mod11_sense</a>, 1&gt; <a class="el" href="namespaceboost_1_1checks.html#a335686e6e27a2f273da403df3e8a7ce2">boost::checks::mod11_compute_algorithm</a></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1weight.html">boost::checks::weight</a>&lt;1,3&gt; <a class="el" href="namespaceboost_1_1checks.html#a9954b4088442885ef6e2576de09a447a">boost::checks::ean_weight</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus11_8hpp_source.html#l00072">72</a> of file <a class="el" href="modulus11_8hpp_source.html">modulus11.hpp</a>.</p>
+<p>This is the weight used by EAN system. </p>
+
+<p>Definition at line <a class="el" href="ean_8hpp_source.html#l00047">47</a> of file <a class="el" href="ean_8hpp_source.html">ean.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a301a34d78937488786d783d37703e61f"></a><!-- doxytag: member="boost::checks::mod11_sense" ref="a301a34d78937488786d783d37703e61f" args="" -->
+<a class="anchor" id="a6e393a7c0f86be5625ed099b1f19a7a2"></a><!-- doxytag: member="boost::checks::initial_mod97_weight" ref="a6e393a7c0f86be5625ed099b1f19a7a2" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
- <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a> <a class="el" href="namespaceboost_1_1checks.html#a301a34d78937488786d783d37703e61f">boost::checks::mod11_sense</a></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1make__mod97__weight.html">make_mod97_weight</a>&lt;1&gt; <a class="el" href="namespaceboost_1_1checks.html#a6e393a7c0f86be5625ed099b1f19a7a2">boost::checks::initial_mod97_weight</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus11_8hpp_source.html#l00069">69</a> of file <a class="el" href="modulus11_8hpp_source.html">modulus11.hpp</a>.</p>
+<p>This is the initial weight for the mod97-10 weights serie. </p>
+
+<p>Definition at line <a class="el" href="modulus97_8hpp_source.html#l00108">108</a> of file <a class="el" href="modulus97_8hpp_source.html">modulus97.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a64fa88448138043e7005fd6a8ab96ca0"></a><!-- doxytag: member="boost::checks::mod11_weight" ref="a64fa88448138043e7005fd6a8ab96ca0" args="" -->
+<a class="anchor" id="a268063a04f4922a2fa58daf19baa616c"></a><!-- doxytag: member="boost::checks::isbn13_check_algorithm" ref="a268063a04f4922a2fa58daf19baa616c" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
- <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1weight.html">boost::checks::weight</a>&lt;1,2,3,4,5,6,7,8,9,10&gt; <a class="el" href="namespaceboost_1_1checks.html#a64fa88448138043e7005fd6a8ab96ca0">boost::checks::mod11_weight</a></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1isbn13__algorithm.html">boost::checks::isbn13_algorithm</a>&lt;0&gt; <a class="el" href="namespaceboost_1_1checks.html#a268063a04f4922a2fa58daf19baa616c">boost::checks::isbn13_check_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus11_8hpp_source.html#l00068">68</a> of file <a class="el" href="modulus11_8hpp_source.html">modulus11.hpp</a>.</p>
+<p>This is the type of the ISBN-13 algorithm for validating a check digit. </p>
+
+<p>Definition at line <a class="el" href="isbn_8hpp_source.html#l00070">70</a> of file <a class="el" href="isbn_8hpp_source.html">isbn.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a381ae47bc53437d1f84e8a252964a8cb"></a><!-- doxytag: member="boost::checks::mod97_10_check_algorithm" ref="a381ae47bc53437d1f84e8a252964a8cb" args="" -->
+<a class="anchor" id="aa04af64ebe32659934424590adb037ed"></a><!-- doxytag: member="boost::checks::isbn13_compute_algorithm" ref="aa04af64ebe32659934424590adb037ed" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
- <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1modulus97__algorithm.html">modulus97_algorithm</a>&lt; <a class="el" href="namespaceboost_1_1checks.html#aaa3252ba0a0eca194744be0cfbb56ae0">mod97_10_weight</a>, <a class="el" href="namespaceboost_1_1checks.html#a877b2a498e290daf7bd3894298c162ae">mod97_10_sense</a>, 0 &gt; <a class="el" href="namespaceboost_1_1checks.html#a381ae47bc53437d1f84e8a252964a8cb">boost::checks::mod97_10_check_algorithm</a></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1isbn13__algorithm.html">boost::checks::isbn13_algorithm</a>&lt;1&gt; <a class="el" href="namespaceboost_1_1checks.html#aa04af64ebe32659934424590adb037ed">boost::checks::isbn13_compute_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus97_8hpp_source.html#l00066">66</a> of file <a class="el" href="modulus97_8hpp_source.html">modulus97.hpp</a>.</p>
+<p>This is the type of the ISBN-13 algorithm for computing a check digit. </p>
+
+<p>Definition at line <a class="el" href="isbn_8hpp_source.html#l00074">74</a> of file <a class="el" href="isbn_8hpp_source.html">isbn.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="aca43234abcde3ab58a2092a3283829a5"></a><!-- doxytag: member="boost::checks::mod97_10_compute_algorithm" ref="aca43234abcde3ab58a2092a3283829a5" args="" -->
+<a class="anchor" id="a19d649f8bb40c5ecd4407637ff581e75"></a><!-- doxytag: member="boost::checks::luhn_check_algorithm" ref="a19d649f8bb40c5ecd4407637ff581e75" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
- <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1modulus97__algorithm.html">modulus97_algorithm</a>&lt; <a class="el" href="namespaceboost_1_1checks.html#aaa3252ba0a0eca194744be0cfbb56ae0">mod97_10_weight</a>, <a class="el" href="namespaceboost_1_1checks.html#a877b2a498e290daf7bd3894298c162ae">mod97_10_sense</a>, 2 &gt; <a class="el" href="namespaceboost_1_1checks.html#aca43234abcde3ab58a2092a3283829a5">boost::checks::mod97_10_compute_algorithm</a></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1luhn__algorithm.html">luhn_algorithm</a>&lt;0&gt; <a class="el" href="namespaceboost_1_1checks.html#a19d649f8bb40c5ecd4407637ff581e75">boost::checks::luhn_check_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus97_8hpp_source.html#l00067">67</a> of file <a class="el" href="modulus97_8hpp_source.html">modulus97.hpp</a>.</p>
+<p>This is the type of the Luhn algorithm for validating a check digit. </p>
+
+<p>Definition at line <a class="el" href="luhn_8hpp_source.html#l00064">64</a> of file <a class="el" href="luhn_8hpp_source.html">luhn.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a877b2a498e290daf7bd3894298c162ae"></a><!-- doxytag: member="boost::checks::mod97_10_sense" ref="a877b2a498e290daf7bd3894298c162ae" args="" -->
+<a class="anchor" id="ac2e4fa7c035bea78225af042d690b0d7"></a><!-- doxytag: member="boost::checks::luhn_compute_algorithm" ref="ac2e4fa7c035bea78225af042d690b0d7" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
- <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a> <a class="el" href="namespaceboost_1_1checks.html#a877b2a498e290daf7bd3894298c162ae">boost::checks::mod97_10_sense</a></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1luhn__algorithm.html">luhn_algorithm</a>&lt;1&gt; <a class="el" href="namespaceboost_1_1checks.html#ac2e4fa7c035bea78225af042d690b0d7">boost::checks::luhn_compute_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus97_8hpp_source.html#l00064">64</a> of file <a class="el" href="modulus97_8hpp_source.html">modulus97.hpp</a>.</p>
+<p>This is the type of the Luhn algorithm for computing a check digit. </p>
+
+<p>Definition at line <a class="el" href="luhn_8hpp_source.html#l00068">68</a> of file <a class="el" href="luhn_8hpp_source.html">luhn.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="aaa3252ba0a0eca194744be0cfbb56ae0"></a><!-- doxytag: member="boost::checks::mod97_10_weight" ref="aaa3252ba0a0eca194744be0cfbb56ae0" args="" -->
+<a class="anchor" id="a5a32b294c38ffb4402a883b6438bd285"></a><!-- doxytag: member="boost::checks::luhn_sense" ref="a5a32b294c38ffb4402a883b6438bd285" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
- <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1weight.html">boost::checks::weight</a>&lt; BOOST_PP_ENUM(96, MOD97_make_weight, ~) &gt; <a class="el" href="namespaceboost_1_1checks.html#aaa3252ba0a0eca194744be0cfbb56ae0">boost::checks::mod97_10_weight</a></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a> <a class="el" href="namespaceboost_1_1checks.html#a5a32b294c38ffb4402a883b6438bd285">boost::checks::luhn_sense</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus97_8hpp_source.html#l00062">62</a> of file <a class="el" href="modulus97_8hpp_source.html">modulus97.hpp</a>.</p>
+<p>This is the running sense to check an Luhn number. </p>
+
+<p>Definition at line <a class="el" href="luhn_8hpp_source.html#l00032">32</a> of file <a class="el" href="luhn_8hpp_source.html">luhn.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a5ce2d0db03cfe90a961779538d897a22"></a><!-- doxytag: member="boost::checks::verhoeff_check_algorithm" ref="a5ce2d0db03cfe90a961779538d897a22" args="" -->
+<a class="anchor" id="a07ef187e34f49f346f0af0378d5acc50"></a><!-- doxytag: member="boost::checks::luhn_weight" ref="a07ef187e34f49f346f0af0378d5acc50" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
- <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1verhoeff__algorithm.html">verhoeff_algorithm</a>&lt;0&gt; <a class="el" href="namespaceboost_1_1checks.html#a5ce2d0db03cfe90a961779538d897a22">boost::checks::verhoeff_check_algorithm</a></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1weight.html">boost::checks::weight</a>&lt;1,2&gt; <a class="el" href="namespaceboost_1_1checks.html#a07ef187e34f49f346f0af0378d5acc50">boost::checks::luhn_weight</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="verhoeff_8hpp_source.html#l00079">79</a> of file <a class="el" href="verhoeff_8hpp_source.html">verhoeff.hpp</a>.</p>
+<p>This is the weight used by the Luhn algorithm. </p>
+
+<p>Definition at line <a class="el" href="luhn_8hpp_source.html#l00027">27</a> of file <a class="el" href="luhn_8hpp_source.html">luhn.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a93cfc6f3a20335c421e20f92d3c821c8"></a><!-- doxytag: member="boost::checks::verhoeff_compute_algorithm" ref="a93cfc6f3a20335c421e20f92d3c821c8" args="" -->
+<a class="anchor" id="a216597b28715b6f774d51ba2ffa9e38d"></a><!-- doxytag: member="boost::checks::mastercard_check_algorithm" ref="a216597b28715b6f774d51ba2ffa9e38d" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
- <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1verhoeff__algorithm.html">verhoeff_algorithm</a>&lt;1&gt; <a class="el" href="namespaceboost_1_1checks.html#a93cfc6f3a20335c421e20f92d3c821c8">boost::checks::verhoeff_compute_algorithm</a></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1mastercard__algorithm.html">mastercard_algorithm</a>&lt;0&gt; <a class="el" href="namespaceboost_1_1checks.html#a216597b28715b6f774d51ba2ffa9e38d">boost::checks::mastercard_check_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="verhoeff_8hpp_source.html#l00080">80</a> of file <a class="el" href="verhoeff_8hpp_source.html">verhoeff.hpp</a>.</p>
+<p>This is the type of the Mastercard algorithm for validating a check digit. </p>
+
+<p>Definition at line <a class="el" href="mastercard_8hpp_source.html#l00065">65</a> of file <a class="el" href="mastercard_8hpp_source.html">mastercard.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a752731034c77974a50e886866ca5895a"></a><!-- doxytag: member="boost::checks::verhoeff_iteration_sense" ref="a752731034c77974a50e886866ca5895a" args="" -->
+<a class="anchor" id="a8da35e1a8a76d25048b5258df10ecff5"></a><!-- doxytag: member="boost::checks::mastercard_compute_algorithm" ref="a8da35e1a8a76d25048b5258df10ecff5" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
- <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a> <a class="el" href="namespaceboost_1_1checks.html#a752731034c77974a50e886866ca5895a">boost::checks::verhoeff_iteration_sense</a></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1mastercard__algorithm.html">mastercard_algorithm</a>&lt;1&gt; <a class="el" href="namespaceboost_1_1checks.html#a8da35e1a8a76d25048b5258df10ecff5">boost::checks::mastercard_compute_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="verhoeff_8hpp_source.html#l00021">21</a> of file <a class="el" href="verhoeff_8hpp_source.html">verhoeff.hpp</a>.</p>
+<p>This is the type of the Mastercard algorithm for computing a check digit. </p>
+
+<p>Definition at line <a class="el" href="mastercard_8hpp_source.html#l00069">69</a> of file <a class="el" href="mastercard_8hpp_source.html">mastercard.hpp</a>.</p>
 
 </div>
 </div>
-<hr/><h2>Function Documentation</h2>
-<a class="anchor" id="a084b58dbddd6ad96be2c625086e44534"></a><!-- doxytag: member="boost::checks::check_luhn" ref="a084b58dbddd6ad96be2c625086e44534" args="(luhn_iter &amp;begin, const luhn_iter &amp;end, std::size_t nbr_digits)" -->
+<a class="anchor" id="a3e7a6811ebe47566037d3df5b984b654"></a><!-- doxytag: member="boost::checks::mod11_check_algorithm" ref="a3e7a6811ebe47566037d3df5b984b654" args="" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template&lt;typename luhn_iter &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::check_luhn </td>
- <td>(</td>
- <td class="paramtype">luhn_iter &amp;&#160;</td>
- <td class="paramname"><em>begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const luhn_iter &amp;&#160;</td>
- <td class="paramname"><em>end</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">std::size_t&#160;</td>
- <td class="paramname"><em>nbr_digits</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1modulus11__algorithm.html">modulus11_algorithm</a>&lt;<a class="el" href="namespaceboost_1_1checks.html#a64fa88448138043e7005fd6a8ab96ca0">mod11_weight</a>, <a class="el" href="namespaceboost_1_1checks.html#a301a34d78937488786d783d37703e61f">mod11_sense</a>, 0&gt; <a class="el" href="namespaceboost_1_1checks.html#a3e7a6811ebe47566037d3df5b984b654">boost::checks::mod11_check_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus_8hpp_source.html#l00019">19</a> of file <a class="el" href="modulus_8hpp_source.html">modulus.hpp</a>.</p>
+<p>This is the type of the most common modulus 11 algorithm for validating a check digit. </p>
+
+<p>Definition at line <a class="el" href="modulus11_8hpp_source.html#l00136">136</a> of file <a class="el" href="modulus11_8hpp_source.html">modulus11.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a36a3ea230792e9f9ba0c02ce1c46354c"></a><!-- doxytag: member="boost::checks::check_luhn" ref="a36a3ea230792e9f9ba0c02ce1c46354c" args="(const check_range &amp;check_seq)" -->
+<a class="anchor" id="a335686e6e27a2f273da403df3e8a7ce2"></a><!-- doxytag: member="boost::checks::mod11_compute_algorithm" ref="a335686e6e27a2f273da403df3e8a7ce2" args="" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template&lt;size_t size_expected, typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::check_luhn </td>
- <td>(</td>
- <td class="paramtype">const check_range &amp;&#160;</td>
- <td class="paramname"><em>check_seq</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1modulus11__algorithm.html">modulus11_algorithm</a>&lt;<a class="el" href="namespaceboost_1_1checks.html#a64fa88448138043e7005fd6a8ab96ca0">mod11_weight</a>, <a class="el" href="namespaceboost_1_1checks.html#a301a34d78937488786d783d37703e61f">mod11_sense</a>, 1&gt; <a class="el" href="namespaceboost_1_1checks.html#a335686e6e27a2f273da403df3e8a7ce2">boost::checks::mod11_compute_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="luhn_8hpp_source.html#l00033">33</a> of file <a class="el" href="luhn_8hpp_source.html">luhn.hpp</a>.</p>
+<p>This is the type of the most common modulus 11 algorithm for computing a check digit. </p>
+
+<p>Definition at line <a class="el" href="modulus11_8hpp_source.html#l00140">140</a> of file <a class="el" href="modulus11_8hpp_source.html">modulus11.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a2651a01fc5a7a3eec7381f18fcb04295"></a><!-- doxytag: member="boost::checks::check_luhn" ref="a2651a01fc5a7a3eec7381f18fcb04295" args="(const check_range &amp;check_seq)" -->
+<a class="anchor" id="a301a34d78937488786d783d37703e61f"></a><!-- doxytag: member="boost::checks::mod11_sense" ref="a301a34d78937488786d783d37703e61f" args="" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::check_luhn </td>
- <td>(</td>
- <td class="paramtype">const check_range &amp;&#160;</td>
- <td class="paramname"><em>check_seq</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a> <a class="el" href="namespaceboost_1_1checks.html#a301a34d78937488786d783d37703e61f">boost::checks::mod11_sense</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="luhn_8hpp_source.html#l00039">39</a> of file <a class="el" href="luhn_8hpp_source.html">luhn.hpp</a>.</p>
+<p>The most common iteration sense used with a modulus 11 algorithm. </p>
+
+<p>Definition at line <a class="el" href="modulus11_8hpp_source.html#l00131">131</a> of file <a class="el" href="modulus11_8hpp_source.html">modulus11.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a2cae3e674bd94ba471dcb91fe21ca57a"></a><!-- doxytag: member="boost::checks::check_mod10" ref="a2cae3e674bd94ba471dcb91fe21ca57a" args="(mod10_iter &amp;begin, const mod10_iter &amp;end, const weight_t &amp;weight, std::size_t nbr_digits)" -->
+<a class="anchor" id="a64fa88448138043e7005fd6a8ab96ca0"></a><!-- doxytag: member="boost::checks::mod11_weight" ref="a64fa88448138043e7005fd6a8ab96ca0" args="" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template&lt;typename mod10_iter , typename weight_t &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::check_mod10 </td>
- <td>(</td>
- <td class="paramtype">mod10_iter &amp;&#160;</td>
- <td class="paramname"><em>begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const mod10_iter &amp;&#160;</td>
- <td class="paramname"><em>end</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const weight_t &amp;&#160;</td>
- <td class="paramname"><em>weight</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">std::size_t&#160;</td>
- <td class="paramname"><em>nbr_digits</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1weight.html">boost::checks::weight</a>&lt;1,2,3,4,5,6,7,8,9,10&gt; <a class="el" href="namespaceboost_1_1checks.html#a64fa88448138043e7005fd6a8ab96ca0">boost::checks::mod11_weight</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus_8hpp_source.html#l00122">122</a> of file <a class="el" href="modulus_8hpp_source.html">modulus.hpp</a>.</p>
+<p>The most common weight pattern used with a modulus 11 algorithm. </p>
+
+<p>Definition at line <a class="el" href="modulus11_8hpp_source.html#l00127">127</a> of file <a class="el" href="modulus11_8hpp_source.html">modulus11.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a1d8fca39772cfb1be8ec91cbbec097e9"></a><!-- doxytag: member="boost::checks::check_mod11" ref="a1d8fca39772cfb1be8ec91cbbec097e9" args="(mod11_iter &amp;begin, const mod11_iter &amp;end, std::size_t nbr_digits)" -->
+<a class="anchor" id="a381ae47bc53437d1f84e8a252964a8cb"></a><!-- doxytag: member="boost::checks::mod97_10_check_algorithm" ref="a381ae47bc53437d1f84e8a252964a8cb" args="" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template&lt;typename mod11_iter &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::check_mod11 </td>
- <td>(</td>
- <td class="paramtype">mod11_iter &amp;&#160;</td>
- <td class="paramname"><em>begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const mod11_iter &amp;&#160;</td>
- <td class="paramname"><em>end</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">std::size_t&#160;</td>
- <td class="paramname"><em>nbr_digits</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1modulus97__algorithm.html">modulus97_algorithm</a>&lt; <a class="el" href="namespaceboost_1_1checks.html#a8ecfb8f9e67b6348df22bdb2934e10d6">mod97_10_weight</a>, <a class="el" href="namespaceboost_1_1checks.html#a877b2a498e290daf7bd3894298c162ae">mod97_10_sense</a>, 0 &gt; <a class="el" href="namespaceboost_1_1checks.html#a381ae47bc53437d1f84e8a252964a8cb">boost::checks::mod97_10_check_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus_8hpp_source.html#l00238">238</a> of file <a class="el" href="modulus_8hpp_source.html">modulus.hpp</a>.</p>
+<p>This is the type of the modulus 97-10 algorithm for validating a check digit. </p>
+
+<p>Definition at line <a class="el" href="modulus97_8hpp_source.html#l00134">134</a> of file <a class="el" href="modulus97_8hpp_source.html">modulus97.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ad5ddc70e24dff8523c786e8f840f4a83"></a><!-- doxytag: member="boost::checks::check_mod97" ref="ad5ddc70e24dff8523c786e8f840f4a83" args="(mod97_iter &amp;begin, const mod97_iter &amp;end, std::size_t nbr_digits)" -->
+<a class="anchor" id="aca43234abcde3ab58a2092a3283829a5"></a><!-- doxytag: member="boost::checks::mod97_10_compute_algorithm" ref="aca43234abcde3ab58a2092a3283829a5" args="" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template&lt;typename mod97_iter &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::check_mod97 </td>
- <td>(</td>
- <td class="paramtype">mod97_iter &amp;&#160;</td>
- <td class="paramname"><em>begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const mod97_iter &amp;&#160;</td>
- <td class="paramname"><em>end</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">std::size_t&#160;</td>
- <td class="paramname"><em>nbr_digits</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1modulus97__algorithm.html">modulus97_algorithm</a>&lt; <a class="el" href="namespaceboost_1_1checks.html#a8ecfb8f9e67b6348df22bdb2934e10d6">mod97_10_weight</a>, <a class="el" href="namespaceboost_1_1checks.html#a877b2a498e290daf7bd3894298c162ae">mod97_10_sense</a>, 2 &gt; <a class="el" href="namespaceboost_1_1checks.html#aca43234abcde3ab58a2092a3283829a5">boost::checks::mod97_10_compute_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus_8hpp_source.html#l00377">377</a> of file <a class="el" href="modulus_8hpp_source.html">modulus.hpp</a>.</p>
+<p>This is the type of the modulus 97-10 algorithm for computing a check digit. </p>
+
+<p>Definition at line <a class="el" href="modulus97_8hpp_source.html#l00138">138</a> of file <a class="el" href="modulus97_8hpp_source.html">modulus97.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="afbc1a04be2d50c0caeb8f15237930513"></a><!-- doxytag: member="boost::checks::check_mod97_10" ref="afbc1a04be2d50c0caeb8f15237930513" args="(const check_range &amp;check_seq)" -->
+<a class="anchor" id="a877b2a498e290daf7bd3894298c162ae"></a><!-- doxytag: member="boost::checks::mod97_10_sense" ref="a877b2a498e290daf7bd3894298c162ae" args="" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template&lt;size_t size_expected, typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::check_mod97_10 </td>
- <td>(</td>
- <td class="paramtype">const check_range &amp;&#160;</td>
- <td class="paramname"><em>check_seq</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a> <a class="el" href="namespaceboost_1_1checks.html#a877b2a498e290daf7bd3894298c162ae">boost::checks::mod97_10_sense</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus97_8hpp_source.html#l00070">70</a> of file <a class="el" href="modulus97_8hpp_source.html">modulus97.hpp</a>.</p>
+<p>The iteration sense of the sequence. From right to left. </p>
+
+<p>Definition at line <a class="el" href="modulus97_8hpp_source.html#l00129">129</a> of file <a class="el" href="modulus97_8hpp_source.html">modulus97.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="aa32d98f0c9606a1d46786a57151c81ab"></a><!-- doxytag: member="boost::checks::check_mod97_10" ref="aa32d98f0c9606a1d46786a57151c81ab" args="(const check_range &amp;check_seq)" -->
+<a class="anchor" id="a8ecfb8f9e67b6348df22bdb2934e10d6"></a><!-- doxytag: member="boost::checks::mod97_10_weight" ref="a8ecfb8f9e67b6348df22bdb2934e10d6" args="" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::check_mod97_10 </td>
- <td>(</td>
- <td class="paramtype">const check_range &amp;&#160;</td>
- <td class="paramname"><em>check_seq</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1weight.html">boost::checks::weight</a>&lt; BOOST_PP_ENUM(96, MOD97_weight_maker, ~) &gt; <a class="el" href="namespaceboost_1_1checks.html#a8ecfb8f9e67b6348df22bdb2934e10d6">boost::checks::mod97_10_weight</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus97_8hpp_source.html#l00076">76</a> of file <a class="el" href="modulus97_8hpp_source.html">modulus97.hpp</a>.</p>
+<p>This is weight of the mod97-10 algorithm. </p>
+
+<p>Definition at line <a class="el" href="modulus97_8hpp_source.html#l00124">124</a> of file <a class="el" href="modulus97_8hpp_source.html">modulus97.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="acb7e8e0940822a9cb6836251c064e03f"></a><!-- doxytag: member="boost::checks::check_modulus11" ref="acb7e8e0940822a9cb6836251c064e03f" args="(const check_range &amp;check_seq)" -->
+<a class="anchor" id="a6ab9ef49508b3081845481fdfe7bb78f"></a><!-- doxytag: member="boost::checks::upc_check_algorithm" ref="a6ab9ef49508b3081845481fdfe7bb78f" args="" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template&lt;size_t size_expected, typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::check_modulus11 </td>
- <td>(</td>
- <td class="paramtype">const check_range &amp;&#160;</td>
- <td class="paramname"><em>check_seq</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1modulus10__algorithm.html">boost::checks::modulus10_algorithm</a>&lt; <a class="el" href="namespaceboost_1_1checks.html#acbf981f5856e57b68e8860594f9aa572">upc_weight</a>, <a class="el" href="namespaceboost_1_1checks.html#af677c97bdddd63cbe273974672c03616">upc_sense</a>, 0&gt; <a class="el" href="namespaceboost_1_1checks.html#a6ab9ef49508b3081845481fdfe7bb78f">boost::checks::upc_check_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus11_8hpp_source.html#l00075">75</a> of file <a class="el" href="modulus11_8hpp_source.html">modulus11.hpp</a>.</p>
+<p>This is the type of the UPC algorithm for validating a check digit. </p>
+
+<p>Definition at line <a class="el" href="upc_8hpp_source.html#l00048">48</a> of file <a class="el" href="upc_8hpp_source.html">upc.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a2d76774a0b153e9046cd18823cc12dd6"></a><!-- doxytag: member="boost::checks::check_modulus11" ref="a2d76774a0b153e9046cd18823cc12dd6" args="(const check_range &amp;check_seq)" -->
+<a class="anchor" id="a4a8f9d39418287c4004d9ed79e4b1240"></a><!-- doxytag: member="boost::checks::upc_compute_algorithm" ref="a4a8f9d39418287c4004d9ed79e4b1240" args="" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::check_modulus11 </td>
- <td>(</td>
- <td class="paramtype">const check_range &amp;&#160;</td>
- <td class="paramname"><em>check_seq</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1modulus10__algorithm.html">boost::checks::modulus10_algorithm</a>&lt; <a class="el" href="namespaceboost_1_1checks.html#acbf981f5856e57b68e8860594f9aa572">upc_weight</a>, <a class="el" href="namespaceboost_1_1checks.html#af677c97bdddd63cbe273974672c03616">upc_sense</a>, 1&gt; <a class="el" href="namespaceboost_1_1checks.html#a4a8f9d39418287c4004d9ed79e4b1240">boost::checks::upc_compute_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus11_8hpp_source.html#l00081">81</a> of file <a class="el" href="modulus11_8hpp_source.html">modulus11.hpp</a>.</p>
+<p>This is the type of the UPC algorithm for computing a check digit. </p>
+
+<p>Definition at line <a class="el" href="upc_8hpp_source.html#l00052">52</a> of file <a class="el" href="upc_8hpp_source.html">upc.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a3e9f9bfde34262ad3f4e69ddf2e1bbd4"></a><!-- doxytag: member="boost::checks::check_sequence" ref="a3e9f9bfde34262ad3f4e69ddf2e1bbd4" args="(const check_range &amp;check_seq)" -->
+<a class="anchor" id="af677c97bdddd63cbe273974672c03616"></a><!-- doxytag: member="boost::checks::upc_sense" ref="af677c97bdddd63cbe273974672c03616" args="" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template&lt;typename algorithm , typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::check_sequence </td>
- <td>(</td>
- <td class="paramtype">const check_range &amp;&#160;</td>
- <td class="paramname"><em>check_seq</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a> <a class="el" href="namespaceboost_1_1checks.html#af677c97bdddd63cbe273974672c03616">boost::checks::upc_sense</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__checks_8hpp_source.html#l00050">50</a> of file <a class="el" href="basic__checks_8hpp_source.html">basic_checks.hpp</a>.</p>
+<p>This is the running sense to check an UPC. </p>
+
+<p>Definition at line <a class="el" href="upc_8hpp_source.html#l00043">43</a> of file <a class="el" href="upc_8hpp_source.html">upc.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a574b80a0aafa204b1079de298dad8ea5"></a><!-- doxytag: member="boost::checks::check_sequence" ref="a574b80a0aafa204b1079de298dad8ea5" args="(const check_range &amp;check_seq)" -->
+<a class="anchor" id="acbf981f5856e57b68e8860594f9aa572"></a><!-- doxytag: member="boost::checks::upc_weight" ref="acbf981f5856e57b68e8860594f9aa572" args="" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template&lt;typename algorithm , size_t size_expected, typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::check_sequence </td>
- <td>(</td>
- <td class="paramtype">const check_range &amp;&#160;</td>
- <td class="paramname"><em>check_seq</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1weight.html">boost::checks::weight</a>&lt;1,3&gt; <a class="el" href="namespaceboost_1_1checks.html#acbf981f5856e57b68e8860594f9aa572">boost::checks::upc_weight</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__checks_8hpp_source.html#l00057">57</a> of file <a class="el" href="basic__checks_8hpp_source.html">basic_checks.hpp</a>.</p>
+<p>This is the weight used by UPC system. </p>
+
+<p>Definition at line <a class="el" href="upc_8hpp_source.html#l00039">39</a> of file <a class="el" href="upc_8hpp_source.html">upc.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="abe6ccc42ec484aac046ea80bfaad4ae4"></a><!-- doxytag: member="boost::checks::check_verhoeff" ref="abe6ccc42ec484aac046ea80bfaad4ae4" args="(const check_range &amp;check_seq)" -->
+<a class="anchor" id="a5ce2d0db03cfe90a961779538d897a22"></a><!-- doxytag: member="boost::checks::verhoeff_check_algorithm" ref="a5ce2d0db03cfe90a961779538d897a22" args="" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template&lt;size_t size_expected, typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::check_verhoeff </td>
- <td>(</td>
- <td class="paramtype">const check_range &amp;&#160;</td>
- <td class="paramname"><em>check_seq</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1verhoeff__algorithm.html">verhoeff_algorithm</a>&lt;0&gt; <a class="el" href="namespaceboost_1_1checks.html#a5ce2d0db03cfe90a961779538d897a22">boost::checks::verhoeff_check_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="verhoeff_8hpp_source.html#l00083">83</a> of file <a class="el" href="verhoeff_8hpp_source.html">verhoeff.hpp</a>.</p>
+<p>This is the type of the Verhoeff algorithm for validating a check digit. </p>
+
+<p>Definition at line <a class="el" href="verhoeff_8hpp_source.html#l00125">125</a> of file <a class="el" href="verhoeff_8hpp_source.html">verhoeff.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a86e8991bc68fab9958a902b140bd05c6"></a><!-- doxytag: member="boost::checks::check_verhoeff" ref="a86e8991bc68fab9958a902b140bd05c6" args="(const check_range &amp;check_seq)" -->
+<a class="anchor" id="a93cfc6f3a20335c421e20f92d3c821c8"></a><!-- doxytag: member="boost::checks::verhoeff_compute_algorithm" ref="a93cfc6f3a20335c421e20f92d3c821c8" args="" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::check_verhoeff </td>
- <td>(</td>
- <td class="paramtype">const check_range &amp;&#160;</td>
- <td class="paramname"><em>check_seq</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1verhoeff__algorithm.html">verhoeff_algorithm</a>&lt;1&gt; <a class="el" href="namespaceboost_1_1checks.html#a93cfc6f3a20335c421e20f92d3c821c8">boost::checks::verhoeff_compute_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="verhoeff_8hpp_source.html#l00089">89</a> of file <a class="el" href="verhoeff_8hpp_source.html">verhoeff.hpp</a>.</p>
+<p>This is the type of the Verhoeff algorithm for computing a check digit. </p>
+
+<p>Definition at line <a class="el" href="verhoeff_8hpp_source.html#l00129">129</a> of file <a class="el" href="verhoeff_8hpp_source.html">verhoeff.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="af2694703fb484efc186146542e4a7c53"></a><!-- doxytag: member="boost::checks::compute_checkdigit" ref="af2694703fb484efc186146542e4a7c53" args="(const check_range &amp;check_seq)" -->
+<a class="anchor" id="a752731034c77974a50e886866ca5895a"></a><!-- doxytag: member="boost::checks::verhoeff_iteration_sense" ref="a752731034c77974a50e886866ca5895a" args="" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template&lt;typename algorithm , typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">algorithm::checkdigit&lt;check_range&gt;::type boost::checks::compute_checkdigit </td>
- <td>(</td>
- <td class="paramtype">const check_range &amp;&#160;</td>
- <td class="paramname"><em>check_seq</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a> <a class="el" href="namespaceboost_1_1checks.html#a752731034c77974a50e886866ca5895a">boost::checks::verhoeff_iteration_sense</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__checks_8hpp_source.html#l00064">64</a> of file <a class="el" href="basic__checks_8hpp_source.html">basic_checks.hpp</a>.</p>
+<p>This is the sense of the Verhoeff sequence iteration. </p>
+
+<p>Definition at line <a class="el" href="verhoeff_8hpp_source.html#l00032">32</a> of file <a class="el" href="verhoeff_8hpp_source.html">verhoeff.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a58d8bcbe9cc7d264f4a2b09d49717a56"></a><!-- doxytag: member="boost::checks::compute_checkdigit" ref="a58d8bcbe9cc7d264f4a2b09d49717a56" args="(const check_range &amp;check_seq)" -->
+<a class="anchor" id="a6d5c430a2bceeedf1002d92a98aa4c43"></a><!-- doxytag: member="boost::checks::visa_check_algorithm" ref="a6d5c430a2bceeedf1002d92a98aa4c43" args="" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template&lt;typename algorithm , size_t size_expected, typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">algorithm::checkdigit&lt;check_range&gt;::type boost::checks::compute_checkdigit </td>
- <td>(</td>
- <td class="paramtype">const check_range &amp;&#160;</td>
- <td class="paramname"><em>check_seq</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1visa__algorithm.html">visa_algorithm</a>&lt;0&gt; <a class="el" href="namespaceboost_1_1checks.html#a6d5c430a2bceeedf1002d92a98aa4c43">boost::checks::visa_check_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__checks_8hpp_source.html#l00071">71</a> of file <a class="el" href="basic__checks_8hpp_source.html">basic_checks.hpp</a>.</p>
+<p>This is the type of the Visa algorithm for validating a check digit. </p>
+
+<p>Definition at line <a class="el" href="visa_8hpp_source.html#l00063">63</a> of file <a class="el" href="visa_8hpp_source.html">visa.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a47d3a9835bc33566a01ca5614a13f1fe"></a><!-- doxytag: member="boost::checks::compute_checksum" ref="a47d3a9835bc33566a01ca5614a13f1fe" args="(iterator seq_begin, iterator seq_end)" -->
+<a class="anchor" id="a323a27cc40681492362fb3c0893979cb"></a><!-- doxytag: member="boost::checks::visa_compute_algorithm" ref="a323a27cc40681492362fb3c0893979cb" args="" -->
 <div class="memitem">
 <div class="memproto">
-<div class="memtemplate">
-template&lt;typename algorithm , typename size_contract , typename iterator &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">int boost::checks::compute_checksum </td>
- <td>(</td>
- <td class="paramtype">iterator&#160;</td>
- <td class="paramname"><em>seq_begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">iterator&#160;</td>
- <td class="paramname"><em>seq_end</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef <a class="el" href="structboost_1_1checks_1_1visa__algorithm.html">visa_algorithm</a>&lt;1&gt; <a class="el" href="namespaceboost_1_1checks.html#a323a27cc40681492362fb3c0893979cb">boost::checks::visa_compute_algorithm</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__checks_8hpp_source.html#l00023">23</a> of file <a class="el" href="basic__checks_8hpp_source.html">basic_checks.hpp</a>.</p>
+<p>This is the type of the Visa algorithm for computing a check digit. </p>
+
+<p>Definition at line <a class="el" href="visa_8hpp_source.html#l00067">67</a> of file <a class="el" href="visa_8hpp_source.html">visa.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a635c57c7b253fcadc1dfa5415d7647b1"></a><!-- doxytag: member="boost::checks::compute_checksum" ref="a635c57c7b253fcadc1dfa5415d7647b1" args="(const check_range &amp;check_seq)" -->
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a2aff225983f36758feaba34662173b53"></a><!-- doxytag: member="boost::checks::check_amex" ref="a2aff225983f36758feaba34662173b53" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;typename algorithm , typename size_contract , typename check_range &gt; </div>
+template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">int boost::checks::compute_checksum </td>
+ <td class="memname">bool boost::checks::check_amex </td>
           <td>(</td>
           <td class="paramtype">const check_range &amp;&#160;</td>
           <td class="paramname"><em>check_seq</em></td><td>)</td>
@@ -901,55 +903,84 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__checks_8hpp_source.html#l00041">41</a> of file <a class="el" href="basic__checks_8hpp_source.html">basic_checks.hpp</a>.</p>
+<p>Validate a sequence according to the amex_check_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain exactly AMEX_SIZE digits. </td></tr>
+ <tr><td class="paramname">std::invalid_argument</td><td>if the two first digits (from the leftmost) don't match the amex pattern.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the check digit is correct, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="amex_8hpp_source.html#l00085">85</a> of file <a class="el" href="amex_8hpp_source.html">amex.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a0c7d6a470894c687d5dff05996f5757c"></a><!-- doxytag: member="boost::checks::compute_luhn" ref="a0c7d6a470894c687d5dff05996f5757c" args="(luhn_iter &amp;begin, const luhn_iter &amp;end, std::size_t nbr_digits)" -->
+<a class="anchor" id="a99f1f79f65b14f9f2c68477c69ab7420"></a><!-- doxytag: member="boost::checks::check_ean13" ref="a99f1f79f65b14f9f2c68477c69ab7420" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;typename luhn_iter &gt; </div>
+template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">char boost::checks::compute_luhn </td>
+ <td class="memname">bool boost::checks::check_ean13 </td>
           <td>(</td>
- <td class="paramtype">luhn_iter &amp;&#160;</td>
- <td class="paramname"><em>begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const luhn_iter &amp;&#160;</td>
- <td class="paramname"><em>end</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">std::size_t&#160;</td>
- <td class="paramname"><em>nbr_digits</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td>)</td>
- <td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus_8hpp_source.html#l00054">54</a> of file <a class="el" href="modulus_8hpp_source.html">modulus.hpp</a>.</p>
+<p>Validate a sequence according to the ean_check_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain exactly EAN13_SIZE digits.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the check digit is correct, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="ean_8hpp_source.html#l00075">75</a> of file <a class="el" href="ean_8hpp_source.html">ean.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a8f86db1b7d82751de71288456d4edf0a"></a><!-- doxytag: member="boost::checks::compute_luhn" ref="a8f86db1b7d82751de71288456d4edf0a" args="(const check_range &amp;check_seq)" -->
+<a class="anchor" id="a1d5df84c16aa8c879214bf8f6a6993ea"></a><!-- doxytag: member="boost::checks::check_ean8" ref="a1d5df84c16aa8c879214bf8f6a6993ea" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;size_t size_expected, typename check_range &gt; </div>
+template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">boost::checks::luhn_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_luhn </td>
+ <td class="memname">bool boost::checks::check_ean8 </td>
           <td>(</td>
           <td class="paramtype">const check_range &amp;&#160;</td>
           <td class="paramname"><em>check_seq</em></td><td>)</td>
@@ -959,18 +990,40 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="luhn_8hpp_source.html#l00045">45</a> of file <a class="el" href="luhn_8hpp_source.html">luhn.hpp</a>.</p>
+<p>Validate a sequence according to the ean_check_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain exactly EAN8_SIZE digits.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the check digit is correct, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="ean_8hpp_source.html#l00112">112</a> of file <a class="el" href="ean_8hpp_source.html">ean.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a72f611fe14c840774de011e0271eb4b0"></a><!-- doxytag: member="boost::checks::compute_luhn" ref="a72f611fe14c840774de011e0271eb4b0" args="(const check_range &amp;check_seq)" -->
+<a class="anchor" id="af52b5d0c188f321561b69f312c93b336"></a><!-- doxytag: member="boost::checks::check_isbn10" ref="af52b5d0c188f321561b69f312c93b336" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">boost::checks::luhn_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_luhn </td>
+ <td class="memname">bool boost::checks::check_isbn10 </td>
           <td>(</td>
           <td class="paramtype">const check_range &amp;&#160;</td>
           <td class="paramname"><em>check_seq</em></td><td>)</td>
@@ -980,292 +1033,800 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="luhn_8hpp_source.html#l00051">51</a> of file <a class="el" href="luhn_8hpp_source.html">luhn.hpp</a>.</p>
+<p>Validate a sequence according to the mod11_check_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain exactly ISBN10_SIZE digits.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the check digit is correct, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="isbn_8hpp_source.html#l00126">126</a> of file <a class="el" href="isbn_8hpp_source.html">isbn.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a081faed2c6f4a1be7fd09aef7f0edf52"></a><!-- doxytag: member="boost::checks::compute_luhn" ref="a081faed2c6f4a1be7fd09aef7f0edf52" args="(luhn_iter &amp;begin, const luhn_iter &amp;end, std::size_t nbr_digits)" -->
+<a class="anchor" id="a787f7cd04f5561dcdadff392c5af0bee"></a><!-- doxytag: member="boost::checks::check_isbn13" ref="a787f7cd04f5561dcdadff392c5af0bee" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;typename luhn_checkdigit , typename luhn_iter &gt; </div>
+template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">luhn_checkdigit boost::checks::compute_luhn </td>
+ <td class="memname">bool boost::checks::check_isbn13 </td>
           <td>(</td>
- <td class="paramtype">luhn_iter &amp;&#160;</td>
- <td class="paramname"><em>begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const luhn_iter &amp;&#160;</td>
- <td class="paramname"><em>end</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">std::size_t&#160;</td>
- <td class="paramname"><em>nbr_digits</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td>)</td>
- <td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus_8hpp_source.html#l00088">88</a> of file <a class="el" href="modulus_8hpp_source.html">modulus.hpp</a>.</p>
+<p>Validate a sequence according to the isbn13_check_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain exactly EAN13_SIZE digits.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the check digit is correct, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="isbn_8hpp_source.html#l00089">89</a> of file <a class="el" href="isbn_8hpp_source.html">isbn.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="af07be2309007468b136b99fd98b9bd64"></a><!-- doxytag: member="boost::checks::compute_mod10" ref="af07be2309007468b136b99fd98b9bd64" args="(mod10_iter &amp;begin, const mod10_iter &amp;end, const weight_t &amp;weight, std::size_t nbr_digits)" -->
+<a class="anchor" id="a36a3ea230792e9f9ba0c02ce1c46354c"></a><!-- doxytag: member="boost::checks::check_luhn" ref="a36a3ea230792e9f9ba0c02ce1c46354c" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;typename mod10_iter , typename weight_t &gt; </div>
+template&lt;size_t size_expected, typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">char boost::checks::compute_mod10 </td>
+ <td class="memname">bool boost::checks::check_luhn </td>
           <td>(</td>
- <td class="paramtype">mod10_iter &amp;&#160;</td>
- <td class="paramname"><em>begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const mod10_iter &amp;&#160;</td>
- <td class="paramname"><em>end</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const weight_t &amp;&#160;</td>
- <td class="paramname"><em>weight</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">std::size_t&#160;</td>
- <td class="paramname"><em>nbr_digits</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td>)</td>
- <td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus_8hpp_source.html#l00159">159</a> of file <a class="el" href="modulus_8hpp_source.html">modulus.hpp</a>.</p>
+<p>Validate a sequence according to the luhn_check_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.<br/>
+ size_expected &gt; 0 (enforced by static assert).</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">size_expected</td><td>is the number of valid value expected in the sequence. </td></tr>
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain size_expected valid values.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the check digit is correct, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="luhn_8hpp_source.html#l00084">84</a> of file <a class="el" href="luhn_8hpp_source.html">luhn.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a3c69232ff7e99030c18496c5810b3add"></a><!-- doxytag: member="boost::checks::compute_mod10" ref="a3c69232ff7e99030c18496c5810b3add" args="(mod10_iter &amp;begin, const mod10_iter &amp;end, const weight_t &amp;weight, std::size_t nbr_digits)" -->
+<a class="anchor" id="a2651a01fc5a7a3eec7381f18fcb04295"></a><!-- doxytag: member="boost::checks::check_luhn" ref="a2651a01fc5a7a3eec7381f18fcb04295" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;typename mod10_checkdigit , typename mod10_iter , typename weight_t &gt; </div>
+template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">mod10_checkdigit boost::checks::compute_mod10 </td>
+ <td class="memname">bool boost::checks::check_luhn </td>
           <td>(</td>
- <td class="paramtype">mod10_iter &amp;&#160;</td>
- <td class="paramname"><em>begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const mod10_iter &amp;&#160;</td>
- <td class="paramname"><em>end</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const weight_t &amp;&#160;</td>
- <td class="paramname"><em>weight</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">std::size_t&#160;</td>
- <td class="paramname"><em>nbr_digits</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td>)</td>
- <td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus_8hpp_source.html#l00198">198</a> of file <a class="el" href="modulus_8hpp_source.html">modulus.hpp</a>.</p>
+<p>Validate a sequence according to the luhn_check_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq contains no valid value.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the check digit is correct, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="luhn_8hpp_source.html#l00102">102</a> of file <a class="el" href="luhn_8hpp_source.html">luhn.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a3533e8c8f814d018b9cd48b689cf37f5"></a><!-- doxytag: member="boost::checks::compute_mod11" ref="a3533e8c8f814d018b9cd48b689cf37f5" args="(mod11_iter &amp;begin, const mod11_iter &amp;end, std::size_t nbr_digits)" -->
+<a class="anchor" id="ae9e7b0798732cefb3c6d51a4cc68d09c"></a><!-- doxytag: member="boost::checks::check_mastercard" ref="ae9e7b0798732cefb3c6d51a4cc68d09c" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;typename mod11_iter &gt; </div>
+template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">char boost::checks::compute_mod11 </td>
+ <td class="memname">bool boost::checks::check_mastercard </td>
           <td>(</td>
- <td class="paramtype">mod11_iter &amp;&#160;</td>
- <td class="paramname"><em>begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const mod11_iter &amp;&#160;</td>
- <td class="paramname"><em>end</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">std::size_t&#160;</td>
- <td class="paramname"><em>nbr_digits</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td>)</td>
- <td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus_8hpp_source.html#l00295">295</a> of file <a class="el" href="modulus_8hpp_source.html">modulus.hpp</a>.</p>
+<p>Validate a sequence according to the mastercard_check_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain exactly MASTERCARD_SIZE digits. </td></tr>
+ <tr><td class="paramname">std::invalid_argument</td><td>if the two first digits (from the leftmost) don't match the mastercard pattern.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the check digit is correct, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="mastercard_8hpp_source.html#l00085">85</a> of file <a class="el" href="mastercard_8hpp_source.html">mastercard.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="aca0c048503be271cac917bfff92d08bb"></a><!-- doxytag: member="boost::checks::compute_mod11" ref="aca0c048503be271cac917bfff92d08bb" args="(mod11_iter &amp;begin, const mod11_iter &amp;end, std::size_t nbr_digits)" -->
+<a class="anchor" id="afbc1a04be2d50c0caeb8f15237930513"></a><!-- doxytag: member="boost::checks::check_mod97_10" ref="afbc1a04be2d50c0caeb8f15237930513" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;typename mod11_checkdigit , typename mod11_iter &gt; </div>
+template&lt;size_t size_expected, typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">mod11_checkdigit boost::checks::compute_mod11 </td>
+ <td class="memname">bool boost::checks::check_mod97_10 </td>
           <td>(</td>
- <td class="paramtype">mod11_iter &amp;&#160;</td>
- <td class="paramname"><em>begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const mod11_iter &amp;&#160;</td>
- <td class="paramname"><em>end</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">std::size_t&#160;</td>
- <td class="paramname"><em>nbr_digits</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td>)</td>
- <td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus_8hpp_source.html#l00336">336</a> of file <a class="el" href="modulus_8hpp_source.html">modulus.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4c64fe520dcd8a9020e9165fc163f490"></a><!-- doxytag: member="boost::checks::compute_mod97" ref="a4c64fe520dcd8a9020e9165fc163f490" args="(mod97_iter &amp;begin, const mod97_iter &amp;end, std::size_t nbr_digits)" -->
-<div class="memitem">
+<p>Validate a sequence according to the mod97_10_check_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.<br/>
+ size_expected &gt; 0 (enforced by static assert).</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">size_expected</td><td>is the number of valid value expected in the sequence. </td></tr>
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain size_expected valid values.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the two check digits are correct, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="modulus97_8hpp_source.html#l00154">154</a> of file <a class="el" href="modulus97_8hpp_source.html">modulus97.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa32d98f0c9606a1d46786a57151c81ab"></a><!-- doxytag: member="boost::checks::check_mod97_10" ref="aa32d98f0c9606a1d46786a57151c81ab" args="(const check_range &amp;check_seq)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename check_range &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::checks::check_mod97_10 </td>
+ <td>(</td>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Validate a sequence according to the mod97_10_check_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq contains no valid value.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the two check digits are correct, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="modulus97_8hpp_source.html#l00172">172</a> of file <a class="el" href="modulus97_8hpp_source.html">modulus97.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acb7e8e0940822a9cb6836251c064e03f"></a><!-- doxytag: member="boost::checks::check_modulus11" ref="acb7e8e0940822a9cb6836251c064e03f" args="(const check_range &amp;check_seq)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;size_t size_expected, typename check_range &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::checks::check_modulus11 </td>
+ <td>(</td>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Validate a sequence according to the mod11_check_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.<br/>
+ size_expected &gt; 0 (enforced by static assert).</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">size_expected</td><td>is the number of valid value expected in the sequence. </td></tr>
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain size_expected valid values.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the check digit is correct, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="modulus11_8hpp_source.html#l00156">156</a> of file <a class="el" href="modulus11_8hpp_source.html">modulus11.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2d76774a0b153e9046cd18823cc12dd6"></a><!-- doxytag: member="boost::checks::check_modulus11" ref="a2d76774a0b153e9046cd18823cc12dd6" args="(const check_range &amp;check_seq)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename check_range &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::checks::check_modulus11 </td>
+ <td>(</td>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Validate a sequence according to the mod11_check_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq contains no valid value.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the check digit is correct, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="modulus11_8hpp_source.html#l00174">174</a> of file <a class="el" href="modulus11_8hpp_source.html">modulus11.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3e9f9bfde34262ad3f4e69ddf2e1bbd4"></a><!-- doxytag: member="boost::checks::check_sequence" ref="a3e9f9bfde34262ad3f4e69ddf2e1bbd4" args="(const check_range &amp;check_seq)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename algorithm , typename check_range &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::checks::check_sequence </td>
+ <td>(</td>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Validate a sequence according to algorithm. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">algorithm</td><td>is a set of static method use to translate, filter and calculate or verify the checkdigit. </td></tr>
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq contains no valid value.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the checkdigit is correct, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="basic__checks_8hpp_source.html#l00099">99</a> of file <a class="el" href="basic__checks_8hpp_source.html">basic_checks.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a574b80a0aafa204b1079de298dad8ea5"></a><!-- doxytag: member="boost::checks::check_sequence" ref="a574b80a0aafa204b1079de298dad8ea5" args="(const check_range &amp;check_seq)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename algorithm , size_t size_expected, typename check_range &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::checks::check_sequence </td>
+ <td>(</td>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Validate a sequence according to algorithm. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.<br/>
+ size_expected &gt; 0 (enforced by static assert).</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">algorithm</td><td>is a set of static method use to translate, filter and calculate or verify the checkdigit. </td></tr>
+ <tr><td class="paramname">size_expected</td><td>is the number of valid value expected in the sequence. </td></tr>
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain size_expected valid values.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the checkdigit is correct, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="basic__checks_8hpp_source.html#l00120">120</a> of file <a class="el" href="basic__checks_8hpp_source.html">basic_checks.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a944d9977c2db906b76346bc76928f06d"></a><!-- doxytag: member="boost::checks::check_upca" ref="a944d9977c2db906b76346bc76928f06d" args="(const check_range &amp;check_seq)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename check_range &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::checks::check_upca </td>
+ <td>(</td>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Validate a sequence according to the upc_check_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain exactly UPCA_SIZE digits.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the check digit is correct, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="upc_8hpp_source.html#l00067">67</a> of file <a class="el" href="upc_8hpp_source.html">upc.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abe6ccc42ec484aac046ea80bfaad4ae4"></a><!-- doxytag: member="boost::checks::check_verhoeff" ref="abe6ccc42ec484aac046ea80bfaad4ae4" args="(const check_range &amp;check_seq)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;size_t size_expected, typename check_range &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::checks::check_verhoeff </td>
+ <td>(</td>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Validate a sequence according to the verhoeff_check_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.<br/>
+ size_expected &gt; 0 (enforced by static assert).</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">size_expected</td><td>is the number of valid value expected in the sequence. </td></tr>
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain size_expected valid values.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the check digit is correct, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="verhoeff_8hpp_source.html#l00145">145</a> of file <a class="el" href="verhoeff_8hpp_source.html">verhoeff.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a86e8991bc68fab9958a902b140bd05c6"></a><!-- doxytag: member="boost::checks::check_verhoeff" ref="a86e8991bc68fab9958a902b140bd05c6" args="(const check_range &amp;check_seq)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename check_range &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::checks::check_verhoeff </td>
+ <td>(</td>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Validate a sequence according to the verhoeff_check_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq contains no valid value.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the check digit is correct, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="verhoeff_8hpp_source.html#l00163">163</a> of file <a class="el" href="verhoeff_8hpp_source.html">verhoeff.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab59d983a0e6f7df034570cdf7e14bdcb"></a><!-- doxytag: member="boost::checks::check_visa" ref="ab59d983a0e6f7df034570cdf7e14bdcb" args="(const check_range &amp;check_seq)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename check_range &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::checks::check_visa </td>
+ <td>(</td>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Validate a sequence according to the visa_check_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain exactly VISA_SIZE digits. </td></tr>
+ <tr><td class="paramname">std::invalid_argument</td><td>if the first digit (from the leftmost) doesn't match the Visa pattern.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the check digit is correct, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="visa_8hpp_source.html#l00083">83</a> of file <a class="el" href="visa_8hpp_source.html">visa.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a04b6c190de7e9bb7a99841a8ad996459"></a><!-- doxytag: member="boost::checks::compute_amex" ref="a04b6c190de7e9bb7a99841a8ad996459" args="(const check_range &amp;check_seq)" -->
+<div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;typename mod97_iter &gt; </div>
+template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">char boost::checks::compute_mod97 </td>
+ <td class="memname">boost::checks::amex_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_amex </td>
           <td>(</td>
- <td class="paramtype">mod97_iter &amp;&#160;</td>
- <td class="paramname"><em>begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const mod97_iter &amp;&#160;</td>
- <td class="paramname"><em>end</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">std::size_t&#160;</td>
- <td class="paramname"><em>nbr_digits</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td>)</td>
- <td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus_8hpp_source.html#l00383">383</a> of file <a class="el" href="modulus_8hpp_source.html">modulus.hpp</a>.</p>
+<p>Calculate the check digit of a sequence according to the amex_compute_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain exactly AMEX_SIZE_WITHOUT_CHECKDIGIT digits. </td></tr>
+ <tr><td class="paramname">std::invalid_argument</td><td>if the two first digits (from the leftmost) don't match the amex pattern. </td></tr>
+ <tr><td class="paramname"><a class="el" href="classboost_1_1checks_1_1translation__exception.html" title="This class provides support for translation failure. For example, sequence value into integer...">boost::checks::translation_exception</a></td><td>if the check digit cannot be translated into the checkdigit type.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The check digit. The check digit is in the range [0..9]. </dd></dl>
+
+<p>Definition at line <a class="el" href="amex_8hpp_source.html#l00105">105</a> of file <a class="el" href="amex_8hpp_source.html">amex.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="aa4c7db694c89fb4ba0a2b288776c66f3"></a><!-- doxytag: member="boost::checks::compute_mod97_10" ref="aa4c7db694c89fb4ba0a2b288776c66f3" args="(const check_range &amp;check_seq, checkdigits_iter mod97_checkdigits)" -->
+<a class="anchor" id="af2694703fb484efc186146542e4a7c53"></a><!-- doxytag: member="boost::checks::compute_checkdigit" ref="af2694703fb484efc186146542e4a7c53" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;size_t size_expected, typename check_range , typename checkdigits_iter &gt; </div>
+template&lt;typename algorithm , typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">checkdigits_iter boost::checks::compute_mod97_10 </td>
+ <td class="memname">algorithm::checkdigit&lt;check_range&gt;::type boost::checks::compute_checkdigit </td>
           <td>(</td>
           <td class="paramtype">const check_range &amp;&#160;</td>
- <td class="paramname"><em>check_seq</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td class="paramtype">checkdigits_iter&#160;</td>
- <td class="paramname"><em>mod97_checkdigits</em>&#160;</td>
         </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Calculate the check digit of a sequence according to algorithm. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">algorithm</td><td>is a set of static method use to translate, filter and calculate or verify the checkdigit. </td></tr>
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq contains no valid value.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The check digit of the type of a value in check_seq. </dd></dl>
+
+<p>Definition at line <a class="el" href="basic__checks_8hpp_source.html#l00140">140</a> of file <a class="el" href="basic__checks_8hpp_source.html">basic_checks.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a58d8bcbe9cc7d264f4a2b09d49717a56"></a><!-- doxytag: member="boost::checks::compute_checkdigit" ref="a58d8bcbe9cc7d264f4a2b09d49717a56" args="(const check_range &amp;check_seq)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename algorithm , size_t size_expected, typename check_range &gt; </div>
+ <table class="memname">
         <tr>
+ <td class="memname">algorithm::checkdigit&lt;check_range&gt;::type boost::checks::compute_checkdigit </td>
+ <td>(</td>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td>)</td>
- <td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus97_8hpp_source.html#l00082">82</a> of file <a class="el" href="modulus97_8hpp_source.html">modulus97.hpp</a>.</p>
+<p>Calculate the check digit of a sequence according to algorithm. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.<br/>
+ size_expected &gt; 0 (enforced by static assert).</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">algorithm</td><td>is a set of static method use to translate, filter and calculate or verify the checkdigit. </td></tr>
+ <tr><td class="paramname">size_expected</td><td>is the number of valid value expected in the sequence. </td></tr>
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain size_expected valid values.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The check digit of the type of a value in check_seq. </dd></dl>
+
+<p>Definition at line <a class="el" href="basic__checks_8hpp_source.html#l00161">161</a> of file <a class="el" href="basic__checks_8hpp_source.html">basic_checks.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a8f1e84d2acc21b23ebe972ca73a879b7"></a><!-- doxytag: member="boost::checks::compute_mod97_10" ref="a8f1e84d2acc21b23ebe972ca73a879b7" args="(const check_range &amp;check_seq, checkdigits_iter mod97_checkdigits)" -->
+<a class="anchor" id="a47d3a9835bc33566a01ca5614a13f1fe"></a><!-- doxytag: member="boost::checks::compute_checksum" ref="a47d3a9835bc33566a01ca5614a13f1fe" args="(iterator seq_begin, iterator seq_end)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;typename check_range , typename checkdigits_iter &gt; </div>
+template&lt;typename algorithm , typename size_contract , typename iterator &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">checkdigits_iter boost::checks::compute_mod97_10 </td>
+ <td class="memname">int boost::checks::compute_checksum </td>
           <td>(</td>
- <td class="paramtype">const check_range &amp;&#160;</td>
- <td class="paramname"><em>check_seq</em>, </td>
+ <td class="paramtype">iterator&#160;</td>
+ <td class="paramname"><em>seq_begin</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">checkdigits_iter&#160;</td>
- <td class="paramname"><em>mod97_checkdigits</em>&#160;</td>
+ <td class="paramtype">iterator&#160;</td>
+ <td class="paramname"><em>seq_end</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -1276,18 +1837,43 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus97_8hpp_source.html#l00088">88</a> of file <a class="el" href="modulus97_8hpp_source.html">modulus97.hpp</a>.</p>
+<p>Run through a sequence and calculate the checksum with the algorithm policy class. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>seq_begin and seq_end are valid iterators.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">algorithm</td><td>is a set of static method use to translate, filter and calculate or verify the checksum. </td></tr>
+ <tr><td class="paramname">size_contract</td><td>is a contract concerning the size of the sequence. </td></tr>
+ <tr><td class="paramname">iterator</td><td>Must meet the InputIterator requirements. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">seq_begin</td><td>Beginning of the sequence. </td></tr>
+ <tr><td class="paramname">seq_end</td><td>Ending of the sequence.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">size_contract::exception_size_failure</td><td>If the terms of the contract are not respected.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The checksum of the sequence calculated with algorithm. </dd></dl>
+
+<p>Definition at line <a class="el" href="basic__checks_8hpp_source.html#l00042">42</a> of file <a class="el" href="basic__checks_8hpp_source.html">basic_checks.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a65a3b463188c57b0991eeb513e36817d"></a><!-- doxytag: member="boost::checks::compute_modulus11" ref="a65a3b463188c57b0991eeb513e36817d" args="(const check_range &amp;check_seq)" -->
+<a class="anchor" id="a635c57c7b253fcadc1dfa5415d7647b1"></a><!-- doxytag: member="boost::checks::compute_checksum" ref="a635c57c7b253fcadc1dfa5415d7647b1" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;size_t size_expected, typename check_range &gt; </div>
+template&lt;typename algorithm , typename size_contract , typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">boost::checks::mod11_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_modulus11 </td>
+ <td class="memname">int boost::checks::compute_checksum </td>
           <td>(</td>
           <td class="paramtype">const check_range &amp;&#160;</td>
           <td class="paramname"><em>check_seq</em></td><td>)</td>
@@ -1297,18 +1883,42 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus11_8hpp_source.html#l00087">87</a> of file <a class="el" href="modulus11_8hpp_source.html">modulus11.hpp</a>.</p>
+<p>Create iterators according to the algorithm::iterator policy. And call the iterator overload version of compute_checksum. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">algorithm</td><td>is a set of static method use to translate, filter and calculate or verify the checkdigit. </td></tr>
+ <tr><td class="paramname">size_contract</td><td>is a contract concerning the size of the sequence. </td></tr>
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">size_contract::exception_size_failure</td><td>If the terms of the contract are not respected.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The checksum of the sequence calculated with algorithm. </dd></dl>
+
+<p>Definition at line <a class="el" href="basic__checks_8hpp_source.html#l00077">77</a> of file <a class="el" href="basic__checks_8hpp_source.html">basic_checks.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a9cb1939fed27705a86a2e609c49e35e5"></a><!-- doxytag: member="boost::checks::compute_modulus11" ref="a9cb1939fed27705a86a2e609c49e35e5" args="(const check_range &amp;check_seq)" -->
+<a class="anchor" id="ac08dd90c2f9518ad9f9addb3863db98e"></a><!-- doxytag: member="boost::checks::compute_ean13" ref="ac08dd90c2f9518ad9f9addb3863db98e" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">boost::checks::mod11_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_modulus11 </td>
+ <td class="memname">boost::checks::ean_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_ean13 </td>
           <td>(</td>
           <td class="paramtype">const check_range &amp;&#160;</td>
           <td class="paramname"><em>check_seq</em></td><td>)</td>
@@ -1318,80 +1928,219 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="modulus11_8hpp_source.html#l00093">93</a> of file <a class="el" href="modulus11_8hpp_source.html">modulus11.hpp</a>.</p>
+<p>Calculate the check digit of a sequence according to the ean_compute_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain exactly EAN13_SIZE_WITHOUT_CHECKDIGIT digits. </td></tr>
+ <tr><td class="paramname"><a class="el" href="classboost_1_1checks_1_1translation__exception.html" title="This class provides support for translation failure. For example, sequence value into integer...">boost::checks::translation_exception</a></td><td>if the check digit cannot be translated into the checkdigit type.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The check digit. The check digit is in the range [0..9]. </dd></dl>
+
+<p>Definition at line <a class="el" href="ean_8hpp_source.html#l00094">94</a> of file <a class="el" href="ean_8hpp_source.html">ean.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="adbf0f4f0f946d7c47fddd7553d9cd065"></a><!-- doxytag: member="boost::checks::compute_multicheckdigit" ref="adbf0f4f0f946d7c47fddd7553d9cd065" args="(const check_range &amp;check_seq, checkdigit_iterator checkdigits)" -->
+<a class="anchor" id="adb63ff3a11463aba48f55b5d96dfada1"></a><!-- doxytag: member="boost::checks::compute_ean8" ref="adb63ff3a11463aba48f55b5d96dfada1" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;typename algorithm , typename check_range , typename checkdigit_iterator &gt; </div>
+template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">checkdigit_iterator boost::checks::compute_multicheckdigit </td>
+ <td class="memname">boost::checks::ean_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_ean8 </td>
           <td>(</td>
           <td class="paramtype">const check_range &amp;&#160;</td>
- <td class="paramname"><em>check_seq</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td class="paramtype">checkdigit_iterator&#160;</td>
- <td class="paramname"><em>checkdigits</em>&#160;</td>
         </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Calculate the check digit of a sequence according to the ean_compute_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain exactly EAN8_SIZE_WITHOUT_CHECKDIGIT digits. </td></tr>
+ <tr><td class="paramname"><a class="el" href="classboost_1_1checks_1_1translation__exception.html" title="This class provides support for translation failure. For example, sequence value into integer...">boost::checks::translation_exception</a></td><td>if the check digit cannot be translated into the checkdigit type.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The check digit. The check digit is in the range [0..9]. </dd></dl>
+
+<p>Definition at line <a class="el" href="ean_8hpp_source.html#l00131">131</a> of file <a class="el" href="ean_8hpp_source.html">ean.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a41519cb136ca0786262764baa7b4622f"></a><!-- doxytag: member="boost::checks::compute_isbn10" ref="a41519cb136ca0786262764baa7b4622f" args="(const check_range &amp;check_seq)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename check_range &gt; </div>
+ <table class="memname">
         <tr>
+ <td class="memname">boost::checks::mod11_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_isbn10 </td>
+ <td>(</td>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td>)</td>
- <td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__checks_8hpp_source.html#l00079">79</a> of file <a class="el" href="basic__checks_8hpp_source.html">basic_checks.hpp</a>.</p>
+<p>Calculate the check digit of a sequence according to the mod11_compute_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain exactly ISBN10_SIZE_WITHOUT_CHECKDIGIT digits. </td></tr>
+ <tr><td class="paramname"><a class="el" href="classboost_1_1checks_1_1translation__exception.html" title="This class provides support for translation failure. For example, sequence value into integer...">boost::checks::translation_exception</a></td><td>if the check digit cannot be translated into the checkdigit type.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The check digit. The check digit is in the range [0..9,X]. </dd></dl>
+
+<p>Definition at line <a class="el" href="isbn_8hpp_source.html#l00145">145</a> of file <a class="el" href="isbn_8hpp_source.html">isbn.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a5b6bdc6137cc4bc9b494138fa8b6127c"></a><!-- doxytag: member="boost::checks::compute_multicheckdigit" ref="a5b6bdc6137cc4bc9b494138fa8b6127c" args="(const check_range &amp;check_seq, checkdigit_iterator checkdigits)" -->
+<a class="anchor" id="a5dd55ec9238d3d11527546f34d5ce2db"></a><!-- doxytag: member="boost::checks::compute_isbn13" ref="a5dd55ec9238d3d11527546f34d5ce2db" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;typename algorithm , size_t size_expected, typename check_range , typename checkdigit_iterator &gt; </div>
+template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">checkdigit_iterator boost::checks::compute_multicheckdigit </td>
+ <td class="memname">boost::checks::isbn13_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_isbn13 </td>
           <td>(</td>
           <td class="paramtype">const check_range &amp;&#160;</td>
- <td class="paramname"><em>check_seq</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td class="paramtype">checkdigit_iterator&#160;</td>
- <td class="paramname"><em>checkdigits</em>&#160;</td>
         </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Calculate the check digit of a sequence according to the isbn13_compute_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain exactly EAN13_SIZE_WITHOUT_CHECKDIGIT digits. </td></tr>
+ <tr><td class="paramname"><a class="el" href="classboost_1_1checks_1_1translation__exception.html" title="This class provides support for translation failure. For example, sequence value into integer...">boost::checks::translation_exception</a></td><td>if the check digit cannot be translated into the checkdigit type.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The check digit. The check digit is in the range [0..9]. </dd></dl>
+
+<p>Definition at line <a class="el" href="isbn_8hpp_source.html#l00108">108</a> of file <a class="el" href="isbn_8hpp_source.html">isbn.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8f86db1b7d82751de71288456d4edf0a"></a><!-- doxytag: member="boost::checks::compute_luhn" ref="a8f86db1b7d82751de71288456d4edf0a" args="(const check_range &amp;check_seq)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;size_t size_expected, typename check_range &gt; </div>
+ <table class="memname">
         <tr>
+ <td class="memname">boost::checks::luhn_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_luhn </td>
+ <td>(</td>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td>)</td>
- <td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__checks_8hpp_source.html#l00086">86</a> of file <a class="el" href="basic__checks_8hpp_source.html">basic_checks.hpp</a>.</p>
+<p>Calculate the check digit of a sequence according to the luhn_compute_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.<br/>
+ size_expected &gt; 0 (enforced by static assert).</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">size_expected</td><td>is the number of valid value expected in the sequence. (So the check digit is not included.) </td></tr>
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain size_expected valid values. </td></tr>
+ <tr><td class="paramname"><a class="el" href="classboost_1_1checks_1_1translation__exception.html" title="This class provides support for translation failure. For example, sequence value into integer...">boost::checks::translation_exception</a></td><td>if the check digit cannot be translated into the checkdigit type.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The check digit. The check digit is in the range [0..9]. </dd></dl>
+
+<p>Definition at line <a class="el" href="luhn_8hpp_source.html#l00122">122</a> of file <a class="el" href="luhn_8hpp_source.html">luhn.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a069b69920cc6182e4bd0f1414cdc7747"></a><!-- doxytag: member="boost::checks::compute_verhoeff" ref="a069b69920cc6182e4bd0f1414cdc7747" args="(const check_range &amp;check_seq)" -->
+<a class="anchor" id="a72f611fe14c840774de011e0271eb4b0"></a><!-- doxytag: member="boost::checks::compute_luhn" ref="a72f611fe14c840774de011e0271eb4b0" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;size_t size_expected, typename check_range &gt; </div>
+template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">boost::checks::verhoeff_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_verhoeff </td>
+ <td class="memname">boost::checks::luhn_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_luhn </td>
           <td>(</td>
           <td class="paramtype">const check_range &amp;&#160;</td>
           <td class="paramname"><em>check_seq</em></td><td>)</td>
@@ -1401,18 +2150,41 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="verhoeff_8hpp_source.html#l00095">95</a> of file <a class="el" href="verhoeff_8hpp_source.html">verhoeff.hpp</a>.</p>
+<p>Calculate the check digit of a sequence according to the luhn_compute_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq contains no valid value. </td></tr>
+ <tr><td class="paramname"><a class="el" href="classboost_1_1checks_1_1translation__exception.html" title="This class provides support for translation failure. For example, sequence value into integer...">boost::checks::translation_exception</a></td><td>if the check digit cannot be translated into the checkdigit type.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The check digit. The check digit is in the range [0..9]. </dd></dl>
+
+<p>Definition at line <a class="el" href="luhn_8hpp_source.html#l00141">141</a> of file <a class="el" href="luhn_8hpp_source.html">luhn.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a4bcb041b2939d1b52d223b9372b24536"></a><!-- doxytag: member="boost::checks::compute_verhoeff" ref="a4bcb041b2939d1b52d223b9372b24536" args="(const check_range &amp;check_seq)" -->
+<a class="anchor" id="a0f8b86d5edf6cc569f494bb890c83dcc"></a><!-- doxytag: member="boost::checks::compute_mastercard" ref="a0f8b86d5edf6cc569f494bb890c83dcc" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">boost::checks::verhoeff_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_verhoeff </td>
+ <td class="memname">boost::checks::mastercard_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_mastercard </td>
           <td>(</td>
           <td class="paramtype">const check_range &amp;&#160;</td>
           <td class="paramname"><em>check_seq</em></td><td>)</td>
@@ -1422,406 +2194,532 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="verhoeff_8hpp_source.html#l00101">101</a> of file <a class="el" href="verhoeff_8hpp_source.html">verhoeff.hpp</a>.</p>
+<p>Calculate the check digit of a sequence according to the mastercard_compute_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain exactly MASTERCARD_SIZE_WITHOUT_CHECKDIGIT digits. </td></tr>
+ <tr><td class="paramname">std::invalid_argument</td><td>if the two first digits (from the leftmost) don't match the mastercard pattern. </td></tr>
+ <tr><td class="paramname"><a class="el" href="classboost_1_1checks_1_1translation__exception.html" title="This class provides support for translation failure. For example, sequence value into integer...">boost::checks::translation_exception</a></td><td>if the check digit cannot be translated into the checkdigit type.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The check digit. The check digit is in the range [0..9]. </dd></dl>
+
+<p>Definition at line <a class="el" href="mastercard_8hpp_source.html#l00105">105</a> of file <a class="el" href="mastercard_8hpp_source.html">mastercard.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ae675f57e175d0da388219dc6bc742ed3"></a><!-- doxytag: member="boost::checks::ean13_check_digit" ref="ae675f57e175d0da388219dc6bc742ed3" args="(In ean_begin, In ean_end)" -->
+<a class="anchor" id="aa4c7db694c89fb4ba0a2b288776c66f3"></a><!-- doxytag: member="boost::checks::compute_mod97_10" ref="aa4c7db694c89fb4ba0a2b288776c66f3" args="(const check_range &amp;check_seq, checkdigits_iter mod97_checkdigits)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;class In &gt; </div>
+template&lt;size_t size_expected, typename check_range , typename checkdigits_iter &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">char boost::checks::ean13_check_digit </td>
+ <td class="memname">checkdigits_iter boost::checks::compute_mod97_10 </td>
           <td>(</td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>ean_begin</em>, </td>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>ean_end</em>&#160;</td>
+ <td class="paramtype">checkdigits_iter&#160;</td>
+ <td class="paramname"><em>mod97_checkdigits</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
           <td>)</td>
- <td></td><td><code> [inline]</code></td>
+ <td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
-<p>Compute the check digit of the European Article Numbering of size 13 (EAN-13) provided. </p>
 
-<p>Definition at line <a class="el" href="ean_8hpp_source.html#l00041">41</a> of file <a class="el" href="ean_8hpp_source.html">ean.hpp</a>.</p>
+<p>Calculate the check digits of a sequence according to the mod97_10_compute_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.<br/>
+ size_expected &gt; 0 (enforced by static assert).<br/>
+ mod97_checkdigits should have enough reserved place to store the two check digits.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">size_expected</td><td>is the number of valid value expected in the sequence. (So the check digits are not included.) </td></tr>
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ <tr><td class="paramname">checkdigits_iter</td><td>must meet the OutputIterator requirements. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check. </td></tr>
+ <tr><td class="paramname">mod97_checkdigits</td><td>is the OutputIterator in which the two check digits will be stored.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain size_expected valid values. </td></tr>
+ <tr><td class="paramname"><a class="el" href="classboost_1_1checks_1_1translation__exception.html" title="This class provides support for translation failure. For example, sequence value into integer...">boost::checks::translation_exception</a></td><td>if the check digits cannot be translated into the checkdigits_iter type.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The check digits are stored into mod97_checkdigits. The range of these is [0..9][0..9]. </dd></dl>
+
+<p>Definition at line <a class="el" href="modulus97_8hpp_source.html#l00194">194</a> of file <a class="el" href="modulus97_8hpp_source.html">modulus97.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a95182d3e9906feaa08450142a74ac958"></a><!-- doxytag: member="boost::checks::ean8_check_digit" ref="a95182d3e9906feaa08450142a74ac958" args="(In ean_begin, In ean_end)" -->
+<a class="anchor" id="a8f1e84d2acc21b23ebe972ca73a879b7"></a><!-- doxytag: member="boost::checks::compute_mod97_10" ref="a8f1e84d2acc21b23ebe972ca73a879b7" args="(const check_range &amp;check_seq, checkdigits_iter mod97_checkdigits)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;class In &gt; </div>
+template&lt;typename check_range , typename checkdigits_iter &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">char boost::checks::ean8_check_digit </td>
+ <td class="memname">checkdigits_iter boost::checks::compute_mod97_10 </td>
           <td>(</td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>ean_begin</em>, </td>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>ean_end</em>&#160;</td>
+ <td class="paramtype">checkdigits_iter&#160;</td>
+ <td class="paramname"><em>mod97_checkdigits</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
           <td>)</td>
- <td></td><td><code> [inline]</code></td>
+ <td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
-<p>Compute the check digit of the European Article Numbering of size 8 (EAN-8) provided. </p>
 
-<p>Definition at line <a class="el" href="ean_8hpp_source.html#l00022">22</a> of file <a class="el" href="ean_8hpp_source.html">ean.hpp</a>.</p>
+<p>Calculate the check digits of a sequence according to the mod97_10_compute_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.<br/>
+ mod97_checkdigits should have enough reserved place to store the two check digits.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ <tr><td class="paramname">checkdigits_iter</td><td>must meet the OutputIterator requirements. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check. </td></tr>
+ <tr><td class="paramname">mod97_checkdigits</td><td>is the OutputIterator in which the two check digits will be stored.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq contains no valid value. </td></tr>
+ <tr><td class="paramname"><a class="el" href="classboost_1_1checks_1_1translation__exception.html" title="This class provides support for translation failure. For example, sequence value into integer...">boost::checks::translation_exception</a></td><td>if the check digits cannot be translated into the checkdigits_iter type.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The check digits are stored into mod97_checkdigits. The range of these is [0..9][0..9]. </dd></dl>
+
+<p>Definition at line <a class="el" href="modulus97_8hpp_source.html#l00215">215</a> of file <a class="el" href="modulus97_8hpp_source.html">modulus97.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a0f8eb5d1aa18e2ffb31cf5171d2bfe47"></a><!-- doxytag: member="boost::checks::Is_ean13" ref="a0f8eb5d1aa18e2ffb31cf5171d2bfe47" args="(In ean_begin, In ean_end, Prefix ean_prefix_begin=null, Prefix ean_prefix_end=null)" -->
+<a class="anchor" id="a65a3b463188c57b0991eeb513e36817d"></a><!-- doxytag: member="boost::checks::compute_modulus11" ref="a65a3b463188c57b0991eeb513e36817d" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;class In , class Prefix &gt; </div>
+template&lt;size_t size_expected, typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::Is_ean13 </td>
+ <td class="memname">boost::checks::mod11_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_modulus11 </td>
           <td>(</td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>ean_begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>ean_end</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">Prefix&#160;</td>
- <td class="paramname"><em>ean_prefix_begin</em> = <code>null</code>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">Prefix&#160;</td>
- <td class="paramname"><em>ean_prefix_end</em> = <code>null</code>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td>)</td>
- <td></td><td><code> [inline]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
-<p>Check the validity of the European Article Numbering of size 13 (EAN-13) provided. </p>
+
+<p>Calculate the check digit of a sequence according to the mod11_compute_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.<br/>
+ size_expected &gt; 0 (enforced by static assert).</dd></dl>
 <dl><dt><b>Template Parameters:</b></dt><dd>
   <table class="">
- <tr><td class="paramname">In</td><td>Iterator which represents the bound of a sequence of character. </td></tr>
- <tr><td class="paramname">Prefix</td><td>Iterator which represents the bound of a sequence of EAN prefixes (GS1 country codes). </td></tr>
+ <tr><td class="paramname">size_expected</td><td>is the number of valid value expected in the sequence. (So the check digit is not included.) </td></tr>
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
   </table>
   </dd>
 </dl>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">ean_begin</td><td>Represents the beginning of the EAN sequence to check. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">ean_end</td><td>Represents one off the end of the EAN sequence to check. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">ean_prefix_begin</td><td>Represents the beginning of the prefixes sequence to allow. Default : null, all the prefixes are allowed. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">ean_prefix_end</td><td>Represents the ending of the prefixes sequence to allow. Default : null, all the prefixes are allowed. </td></tr>
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain size_expected valid values. </td></tr>
+ <tr><td class="paramname"><a class="el" href="classboost_1_1checks_1_1translation__exception.html" title="This class provides support for translation failure. For example, sequence value into integer...">boost::checks::translation_exception</a></td><td>if the check digit cannot be translated into the checkdigit type.</td></tr>
   </table>
   </dd>
 </dl>
-<dl class="pre"><dt><b>Precondition:</b></dt><dd>ean_begin and ean_end are valid initialized iterators. If ean_prefix_begin and ean_prefix_end are passed as arguments, they must be valid initialized iterators. </dd></dl>
-<dl class="post"><dt><b>Postcondition:</b></dt><dd>ean_begin, ean_end, ean_prefix_begin, and ean_prefix_end are unchanged. </dd></dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>True if the EAN delimited by ean_begin and ean_end is a valid EAN of size 13 with a prefix </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The check digit. The check digit is in the range [0..9,X]. </dd></dl>
 
-<p>Definition at line <a class="el" href="ean_8hpp_source.html#l00036">36</a> of file <a class="el" href="ean_8hpp_source.html">ean.hpp</a>.</p>
+<p>Definition at line <a class="el" href="modulus11_8hpp_source.html#l00194">194</a> of file <a class="el" href="modulus11_8hpp_source.html">modulus11.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a5ee705fcc8ca3f666b238eea344913a8"></a><!-- doxytag: member="boost::checks::Is_ean8" ref="a5ee705fcc8ca3f666b238eea344913a8" args="(In ean_begin, In ean_end)" -->
+<a class="anchor" id="a9cb1939fed27705a86a2e609c49e35e5"></a><!-- doxytag: member="boost::checks::compute_modulus11" ref="a9cb1939fed27705a86a2e609c49e35e5" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;class In &gt; </div>
+template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::Is_ean8 </td>
+ <td class="memname">boost::checks::mod11_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_modulus11 </td>
           <td>(</td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>ean_begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>ean_end</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td>)</td>
- <td></td><td><code> [inline]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
-<p>Check the validity of the European Article Numbering of size 8 (EAN-8) provided. </p>
 
-<p>Definition at line <a class="el" href="ean_8hpp_source.html#l00017">17</a> of file <a class="el" href="ean_8hpp_source.html">ean.hpp</a>.</p>
+<p>Calculate the check digit of a sequence according to the mod11_compute_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq contains no valid value. </td></tr>
+ <tr><td class="paramname"><a class="el" href="classboost_1_1checks_1_1translation__exception.html" title="This class provides support for translation failure. For example, sequence value into integer...">boost::checks::translation_exception</a></td><td>if the check digit cannot be translated into the checkdigit type.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The check digit. The check digit is in the range [0..9,X]. </dd></dl>
+
+<p>Definition at line <a class="el" href="modulus11_8hpp_source.html#l00213">213</a> of file <a class="el" href="modulus11_8hpp_source.html">modulus11.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ac1b614e02e1f754bbf700c757160bbfe"></a><!-- doxytag: member="boost::checks::Is_isbn10" ref="ac1b614e02e1f754bbf700c757160bbfe" args="(In isbn_begin, In isbn_end)" -->
+<a class="anchor" id="adbf0f4f0f946d7c47fddd7553d9cd065"></a><!-- doxytag: member="boost::checks::compute_multicheckdigit" ref="adbf0f4f0f946d7c47fddd7553d9cd065" args="(const check_range &amp;check_seq, checkdigit_iterator checkdigits)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;class In &gt; </div>
+template&lt;typename algorithm , typename check_range , typename checkdigit_iterator &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::Is_isbn10 </td>
+ <td class="memname">checkdigit_iterator boost::checks::compute_multicheckdigit </td>
           <td>(</td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>isbn_begin</em>, </td>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>isbn_end</em>&#160;</td>
+ <td class="paramtype">checkdigit_iterator&#160;</td>
+ <td class="paramname"><em>checkdigits</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
           <td>)</td>
- <td></td><td><code> [inline]</code></td>
+ <td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
-<p>Check the validity of the International Standard Book Number (ISBN) of size 10. </p>
+
+<p>Calculate the checkdigits of a sequence according to algorithm. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.<br/>
+ checkdigits is a valid initialized iterator and have enough reserved place to store the check digits.</dd></dl>
 <dl><dt><b>Template Parameters:</b></dt><dd>
   <table class="">
- <tr><td class="paramname">In</td><td>Iterator which represent the bound of a sequence of character. </td></tr>
+ <tr><td class="paramname">algorithm</td><td>is a set of static method use to translate, filter and calculate or verify the checkdigits. </td></tr>
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ <tr><td class="paramname">checkdigit_iterator</td><td>must meet the OutputIterator requirements. </td></tr>
   </table>
   </dd>
 </dl>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">isbn_begin</td><td>Represents the beginning of the ISBN sequence to check. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">isbn_end</td><td>Represents one off the end of the ISBN sequence to check. </td></tr>
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check. </td></tr>
+ <tr><td class="paramname">checkdigits</td><td>is the output iterator in which the check digits will be written.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq contains no valid value.</td></tr>
   </table>
   </dd>
 </dl>
-<dl class="pre"><dt><b>Precondition:</b></dt><dd>isbn_begin and isbn_end are valid initialized iterators.The length of the sequence should be at least of size 10 and the sequence should contains only dash(es) and digits. </dd></dl>
-<dl class="post"><dt><b>Postcondition:</b></dt><dd>isbn_begin and isbn_end are inchanged. </dd></dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>true if the sequence is a valid ISBN of size 10, otherwise false. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An iterator initialized at one pass the end of checkdigits. </dd></dl>
 
-<p>Definition at line <a class="el" href="isbn_8hpp_source.html#l00033">33</a> of file <a class="el" href="isbn_8hpp_source.html">isbn.hpp</a>.</p>
+<p>Definition at line <a class="el" href="basic__checks_8hpp_source.html#l00184">184</a> of file <a class="el" href="basic__checks_8hpp_source.html">basic_checks.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ad94e11097f0451dacc57e5dadc9e0356"></a><!-- doxytag: member="boost::checks::Is_isbn13" ref="ad94e11097f0451dacc57e5dadc9e0356" args="(In isbn_begin, In isbn_end)" -->
+<a class="anchor" id="a5b6bdc6137cc4bc9b494138fa8b6127c"></a><!-- doxytag: member="boost::checks::compute_multicheckdigit" ref="a5b6bdc6137cc4bc9b494138fa8b6127c" args="(const check_range &amp;check_seq, checkdigit_iterator checkdigits)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;class In &gt; </div>
+template&lt;typename algorithm , size_t size_expected, typename check_range , typename checkdigit_iterator &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::Is_isbn13 </td>
+ <td class="memname">checkdigit_iterator boost::checks::compute_multicheckdigit </td>
           <td>(</td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>isbn_begin</em>, </td>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>isbn_end</em>&#160;</td>
+ <td class="paramtype">checkdigit_iterator&#160;</td>
+ <td class="paramname"><em>checkdigits</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
           <td>)</td>
- <td></td><td><code> [inline]</code></td>
+ <td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
-<p>Check the validity of the International Standard Book Number (ISBN) of size 13. (It is a ISBN encapsulated into a EAN). </p>
 
-<p>Definition at line <a class="el" href="isbn_8hpp_source.html#l00086">86</a> of file <a class="el" href="isbn_8hpp_source.html">isbn.hpp</a>.</p>
+<p>Calculate the checkdigits of a sequence according to algorithm. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.<br/>
+ checkdigits is a valid initialized iterator and have enough reserved place to store the check digits.<br/>
+ size_expected &gt; 0 (enforced by static assert).</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">algorithm</td><td>is a set of static method use to translate, filter and calculate or verify the checkdigits. </td></tr>
+ <tr><td class="paramname">size_expected</td><td>is the number of valid value expected in the sequence. </td></tr>
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ <tr><td class="paramname">checkdigit_iterator</td><td>must meet the OutputIterator requirements. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check. </td></tr>
+ <tr><td class="paramname">checkdigits</td><td>is the output iterator in which the check digits will be written.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain size_expected valid values.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An iterator initialized at one pass the end of checkdigits. </dd></dl>
+
+<p>Definition at line <a class="el" href="basic__checks_8hpp_source.html#l00207">207</a> of file <a class="el" href="basic__checks_8hpp_source.html">basic_checks.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a1371260adf7744f307e9742db72c79f0"></a><!-- doxytag: member="boost::checks::Is_upca" ref="a1371260adf7744f307e9742db72c79f0" args="(In upc_begin, In upc_end)" -->
+<a class="anchor" id="ae494e5fd020da1bacf88547eda843b81"></a><!-- doxytag: member="boost::checks::compute_upca" ref="ae494e5fd020da1bacf88547eda843b81" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;class In &gt; </div>
+template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">bool boost::checks::Is_upca </td>
+ <td class="memname">boost::checks::upc_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_upca </td>
           <td>(</td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>upc_begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>upc_end</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td>)</td>
- <td></td><td><code> [inline]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
-<p>Check the validity of the Universal Product Code category A (UPC-A) provided. </p>
+
+<p>Calculate the check digit of a sequence according to the upc_compute_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
 <dl><dt><b>Template Parameters:</b></dt><dd>
   <table class="">
- <tr><td class="paramname">Iterator</td><td>which represents the beginning or the ending of a sequence of character </td></tr>
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
   </table>
   </dd>
 </dl>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">upc_begin</td><td>Represents the beginning of the UPC sequence to check. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">upc_end]</td><td>Represents one off the end of the UPC sequence to check. </td></tr>
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain exactly UPCA_SIZE_WITHOUT_CHECKDIGIT digits. </td></tr>
+ <tr><td class="paramname"><a class="el" href="classboost_1_1checks_1_1translation__exception.html" title="This class provides support for translation failure. For example, sequence value into integer...">boost::checks::translation_exception</a></td><td>if the check digit cannot be translated into the checkdigit type.</td></tr>
   </table>
   </dd>
 </dl>
-<dl class="pre"><dt><b>Precondition:</b></dt><dd>upc_begin and upc_end are valid initialized iterators. The length of the sequence should be of size 12 and the sequence should contains only digits. </dd></dl>
-<dl class="post"><dt><b>Postcondition:</b></dt><dd>upc_begin and upc_end are unchanged. </dd></dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>true if the UPC sequence is valid which it means that the check digit is equals to the last character. Otherwise false. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The check digit. The check digit is in the range [0..9]. </dd></dl>
 
-<p>Definition at line <a class="el" href="upc_8hpp_source.html#l00023">23</a> of file <a class="el" href="upc_8hpp_source.html">upc.hpp</a>.</p>
+<p>Definition at line <a class="el" href="upc_8hpp_source.html#l00086">86</a> of file <a class="el" href="upc_8hpp_source.html">upc.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="aa8f170503844cf15cc4b0296c241e947"></a><!-- doxytag: member="boost::checks::isbn10_check_digit" ref="aa8f170503844cf15cc4b0296c241e947" args="(In isbn_begin, In isbn_end)" -->
+<a class="anchor" id="a069b69920cc6182e4bd0f1414cdc7747"></a><!-- doxytag: member="boost::checks::compute_verhoeff" ref="a069b69920cc6182e4bd0f1414cdc7747" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;class In &gt; </div>
+template&lt;size_t size_expected, typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">char boost::checks::isbn10_check_digit </td>
+ <td class="memname">boost::checks::verhoeff_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_verhoeff </td>
           <td>(</td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>isbn_begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>isbn_end</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td>)</td>
- <td></td><td><code> [inline]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
-<p>Compute the check digit of the International Standard Book Number (ISBN) of size 10. </p>
+
+<p>Calculate the check digit of a sequence according to the verhoeff_compute_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.<br/>
+ size_expected &gt; 0 (enforced by static assert).</dd></dl>
 <dl><dt><b>Template Parameters:</b></dt><dd>
   <table class="">
- <tr><td class="paramname">In</td><td>Iterator which represent the bound of a sequence of character. </td></tr>
+ <tr><td class="paramname">size_expected</td><td>is the number of valid value expected in the sequence. (So the check digit is not included.) </td></tr>
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
   </table>
   </dd>
 </dl>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">isbn_begin</td><td>Represents the beginning of the ISBN sequence to check. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">isbn_end</td><td>Represents one off the end of the ISBN sequence to check. </td></tr>
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain size_expected valid values. </td></tr>
+ <tr><td class="paramname"><a class="el" href="classboost_1_1checks_1_1translation__exception.html" title="This class provides support for translation failure. For example, sequence value into integer...">boost::checks::translation_exception</a></td><td>if the check digit cannot be translated into the checkdigit type.</td></tr>
   </table>
   </dd>
 </dl>
-<dl class="pre"><dt><b>Precondition:</b></dt><dd>isbn_begin and isbn_end are valid initialized iterators. The length of the sequence should be of size 9 and the sequence should contains only digits and dashes. </dd></dl>
-<dl class="post"><dt><b>Postcondition:</b></dt><dd>isbn_begin and isbn_end are inchanged. </dd></dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The check digit of the ISBN of size 9 provided, which can be between '0' and '9' or 'X'. Otherwise -1 is returned if the ISBN of size 9 provided is not correct. </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The check digit. The check digit is in the range [0..9]. </dd></dl>
 
-<p>Definition at line <a class="el" href="isbn_8hpp_source.html#l00063">63</a> of file <a class="el" href="isbn_8hpp_source.html">isbn.hpp</a>.</p>
+<p>Definition at line <a class="el" href="verhoeff_8hpp_source.html#l00183">183</a> of file <a class="el" href="verhoeff_8hpp_source.html">verhoeff.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="aad0aa8b4907502a3cd4c2eaf63d34277"></a><!-- doxytag: member="boost::checks::isbn13_check_digit" ref="aad0aa8b4907502a3cd4c2eaf63d34277" args="(In isbn_begin, In isbn_end)" -->
+<a class="anchor" id="a4bcb041b2939d1b52d223b9372b24536"></a><!-- doxytag: member="boost::checks::compute_verhoeff" ref="a4bcb041b2939d1b52d223b9372b24536" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;class In &gt; </div>
+template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">char boost::checks::isbn13_check_digit </td>
+ <td class="memname">boost::checks::verhoeff_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_verhoeff </td>
           <td>(</td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>isbn_begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>isbn_end</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td>)</td>
- <td></td><td><code> [inline]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
-<p>Compute the check digit of the International Standard Book Number (ISBN) of size 13. (It is a ISBN encapulsed into a EAN). </p>
 
-<p>Definition at line <a class="el" href="isbn_8hpp_source.html#l00094">94</a> of file <a class="el" href="isbn_8hpp_source.html">isbn.hpp</a>.</p>
+<p>Calculate the check digit of a sequence according to the verhoeff_compute_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq contains no valid value. </td></tr>
+ <tr><td class="paramname"><a class="el" href="classboost_1_1checks_1_1translation__exception.html" title="This class provides support for translation failure. For example, sequence value into integer...">boost::checks::translation_exception</a></td><td>if the check digit cannot be translated into the checkdigit type.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The check digit. The check digit is in the range [0..9]. </dd></dl>
+
+<p>Definition at line <a class="el" href="verhoeff_8hpp_source.html#l00202">202</a> of file <a class="el" href="verhoeff_8hpp_source.html">verhoeff.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="aa2da70ce43176c0c4b1acd495671c1e2"></a><!-- doxytag: member="boost::checks::upca_check_digit" ref="aa2da70ce43176c0c4b1acd495671c1e2" args="(In upc_begin, In upc_end)" -->
+<a class="anchor" id="a4770ebdffc040e9cc9cb1fb6f1d75457"></a><!-- doxytag: member="boost::checks::compute_visa" ref="a4770ebdffc040e9cc9cb1fb6f1d75457" args="(const check_range &amp;check_seq)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;class In &gt; </div>
+template&lt;typename check_range &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">char boost::checks::upca_check_digit </td>
+ <td class="memname">boost::checks::visa_compute_algorithm::checkdigit&lt; check_range &gt;::type boost::checks::compute_visa </td>
           <td>(</td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>upc_begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">In&#160;</td>
- <td class="paramname"><em>upc_end</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">const check_range &amp;&#160;</td>
+ <td class="paramname"><em>check_seq</em></td><td>)</td>
           <td></td>
- <td>)</td>
- <td></td><td><code> [inline]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
-<p>Compute the check digit of the Universal Product Code category A (UPC-A) provided /tparam Iterator which represents the beginning or the ending of a sequence of character. /param [in] upc_begin Represents the beginning of the UPC sequence to check. /param [in] upc_end Represents one off the end of the UPC sequence to check. /pre upc_begin and upc_end are valid initialized iterators. The length of the sequence should be of size 11 and the sequence should contains only digits. /post upc_begin and upc_end are unchanged. /result 0 if the check digit couldn't be calculated (Exemple : wrong size, ...). Otherwise, the check digit character between '0' and '9'. </p>
 
-<p>Definition at line <a class="el" href="upc_8hpp_source.html#l00045">45</a> of file <a class="el" href="upc_8hpp_source.html">upc.hpp</a>.</p>
+<p>Calculate the check digit of a sequence according to the visa_compute_algorithm type. </p>
+<dl class="pre"><dt><b>Precondition:</b></dt><dd>check_seq is a valid range.</dd></dl>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table class="">
+ <tr><td class="paramname">check_range</td><td>is a valid range type. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check_seq</td><td>is the sequence of value to check.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::invalid_argument</td><td>if check_seq doesn't contain exactly VISA_SIZE_WITHOUT_CHECKDIGIT digits. </td></tr>
+ <tr><td class="paramname">std::invalid_argument</td><td>if the first digit (from the leftmost) doESn't match the Visa pattern. </td></tr>
+ <tr><td class="paramname"><a class="el" href="classboost_1_1checks_1_1translation__exception.html" title="This class provides support for translation failure. For example, sequence value into integer...">boost::checks::translation_exception</a></td><td>if the check digit cannot be translated into the checkdigit type.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The check digit. The check digit is in the range [0..9]. </dd></dl>
+
+<p>Definition at line <a class="el" href="visa_8hpp_source.html#l00103">103</a> of file <a class="el" href="visa_8hpp_source.html">visa.hpp</a>.</p>
 
 </div>
 </div>
@@ -1844,7 +2742,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:53</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespacemembers.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespacemembers.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespacemembers.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:54 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -69,6 +69,7 @@
   </div>
   <div id="navrow4" class="tabs3">
     <ul class="tablist">
+ <li>a</li>
       <li>c</li>
       <li>e</li>
       <li>i</li>
@@ -82,21 +83,40 @@
 <div class="contents">
 <div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
 
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>amex_check_algorithm
+: <a class="el" href="namespaceboost_1_1checks.html#ad6e89cce2497202c43286e24ee800903">boost::checks</a>
+</li>
+<li>amex_compute_algorithm
+: <a class="el" href="namespaceboost_1_1checks.html#a8e61204056ca87bdb92f246c12774b5d">boost::checks</a>
+</li>
+</ul>
+
+
 <h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
-<li>check_luhn()
-: <a class="el" href="namespaceboost_1_1checks.html#a36a3ea230792e9f9ba0c02ce1c46354c">boost::checks</a>
+<li>check_amex()
+: <a class="el" href="namespaceboost_1_1checks.html#a2aff225983f36758feaba34662173b53">boost::checks</a>
 </li>
-<li>check_mod10()
-: <a class="el" href="namespaceboost_1_1checks.html#a2cae3e674bd94ba471dcb91fe21ca57a">boost::checks</a>
+<li>check_ean13()
+: <a class="el" href="namespaceboost_1_1checks.html#a99f1f79f65b14f9f2c68477c69ab7420">boost::checks</a>
 </li>
-<li>check_mod11()
-: <a class="el" href="namespaceboost_1_1checks.html#a1d8fca39772cfb1be8ec91cbbec097e9">boost::checks</a>
+<li>check_ean8()
+: <a class="el" href="namespaceboost_1_1checks.html#a1d5df84c16aa8c879214bf8f6a6993ea">boost::checks</a>
 </li>
-<li>check_mod97()
-: <a class="el" href="namespaceboost_1_1checks.html#ad5ddc70e24dff8523c786e8f840f4a83">boost::checks</a>
+<li>check_isbn10()
+: <a class="el" href="namespaceboost_1_1checks.html#af52b5d0c188f321561b69f312c93b336">boost::checks</a>
+</li>
+<li>check_isbn13()
+: <a class="el" href="namespaceboost_1_1checks.html#a787f7cd04f5561dcdadff392c5af0bee">boost::checks</a>
+</li>
+<li>check_luhn()
+: <a class="el" href="namespaceboost_1_1checks.html#a36a3ea230792e9f9ba0c02ce1c46354c">boost::checks</a>
+</li>
+<li>check_mastercard()
+: <a class="el" href="namespaceboost_1_1checks.html#ae9e7b0798732cefb3c6d51a4cc68d09c">boost::checks</a>
 </li>
 <li>check_mod97_10()
-: <a class="el" href="namespaceboost_1_1checks.html#aa32d98f0c9606a1d46786a57151c81ab">boost::checks</a>
+: <a class="el" href="namespaceboost_1_1checks.html#afbc1a04be2d50c0caeb8f15237930513">boost::checks</a>
 </li>
 <li>check_modulus11()
 : <a class="el" href="namespaceboost_1_1checks.html#acb7e8e0940822a9cb6836251c064e03f">boost::checks</a>
@@ -104,73 +124,88 @@
 <li>check_sequence()
 : <a class="el" href="namespaceboost_1_1checks.html#a3e9f9bfde34262ad3f4e69ddf2e1bbd4">boost::checks</a>
 </li>
+<li>check_upca()
+: <a class="el" href="namespaceboost_1_1checks.html#a944d9977c2db906b76346bc76928f06d">boost::checks</a>
+</li>
 <li>check_verhoeff()
 : <a class="el" href="namespaceboost_1_1checks.html#abe6ccc42ec484aac046ea80bfaad4ae4">boost::checks</a>
 </li>
+<li>check_visa()
+: <a class="el" href="namespaceboost_1_1checks.html#ab59d983a0e6f7df034570cdf7e14bdcb">boost::checks</a>
+</li>
+<li>compute_amex()
+: <a class="el" href="namespaceboost_1_1checks.html#a04b6c190de7e9bb7a99841a8ad996459">boost::checks</a>
+</li>
 <li>compute_checkdigit()
-: <a class="el" href="namespaceboost_1_1checks.html#a58d8bcbe9cc7d264f4a2b09d49717a56">boost::checks</a>
+: <a class="el" href="namespaceboost_1_1checks.html#af2694703fb484efc186146542e4a7c53">boost::checks</a>
 </li>
 <li>compute_checksum()
-: <a class="el" href="namespaceboost_1_1checks.html#a47d3a9835bc33566a01ca5614a13f1fe">boost::checks</a>
+: <a class="el" href="namespaceboost_1_1checks.html#a635c57c7b253fcadc1dfa5415d7647b1">boost::checks</a>
 </li>
-<li>compute_luhn()
-: <a class="el" href="namespaceboost_1_1checks.html#a8f86db1b7d82751de71288456d4edf0a">boost::checks</a>
+<li>compute_ean13()
+: <a class="el" href="namespaceboost_1_1checks.html#ac08dd90c2f9518ad9f9addb3863db98e">boost::checks</a>
+</li>
+<li>compute_ean8()
+: <a class="el" href="namespaceboost_1_1checks.html#adb63ff3a11463aba48f55b5d96dfada1">boost::checks</a>
 </li>
-<li>compute_mod10()
-: <a class="el" href="namespaceboost_1_1checks.html#a3c69232ff7e99030c18496c5810b3add">boost::checks</a>
+<li>compute_isbn10()
+: <a class="el" href="namespaceboost_1_1checks.html#a41519cb136ca0786262764baa7b4622f">boost::checks</a>
 </li>
-<li>compute_mod11()
-: <a class="el" href="namespaceboost_1_1checks.html#aca0c048503be271cac917bfff92d08bb">boost::checks</a>
+<li>compute_isbn13()
+: <a class="el" href="namespaceboost_1_1checks.html#a5dd55ec9238d3d11527546f34d5ce2db">boost::checks</a>
 </li>
-<li>compute_mod97()
-: <a class="el" href="namespaceboost_1_1checks.html#a4c64fe520dcd8a9020e9165fc163f490">boost::checks</a>
+<li>compute_luhn()
+: <a class="el" href="namespaceboost_1_1checks.html#a72f611fe14c840774de011e0271eb4b0">boost::checks</a>
+</li>
+<li>compute_mastercard()
+: <a class="el" href="namespaceboost_1_1checks.html#a0f8b86d5edf6cc569f494bb890c83dcc">boost::checks</a>
 </li>
 <li>compute_mod97_10()
-: <a class="el" href="namespaceboost_1_1checks.html#a8f1e84d2acc21b23ebe972ca73a879b7">boost::checks</a>
+: <a class="el" href="namespaceboost_1_1checks.html#aa4c7db694c89fb4ba0a2b288776c66f3">boost::checks</a>
 </li>
 <li>compute_modulus11()
-: <a class="el" href="namespaceboost_1_1checks.html#a9cb1939fed27705a86a2e609c49e35e5">boost::checks</a>
+: <a class="el" href="namespaceboost_1_1checks.html#a65a3b463188c57b0991eeb513e36817d">boost::checks</a>
 </li>
 <li>compute_multicheckdigit()
-: <a class="el" href="namespaceboost_1_1checks.html#adbf0f4f0f946d7c47fddd7553d9cd065">boost::checks</a>
+: <a class="el" href="namespaceboost_1_1checks.html#a5b6bdc6137cc4bc9b494138fa8b6127c">boost::checks</a>
+</li>
+<li>compute_upca()
+: <a class="el" href="namespaceboost_1_1checks.html#ae494e5fd020da1bacf88547eda843b81">boost::checks</a>
 </li>
 <li>compute_verhoeff()
 : <a class="el" href="namespaceboost_1_1checks.html#a4bcb041b2939d1b52d223b9372b24536">boost::checks</a>
 </li>
+<li>compute_visa()
+: <a class="el" href="namespaceboost_1_1checks.html#a4770ebdffc040e9cc9cb1fb6f1d75457">boost::checks</a>
+</li>
 </ul>
 
 
 <h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
-<li>ean13_check_digit()
-: <a class="el" href="namespaceboost_1_1checks.html#ae675f57e175d0da388219dc6bc742ed3">boost::checks</a>
+<li>ean_check_algorithm
+: <a class="el" href="namespaceboost_1_1checks.html#a7ade1a7caf15a4e84fe883128d230415">boost::checks</a>
+</li>
+<li>ean_compute_algorithm
+: <a class="el" href="namespaceboost_1_1checks.html#a155a87965d77be3e8ca147deca9e8642">boost::checks</a>
 </li>
-<li>ean8_check_digit()
-: <a class="el" href="namespaceboost_1_1checks.html#a95182d3e9906feaa08450142a74ac958">boost::checks</a>
+<li>ean_sense
+: <a class="el" href="namespaceboost_1_1checks.html#a5777fac9f48a6435fb586c59c3cfe85b">boost::checks</a>
+</li>
+<li>ean_weight
+: <a class="el" href="namespaceboost_1_1checks.html#a9954b4088442885ef6e2576de09a447a">boost::checks</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
-<li>Is_ean13()
-: <a class="el" href="namespaceboost_1_1checks.html#a0f8eb5d1aa18e2ffb31cf5171d2bfe47">boost::checks</a>
-</li>
-<li>Is_ean8()
-: <a class="el" href="namespaceboost_1_1checks.html#a5ee705fcc8ca3f666b238eea344913a8">boost::checks</a>
-</li>
-<li>Is_isbn10()
-: <a class="el" href="namespaceboost_1_1checks.html#ac1b614e02e1f754bbf700c757160bbfe">boost::checks</a>
-</li>
-<li>Is_isbn13()
-: <a class="el" href="namespaceboost_1_1checks.html#ad94e11097f0451dacc57e5dadc9e0356">boost::checks</a>
+<li>initial_mod97_weight
+: <a class="el" href="namespaceboost_1_1checks.html#a6e393a7c0f86be5625ed099b1f19a7a2">boost::checks</a>
 </li>
-<li>Is_upca()
-: <a class="el" href="namespaceboost_1_1checks.html#a1371260adf7744f307e9742db72c79f0">boost::checks</a>
+<li>isbn13_check_algorithm
+: <a class="el" href="namespaceboost_1_1checks.html#a268063a04f4922a2fa58daf19baa616c">boost::checks</a>
 </li>
-<li>isbn10_check_digit()
-: <a class="el" href="namespaceboost_1_1checks.html#aa8f170503844cf15cc4b0296c241e947">boost::checks</a>
-</li>
-<li>isbn13_check_digit()
-: <a class="el" href="namespaceboost_1_1checks.html#aad0aa8b4907502a3cd4c2eaf63d34277">boost::checks</a>
+<li>isbn13_compute_algorithm
+: <a class="el" href="namespaceboost_1_1checks.html#aa04af64ebe32659934424590adb037ed">boost::checks</a>
 </li>
 </ul>
 
@@ -192,6 +227,12 @@
 
 
 <h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>mastercard_check_algorithm
+: <a class="el" href="namespaceboost_1_1checks.html#a216597b28715b6f774d51ba2ffa9e38d">boost::checks</a>
+</li>
+<li>mastercard_compute_algorithm
+: <a class="el" href="namespaceboost_1_1checks.html#a8da35e1a8a76d25048b5258df10ecff5">boost::checks</a>
+</li>
 <li>mod11_check_algorithm
 : <a class="el" href="namespaceboost_1_1checks.html#a3e7a6811ebe47566037d3df5b984b654">boost::checks</a>
 </li>
@@ -214,14 +255,23 @@
 : <a class="el" href="namespaceboost_1_1checks.html#a877b2a498e290daf7bd3894298c162ae">boost::checks</a>
 </li>
 <li>mod97_10_weight
-: <a class="el" href="namespaceboost_1_1checks.html#aaa3252ba0a0eca194744be0cfbb56ae0">boost::checks</a>
+: <a class="el" href="namespaceboost_1_1checks.html#a8ecfb8f9e67b6348df22bdb2934e10d6">boost::checks</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
-<li>upca_check_digit()
-: <a class="el" href="namespaceboost_1_1checks.html#aa2da70ce43176c0c4b1acd495671c1e2">boost::checks</a>
+<li>upc_check_algorithm
+: <a class="el" href="namespaceboost_1_1checks.html#a6ab9ef49508b3081845481fdfe7bb78f">boost::checks</a>
+</li>
+<li>upc_compute_algorithm
+: <a class="el" href="namespaceboost_1_1checks.html#a4a8f9d39418287c4004d9ed79e4b1240">boost::checks</a>
+</li>
+<li>upc_sense
+: <a class="el" href="namespaceboost_1_1checks.html#af677c97bdddd63cbe273974672c03616">boost::checks</a>
+</li>
+<li>upc_weight
+: <a class="el" href="namespaceboost_1_1checks.html#acbf981f5856e57b68e8860594f9aa572">boost::checks</a>
 </li>
 </ul>
 
@@ -236,6 +286,12 @@
 <li>verhoeff_iteration_sense
 : <a class="el" href="namespaceboost_1_1checks.html#a752731034c77974a50e886866ca5895a">boost::checks</a>
 </li>
+<li>visa_check_algorithm
+: <a class="el" href="namespaceboost_1_1checks.html#a6d5c430a2bceeedf1002d92a98aa4c43">boost::checks</a>
+</li>
+<li>visa_compute_algorithm
+: <a class="el" href="namespaceboost_1_1checks.html#a323a27cc40681492362fb3c0893979cb">boost::checks</a>
+</li>
 </ul>
 </div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
@@ -256,7 +312,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:54</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespacemembers_func.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespacemembers_func.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespacemembers_func.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:54 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -70,9 +70,6 @@
   <div id="navrow4" class="tabs3">
     <ul class="tablist">
       <li>c</li>
- <li>e</li>
- <li>i</li>
- <li>u</li>
     </ul>
   </div>
 </div>
@@ -80,20 +77,29 @@
 &#160;
 
 <h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
-<li>check_luhn()
-: <a class="el" href="namespaceboost_1_1checks.html#a36a3ea230792e9f9ba0c02ce1c46354c">boost::checks</a>
+<li>check_amex()
+: <a class="el" href="namespaceboost_1_1checks.html#a2aff225983f36758feaba34662173b53">boost::checks</a>
+</li>
+<li>check_ean13()
+: <a class="el" href="namespaceboost_1_1checks.html#a99f1f79f65b14f9f2c68477c69ab7420">boost::checks</a>
 </li>
-<li>check_mod10()
-: <a class="el" href="namespaceboost_1_1checks.html#a2cae3e674bd94ba471dcb91fe21ca57a">boost::checks</a>
+<li>check_ean8()
+: <a class="el" href="namespaceboost_1_1checks.html#a1d5df84c16aa8c879214bf8f6a6993ea">boost::checks</a>
 </li>
-<li>check_mod11()
-: <a class="el" href="namespaceboost_1_1checks.html#a1d8fca39772cfb1be8ec91cbbec097e9">boost::checks</a>
+<li>check_isbn10()
+: <a class="el" href="namespaceboost_1_1checks.html#af52b5d0c188f321561b69f312c93b336">boost::checks</a>
 </li>
-<li>check_mod97()
-: <a class="el" href="namespaceboost_1_1checks.html#ad5ddc70e24dff8523c786e8f840f4a83">boost::checks</a>
+<li>check_isbn13()
+: <a class="el" href="namespaceboost_1_1checks.html#a787f7cd04f5561dcdadff392c5af0bee">boost::checks</a>
+</li>
+<li>check_luhn()
+: <a class="el" href="namespaceboost_1_1checks.html#a36a3ea230792e9f9ba0c02ce1c46354c">boost::checks</a>
+</li>
+<li>check_mastercard()
+: <a class="el" href="namespaceboost_1_1checks.html#ae9e7b0798732cefb3c6d51a4cc68d09c">boost::checks</a>
 </li>
 <li>check_mod97_10()
-: <a class="el" href="namespaceboost_1_1checks.html#aa32d98f0c9606a1d46786a57151c81ab">boost::checks</a>
+: <a class="el" href="namespaceboost_1_1checks.html#afbc1a04be2d50c0caeb8f15237930513">boost::checks</a>
 </li>
 <li>check_modulus11()
 : <a class="el" href="namespaceboost_1_1checks.html#acb7e8e0940822a9cb6836251c064e03f">boost::checks</a>
@@ -101,80 +107,59 @@
 <li>check_sequence()
 : <a class="el" href="namespaceboost_1_1checks.html#a3e9f9bfde34262ad3f4e69ddf2e1bbd4">boost::checks</a>
 </li>
+<li>check_upca()
+: <a class="el" href="namespaceboost_1_1checks.html#a944d9977c2db906b76346bc76928f06d">boost::checks</a>
+</li>
 <li>check_verhoeff()
 : <a class="el" href="namespaceboost_1_1checks.html#abe6ccc42ec484aac046ea80bfaad4ae4">boost::checks</a>
 </li>
+<li>check_visa()
+: <a class="el" href="namespaceboost_1_1checks.html#ab59d983a0e6f7df034570cdf7e14bdcb">boost::checks</a>
+</li>
+<li>compute_amex()
+: <a class="el" href="namespaceboost_1_1checks.html#a04b6c190de7e9bb7a99841a8ad996459">boost::checks</a>
+</li>
 <li>compute_checkdigit()
-: <a class="el" href="namespaceboost_1_1checks.html#a58d8bcbe9cc7d264f4a2b09d49717a56">boost::checks</a>
+: <a class="el" href="namespaceboost_1_1checks.html#af2694703fb484efc186146542e4a7c53">boost::checks</a>
 </li>
 <li>compute_checksum()
-: <a class="el" href="namespaceboost_1_1checks.html#a47d3a9835bc33566a01ca5614a13f1fe">boost::checks</a>
+: <a class="el" href="namespaceboost_1_1checks.html#a635c57c7b253fcadc1dfa5415d7647b1">boost::checks</a>
 </li>
-<li>compute_luhn()
-: <a class="el" href="namespaceboost_1_1checks.html#a8f86db1b7d82751de71288456d4edf0a">boost::checks</a>
+<li>compute_ean13()
+: <a class="el" href="namespaceboost_1_1checks.html#ac08dd90c2f9518ad9f9addb3863db98e">boost::checks</a>
+</li>
+<li>compute_ean8()
+: <a class="el" href="namespaceboost_1_1checks.html#adb63ff3a11463aba48f55b5d96dfada1">boost::checks</a>
+</li>
+<li>compute_isbn10()
+: <a class="el" href="namespaceboost_1_1checks.html#a41519cb136ca0786262764baa7b4622f">boost::checks</a>
 </li>
-<li>compute_mod10()
-: <a class="el" href="namespaceboost_1_1checks.html#a3c69232ff7e99030c18496c5810b3add">boost::checks</a>
+<li>compute_isbn13()
+: <a class="el" href="namespaceboost_1_1checks.html#a5dd55ec9238d3d11527546f34d5ce2db">boost::checks</a>
 </li>
-<li>compute_mod11()
-: <a class="el" href="namespaceboost_1_1checks.html#aca0c048503be271cac917bfff92d08bb">boost::checks</a>
+<li>compute_luhn()
+: <a class="el" href="namespaceboost_1_1checks.html#a72f611fe14c840774de011e0271eb4b0">boost::checks</a>
 </li>
-<li>compute_mod97()
-: <a class="el" href="namespaceboost_1_1checks.html#a4c64fe520dcd8a9020e9165fc163f490">boost::checks</a>
+<li>compute_mastercard()
+: <a class="el" href="namespaceboost_1_1checks.html#a0f8b86d5edf6cc569f494bb890c83dcc">boost::checks</a>
 </li>
 <li>compute_mod97_10()
-: <a class="el" href="namespaceboost_1_1checks.html#a8f1e84d2acc21b23ebe972ca73a879b7">boost::checks</a>
+: <a class="el" href="namespaceboost_1_1checks.html#aa4c7db694c89fb4ba0a2b288776c66f3">boost::checks</a>
 </li>
 <li>compute_modulus11()
-: <a class="el" href="namespaceboost_1_1checks.html#a9cb1939fed27705a86a2e609c49e35e5">boost::checks</a>
+: <a class="el" href="namespaceboost_1_1checks.html#a65a3b463188c57b0991eeb513e36817d">boost::checks</a>
 </li>
 <li>compute_multicheckdigit()
-: <a class="el" href="namespaceboost_1_1checks.html#adbf0f4f0f946d7c47fddd7553d9cd065">boost::checks</a>
+: <a class="el" href="namespaceboost_1_1checks.html#a5b6bdc6137cc4bc9b494138fa8b6127c">boost::checks</a>
+</li>
+<li>compute_upca()
+: <a class="el" href="namespaceboost_1_1checks.html#ae494e5fd020da1bacf88547eda843b81">boost::checks</a>
 </li>
 <li>compute_verhoeff()
 : <a class="el" href="namespaceboost_1_1checks.html#a4bcb041b2939d1b52d223b9372b24536">boost::checks</a>
 </li>
-</ul>
-
-
-<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
-<li>ean13_check_digit()
-: <a class="el" href="namespaceboost_1_1checks.html#ae675f57e175d0da388219dc6bc742ed3">boost::checks</a>
-</li>
-<li>ean8_check_digit()
-: <a class="el" href="namespaceboost_1_1checks.html#a95182d3e9906feaa08450142a74ac958">boost::checks</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
-<li>Is_ean13()
-: <a class="el" href="namespaceboost_1_1checks.html#a0f8eb5d1aa18e2ffb31cf5171d2bfe47">boost::checks</a>
-</li>
-<li>Is_ean8()
-: <a class="el" href="namespaceboost_1_1checks.html#a5ee705fcc8ca3f666b238eea344913a8">boost::checks</a>
-</li>
-<li>Is_isbn10()
-: <a class="el" href="namespaceboost_1_1checks.html#ac1b614e02e1f754bbf700c757160bbfe">boost::checks</a>
-</li>
-<li>Is_isbn13()
-: <a class="el" href="namespaceboost_1_1checks.html#ad94e11097f0451dacc57e5dadc9e0356">boost::checks</a>
-</li>
-<li>Is_upca()
-: <a class="el" href="namespaceboost_1_1checks.html#a1371260adf7744f307e9742db72c79f0">boost::checks</a>
-</li>
-<li>isbn10_check_digit()
-: <a class="el" href="namespaceboost_1_1checks.html#aa8f170503844cf15cc4b0296c241e947">boost::checks</a>
-</li>
-<li>isbn13_check_digit()
-: <a class="el" href="namespaceboost_1_1checks.html#aad0aa8b4907502a3cd4c2eaf63d34277">boost::checks</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
-<li>upca_check_digit()
-: <a class="el" href="namespaceboost_1_1checks.html#aa2da70ce43176c0c4b1acd495671c1e2">boost::checks</a>
+<li>compute_visa()
+: <a class="el" href="namespaceboost_1_1checks.html#a4770ebdffc040e9cc9cb1fb6f1d75457">boost::checks</a>
 </li>
 </ul>
 </div>
@@ -196,7 +181,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:54</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespaces.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespaces.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/namespaces.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:53 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -67,7 +67,7 @@
 </div>
 <div class="contents">
 <div class="textblock">Here is a list of all namespaces with brief descriptions:</div><table>
- <tr><td class="indexkey"><a class="el" href="namespaceboost.html">boost</a></td><td class="indexvalue">Boost <a class="el" href="crc_8hpp.html">checks/crc.hpp</a> header file ------------------------------------// </td></tr>
+ <tr><td class="indexkey"><a class="el" href="namespaceboost.html">boost</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="namespaceboost_1_1checks.html">boost::checks</a></td><td class="indexvalue"></td></tr>
 </table>
 </div>
@@ -89,7 +89,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:53</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/radix32_check_8cpp.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/radix32_check_8cpp.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/radix32_check_8cpp.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:53 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -163,7 +163,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:53</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/radix32_check_8cpp_source.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/radix32_check_8cpp_source.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/radix32_check_8cpp_source.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:53 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -378,7 +378,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:53</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/upc_8hpp.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/upc_8hpp.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/upc_8hpp.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:53 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -64,27 +64,96 @@
 <div class="header">
   <div class="summary">
 <a href="#namespaces">Namespaces</a> &#124;
+Defines &#124;
+Typedefs &#124;
 <a href="#func-members">Functions</a> </div>
   <div class="headertitle">
 <div class="title">I:/boost-sandbox/SOC/2011/checks/boost/checks/upc.hpp File Reference</div> </div>
 </div>
 <div class="contents">
 
+<p>This file provides tools to compute and validate an Universal Product Code.
+More...</p>
+<div class="textblock"><code>#include &lt;<a class="el" href="weight_8hpp_source.html">boost/checks/weight.hpp</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="iteration__sense_8hpp_source.html">boost/checks/iteration_sense.hpp</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="basic__checks_8hpp_source.html">boost/checks/basic_checks.hpp</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="modulus10_8hpp_source.html">boost/checks/modulus10.hpp</a>&gt;</code><br/>
+</div>
 <p>Go to the source code of this file.</p>
 <table class="memberdecls">
 <tr><td colspan="2"><h2><a name="namespaces"></a>
 Namespaces</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Boost <a class="el" href="crc_8hpp.html">checks/crc.hpp</a> header file ------------------------------------//. </p>
-<br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html">boost::checks</a></td></tr>
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="upc_8hpp.html#a737e0533a524b002ee19616f251812a7">UPCA_SIZE</a>&#160;&#160;&#160;12</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This macro defines the size of an UPC-A. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="upc_8hpp.html#ac3e19f81cb44043813fc75139981bedc">UPCA_SIZE_WITHOUT_CHECKDIGIT</a>&#160;&#160;&#160;11</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This macro defines the size of an UPC-A without its check digit. <br/></td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1weight.html">boost::checks::weight</a>&lt; 1, 3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#acbf981f5856e57b68e8860594f9aa572">boost::checks::upc_weight</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the weight used by UPC system. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#af677c97bdddd63cbe273974672c03616">boost::checks::upc_sense</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the running sense to check an UPC. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
+<a class="el" href="structboost_1_1checks_1_1modulus10__algorithm.html">boost::checks::modulus10_algorithm</a><br class="typebreak"/>
+&lt; upc_weight, upc_sense, 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a6ab9ef49508b3081845481fdfe7bb78f">boost::checks::upc_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the UPC algorithm for validating a check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
+<a class="el" href="structboost_1_1checks_1_1modulus10__algorithm.html">boost::checks::modulus10_algorithm</a><br class="typebreak"/>
+&lt; upc_weight, upc_sense, 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a4a8f9d39418287c4004d9ed79e4b1240">boost::checks::upc_compute_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the UPC algorithm for computing a check digit. <br/></td></tr>
 <tr><td colspan="2"><h2><a name="func-members"></a>
 Functions</h2></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a1371260adf7744f307e9742db72c79f0">boost::checks::Is_upca</a> (In upc_begin, In upc_end)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;class In &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">char&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#aa2da70ce43176c0c4b1acd495671c1e2">boost::checks::upca_check_digit</a> (In upc_begin, In upc_end)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a944d9977c2db906b76346bc76928f06d">boost::checks::check_upca</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the upc_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::upc_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ae494e5fd020da1bacf88547eda843b81">boost::checks::compute_upca</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the upc_compute_algorithm type. <br/></td></tr>
 </table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file provides tools to compute and validate an Universal Product Code. </p>
+
+<p>Definition in file <a class="el" href="upc_8hpp_source.html">upc.hpp</a>.</p>
+</div><hr/><h2>Define Documentation</h2>
+<a class="anchor" id="a737e0533a524b002ee19616f251812a7"></a><!-- doxytag: member="upc.hpp::UPCA_SIZE" ref="a737e0533a524b002ee19616f251812a7" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UPCA_SIZE&#160;&#160;&#160;12</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This macro defines the size of an UPC-A. </p>
+
+<p>Definition at line <a class="el" href="upc_8hpp_source.html#l00027">27</a> of file <a class="el" href="upc_8hpp_source.html">upc.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac3e19f81cb44043813fc75139981bedc"></a><!-- doxytag: member="upc.hpp::UPCA_SIZE_WITHOUT_CHECKDIGIT" ref="ac3e19f81cb44043813fc75139981bedc" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UPCA_SIZE_WITHOUT_CHECKDIGIT&#160;&#160;&#160;11</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This macro defines the size of an UPC-A without its check digit. </p>
+
+<p>Definition at line <a class="el" href="upc_8hpp_source.html#l00031">31</a> of file <a class="el" href="upc_8hpp_source.html">upc.hpp</a>.</p>
+
+</div>
+</div>
 </div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
 
@@ -104,7 +173,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:53</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/upc_8hpp_source.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/upc_8hpp_source.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/upc_8hpp_source.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:53 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -72,45 +72,46 @@
 <a name="l00005"></a>00005 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt>
 <a name="l00006"></a>00006 <span class="comment">// See
http://www.boost.org for updates, documentation, and revision history.</span>
 <a name="l00007"></a>00007
-<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_UPC_INCLUDED</span>
-<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_UPC_INCLUDED</span>
-<a name="l00010"></a>00010 <span class="preprocessor"></span>
-<a name="l00011"></a>00011 <span class="keyword">namespace </span>boost {
-<a name="l00012"></a>00012 <span class="keyword">namespace </span>checks{
-<a name="l00013"></a>00013
-<a name="l00022"></a>00022 <span class="keyword">template</span> &lt;<span class="keyword">class</span> In&gt;
-<a name="l00023"></a><a class="code" href="namespaceboost_1_1checks.html#a1371260adf7744f307e9742db72c79f0">00023</a> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a1371260adf7744f307e9742db72c79f0">Is_upca</a>(In upc_begin, In upc_end)
-<a name="l00024"></a>00024 {
-<a name="l00025"></a>00025 In iter = upc_begin;
-<a name="l00026"></a>00026 <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> checksum = 0, i;
-<a name="l00027"></a>00027 <span class="keywordflow">for</span>(i = 11; i&gt;0; ++iter, --i)
-<a name="l00028"></a>00028 {
-<a name="l00029"></a>00029 <span class="keywordflow">if</span>(iter == upc_end || !isdigit(*iter)) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00030"></a>00030 <span class="keywordflow">else</span> checksum += (*iter % 2 == 0) ? *iter * 3 : *iter;
-<a name="l00031"></a>00031 }
-<a name="l00032"></a>00032 <span class="keywordflow">if</span>( i != 0 || iter == upc_end) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00033"></a>00033 <span class="keywordflow">return</span> (*(++iter) == (10 - checksum % 10) %10) &amp;&amp; iter == end;
-<a name="l00034"></a>00034 }
+<a name="l00012"></a>00012 <span class="preprocessor">#ifndef BOOST_CHECKS_UPC_HPP</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_CHECKS_UPC_HPP</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span>
+<a name="l00015"></a>00015 <span class="preprocessor">#ifdef _MSC_VER</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor"> #pragma once</span>
+<a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00018"></a>00018 <span class="preprocessor"></span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include &lt;<a class="code" href="weight_8hpp.html" title="Provides a template overriden struct to encapsulate a compile-time weight sequence.">boost/checks/weight.hpp</a>&gt;</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include &lt;<a class="code" href="iteration__sense_8hpp.html" title="Provides two sense of iteration to run through the sequence from right to left or left to right...">boost/checks/iteration_sense.hpp</a>&gt;</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;<a class="code" href="basic__checks_8hpp.html" title="This file provides a set of basic functions used to compute and validate check digit(s) and checksum...">boost/checks/basic_checks.hpp</a>&gt;</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;<a class="code" href="modulus10_8hpp.html" title="This file provides tools to compute and validate classic modulus 10 checksum.">boost/checks/modulus10.hpp</a>&gt;</span>
+<a name="l00023"></a>00023
+<a name="l00027"></a><a class="code" href="upc_8hpp.html#a737e0533a524b002ee19616f251812a7">00027</a> <span class="preprocessor">#define UPCA_SIZE 12</span>
+<a name="l00028"></a>00028 <span class="preprocessor"></span>
+<a name="l00031"></a><a class="code" href="upc_8hpp.html#ac3e19f81cb44043813fc75139981bedc">00031</a> <span class="preprocessor">#define UPCA_SIZE_WITHOUT_CHECKDIGIT 11</span>
+<a name="l00032"></a>00032 <span class="preprocessor"></span>
+<a name="l00033"></a>00033 <span class="keyword">namespace </span>boost {
+<a name="l00034"></a>00034 <span class="keyword">namespace </span>checks{
 <a name="l00035"></a>00035
-<a name="l00044"></a>00044 <span class="keyword">template</span> &lt;<span class="keyword">class</span> In&gt;
-<a name="l00045"></a><a class="code" href="namespaceboost_1_1checks.html#aa2da70ce43176c0c4b1acd495671c1e2">00045</a> <span class="keyword">inline</span> <span class="keywordtype">char</span> <a class="code" href="namespaceboost_1_1checks.html#aa2da70ce43176c0c4b1acd495671c1e2">upca_check_digit</a>(In upc_begin, In upc_end)
-<a name="l00046"></a>00046 {
-<a name="l00047"></a>00047 In iter = upc_begin;
-<a name="l00048"></a>00048 <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> checksum = 0, i;
-<a name="l00049"></a>00049 <span class="keywordflow">for</span>(i = 11; i&gt;0; ++iter, --i)
-<a name="l00050"></a>00050 {
-<a name="l00051"></a>00051 <span class="keywordflow">if</span>(iter == upc_end || !isdigit(*iter)) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00052"></a>00052 <span class="keywordflow">else</span> checksum += (*iter % 2 == 0) ? *iter * 3 : *iter;
-<a name="l00053"></a>00053 }
-<a name="l00054"></a>00054 <span class="keywordflow">if</span>( i != 0 || iter != upc_end) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00055"></a>00055 <span class="keywordflow">return</span> (10 - checksum % 10) %10;
-<a name="l00056"></a>00056 }
-<a name="l00057"></a>00057
-<a name="l00058"></a>00058 } <span class="comment">// namespace checks</span>
-<a name="l00059"></a>00059 } <span class="comment">// namespace boost</span>
-<a name="l00060"></a>00060
-<a name="l00061"></a>00061 <span class="preprocessor">#endif // #define BOOST_UPC_INCLUDED</span>
-<a name="l00062"></a>00062 <span class="preprocessor"></span>
+<a name="l00039"></a><a class="code" href="namespaceboost_1_1checks.html#acbf981f5856e57b68e8860594f9aa572">00039</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1weight.html" title="The weight metafunction encapsulate 0 to BOOST_CHECK_LIMIT_WEIGHTS weights.">boost::checks::weight&lt;1,3&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#acbf981f5856e57b68e8860594f9aa572" title="This is the weight used by UPC system.">upc_weight</a> ;
+<a name="l00043"></a><a class="code" href="namespaceboost_1_1checks.html#af677c97bdddd63cbe273974672c03616">00043</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1rightmost.html" title="Policy class that provides methods to run through a sequence from right to left.">boost::checks::rightmost</a> <a class="code" href="namespaceboost_1_1checks.html#af677c97bdddd63cbe273974672c03616" title="This is the running sense to check an UPC.">upc_sense</a> ;
+<a name="l00044"></a>00044
+<a name="l00048"></a><a class="code" href="namespaceboost_1_1checks.html#a6ab9ef49508b3081845481fdfe7bb78f">00048</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1modulus10__algorithm.html" title="This class can be used to compute or validate checksum with a basic modulus 10.">boost::checks::modulus10_algorithm&lt; upc_weight, upc_sense, 0&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a6ab9ef49508b3081845481fdfe7bb78f" title="This is the type of the UPC algorithm for validating a check digit.">upc_check_algorithm</a> ;
+<a name="l00052"></a><a class="code" href="namespaceboost_1_1checks.html#a4a8f9d39418287c4004d9ed79e4b1240">00052</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1modulus10__algorithm.html" title="This class can be used to compute or validate checksum with a basic modulus 10.">boost::checks::modulus10_algorithm&lt; upc_weight, upc_sense, 1&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a4a8f9d39418287c4004d9ed79e4b1240" title="This is the type of the UPC algorithm for computing a check digit.">upc_compute_algorithm</a> ;
+<a name="l00053"></a>00053
+<a name="l00066"></a>00066 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00067"></a><a class="code" href="namespaceboost_1_1checks.html#a944d9977c2db906b76346bc76928f06d">00067</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#a944d9977c2db906b76346bc76928f06d" title="Validate a sequence according to the upc_check_algorithm type.">check_upca</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00068"></a>00068 {
+<a name="l00069"></a>00069 <span class="keywordflow">return</span> boost::checks::check_sequence&lt;upc_check_algorithm, UPCA_SIZE&gt; ( check_seq ) ;
+<a name="l00070"></a>00070 }
+<a name="l00071"></a>00071
+<a name="l00085"></a>00085 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00086"></a><a class="code" href="namespaceboost_1_1checks.html#ae494e5fd020da1bacf88547eda843b81">00086</a> <span class="keyword">typename</span> boost::checks::upc_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#ae494e5fd020da1bacf88547eda843b81" title="Calculate the check digit of a sequence according to the upc_compute_algorithm type.">compute_upca</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00087"></a>00087 {
+<a name="l00088"></a>00088 <span class="keywordflow">return</span> boost::checks::compute_checkdigit&lt;upc_compute_algorithm, UPCA_SIZE_WITHOUT_CHECKDIGIT&gt; ( check_seq ) ;
+<a name="l00089"></a>00089 }
+<a name="l00090"></a>00090
+<a name="l00091"></a>00091
+<a name="l00092"></a>00092 }}
+<a name="l00093"></a>00093 <span class="preprocessor">#endif // BOOST_CHECKS_UPCA_HPP</span>
 </pre></div></div>
 </div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
@@ -131,7 +132,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:53</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/verhoeff_8hpp.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/verhoeff_8hpp.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/verhoeff_8hpp.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:53 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -71,8 +71,11 @@
 <div class="title">I:/boost-sandbox/SOC/2011/checks/boost/checks/verhoeff.hpp File Reference</div> </div>
 </div>
 <div class="contents">
+
+<p>This file provides tools to compute a Verhoeff checksum.
+More...</p>
 <div class="textblock"><code>#include &lt;boost/lexical_cast.hpp&gt;</code><br/>
-<code>#include &lt;<a class="el" href="traduction__exception_8hpp_source.html">boost/checks/traduction_exception.hpp</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="translation__exception_8hpp_source.html">boost/checks/translation_exception.hpp</a>&gt;</code><br/>
 <code>#include &lt;<a class="el" href="weight_8hpp_source.html">boost/checks/weight.hpp</a>&gt;</code><br/>
 <code>#include &lt;<a class="el" href="iteration__sense_8hpp_source.html">boost/checks/iteration_sense.hpp</a>&gt;</code><br/>
 <code>#include &lt;<a class="el" href="basic__checks_8hpp_source.html">boost/checks/basic_checks.hpp</a>&gt;</code><br/>
@@ -82,32 +85,42 @@
 <table class="memberdecls">
 <tr><td colspan="2"><h2><a name="nested-classes"></a>
 Classes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1verhoeff__algorithm.html">boost::checks::verhoeff_algorithm</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1verhoeff__algorithm.html">boost::checks::verhoeff_algorithm&lt; number_of_virtual_value_skipped &gt;</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class can be used to compute or validate checksum with the Verhoeff algorithm. More...<br/></td></tr>
 <tr><td colspan="2"><h2><a name="namespaces"></a>
 Namespaces</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Boost <a class="el" href="crc_8hpp.html">checks/crc.hpp</a> header file ------------------------------------//. </p>
-<br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html">boost::checks</a></td></tr>
 <tr><td colspan="2"><h2><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structboost_1_1checks_1_1rightmost.html">boost::checks::rightmost</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a752731034c77974a50e886866ca5895a">boost::checks::verhoeff_iteration_sense</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the sense of the Verhoeff sequence iteration. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef verhoeff_algorithm&lt; 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a5ce2d0db03cfe90a961779538d897a22">boost::checks::verhoeff_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Verhoeff algorithm for validating a check digit. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef verhoeff_algorithm&lt; 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a93cfc6f3a20335c421e20f92d3c821c8">boost::checks::verhoeff_compute_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Verhoeff algorithm for computing a check digit. <br/></td></tr>
 <tr><td colspan="2"><h2><a name="func-members"></a>
 Functions</h2></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#abe6ccc42ec484aac046ea80bfaad4ae4">boost::checks::check_verhoeff</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the verhoeff_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a86e8991bc68fab9958a902b140bd05c6">boost::checks::check_verhoeff</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the verhoeff_check_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;size_t size_expected, typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::verhoeff_compute_algorithm::checkdigit<br class="typebreak"/>
 &lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a069b69920cc6182e4bd0f1414cdc7747">boost::checks::compute_verhoeff</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the verhoeff_compute_algorithm type. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::verhoeff_compute_algorithm::checkdigit<br class="typebreak"/>
 &lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a4bcb041b2939d1b52d223b9372b24536">boost::checks::compute_verhoeff</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the verhoeff_compute_algorithm type. <br/></td></tr>
 </table>
-</div>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file provides tools to compute a Verhoeff checksum. </p>
+
+<p>Definition in file <a class="el" href="verhoeff_8hpp_source.html">verhoeff.hpp</a>.</p>
+</div></div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
 
 <!-- Copyright 2011 Pierre Talbot. -->
@@ -126,7 +139,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:53</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/verhoeff_8hpp_source.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/verhoeff_8hpp_source.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/verhoeff_8hpp_source.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:53 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -72,108 +72,110 @@
 <a name="l00005"></a>00005 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt>
 <a name="l00006"></a>00006 <span class="comment">// See
http://www.boost.org for updates, documentation, and revision history.</span>
 <a name="l00007"></a>00007
-<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_VERHOEFF_INCLUDED</span>
-<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_VERHOEFF_INCLUDED</span>
-<a name="l00010"></a>00010 <span class="preprocessor"></span>
-<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/lexical_cast.hpp&gt;</span>
-<a name="l00012"></a>00012 <span class="preprocessor">#include &lt;<a class="code" href="traduction__exception_8hpp.html">boost/checks/traduction_exception.hpp</a>&gt;</span>
-<a name="l00013"></a>00013 <span class="preprocessor">#include &lt;<a class="code" href="weight_8hpp.html">boost/checks/weight.hpp</a>&gt;</span>
-<a name="l00014"></a>00014 <span class="preprocessor">#include &lt;<a class="code" href="iteration__sense_8hpp.html">boost/checks/iteration_sense.hpp</a>&gt;</span>
-<a name="l00015"></a>00015 <span class="preprocessor">#include &lt;<a class="code" href="basic__checks_8hpp.html">boost/checks/basic_checks.hpp</a>&gt;</span>
-<a name="l00016"></a>00016 <span class="preprocessor">#include &lt;<a class="code" href="basic__check__algorithm_8hpp.html">boost/checks/basic_check_algorithm.hpp</a>&gt;</span>
-<a name="l00017"></a>00017
-<a name="l00018"></a>00018 <span class="keyword">namespace </span>boost {
-<a name="l00019"></a>00019 <span class="keyword">namespace </span>checks{
-<a name="l00020"></a>00020
-<a name="l00021"></a><a class="code" href="namespaceboost_1_1checks.html#a752731034c77974a50e886866ca5895a">00021</a> <span class="keyword">typedef</span> boost<a class="code" href="structboost_1_1checks_1_1rightmost.html">::checks::rightmost</a> <a class="code" href="namespaceboost_1_1checks.html#a752731034c77974a50e886866ca5895a">verhoeff_iteration_sense</a> ;
-<a name="l00022"></a>00022
-<a name="l00023"></a>00023 <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> number_of_virtual_value_skipped = 0&gt;
-<a name="l00024"></a>00024 <span class="keyword">struct </span><a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html">verhoeff_algorithm</a> : boost::checks::<a class="code" href="structboost_1_1checks_1_1basic__check__algorithm.html">basic_check_algorithm</a>&lt;verhoeff_iteration_sense, number_of_virtual_value_skipped&gt;
-<a name="l00025"></a>00025 {
-<a name="l00026"></a><a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html#a0c6521eec78a93a11b2f8213c958c2c5">00026</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html#a0c6521eec78a93a11b2f8213c958c2c5">operate_on_valid_value</a>( <span class="keyword">const</span> <span class="keywordtype">int</span> current_valid_value, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> valid_value_counter, <span class="keywordtype">int</span> &amp;checksum )
-<a name="l00027"></a>00027 {
-<a name="l00028"></a>00028 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> d[10][10] =
-<a name="l00029"></a>00029 {
-<a name="l00030"></a>00030 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
-<a name="l00031"></a>00031 { 1, 2, 3, 4, 0, 6, 7, 8, 9, 5 },
-<a name="l00032"></a>00032 { 2, 3, 4, 0, 1, 7, 8, 9, 5, 6 },
-<a name="l00033"></a>00033 { 3, 4, 0, 1, 2, 8, 9, 5, 6, 7 },
-<a name="l00034"></a>00034 { 4, 0, 1, 2, 3, 9, 5, 6, 7, 8 },
-<a name="l00035"></a>00035 { 5, 9, 8, 7, 6, 0, 4, 3, 2, 1 },
-<a name="l00036"></a>00036 { 6, 5, 9, 8, 7, 1, 0, 4, 3, 2 },
-<a name="l00037"></a>00037 { 7, 6, 5, 9, 8, 2, 1, 0, 4, 3 },
-<a name="l00038"></a>00038 { 8, 7, 6, 5, 9, 3, 2, 1, 0, 4 },
-<a name="l00039"></a>00039 { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }
-<a name="l00040"></a>00040 };
-<a name="l00041"></a>00041
-<a name="l00042"></a>00042 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> p[8][10] =
-<a name="l00043"></a>00043 {
-<a name="l00044"></a>00044 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
-<a name="l00045"></a>00045 { 1, 5, 7, 6, 2, 8, 3, 0, 9, 4 },
-<a name="l00046"></a>00046 { 5, 8, 0, 3, 7, 9, 6, 1, 4, 2 },
-<a name="l00047"></a>00047 { 8, 9, 1, 6, 0, 4, 3, 5, 2, 7 },
-<a name="l00048"></a>00048 { 9, 4, 5, 3, 1, 2, 6, 8, 7, 0 },
-<a name="l00049"></a>00049 { 4, 2, 8, 6, 5, 7, 3, 9, 0, 1 },
-<a name="l00050"></a>00050 { 2, 7, 9, 3, 8, 0, 6, 4, 1, 5 },
-<a name="l00051"></a>00051 { 7, 0, 4, 6, 9, 1, 3, 2, 5, 8 }
-<a name="l00052"></a>00052 };
-<a name="l00053"></a>00053
-<a name="l00054"></a>00054 checksum = d[ checksum ][ p[ (valid_value_counter + number_of_virtual_value_skipped) % 8 ][ current_valid_value ] ] ;
-<a name="l00055"></a>00055 }
-<a name="l00056"></a>00056
-<a name="l00057"></a><a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html#abbae28aaad5eba88a1943a967bfee088">00057</a> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html#abbae28aaad5eba88a1943a967bfee088">validate_checksum</a>(<span class="keywordtype">int</span> checksum)
-<a name="l00058"></a>00058 {
-<a name="l00059"></a>00059 <span class="keywordflow">return</span> !checksum ;
-<a name="l00060"></a>00060 }
-<a name="l00061"></a>00061
-<a name="l00062"></a>00062 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> checkdigit&gt;
-<a name="l00063"></a><a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html#adc155fa6a0f323d3bdb1bb86fd56d9ed">00063</a> <span class="keyword">static</span> <span class="keyword">typename</span> checkdigit <a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html#adc155fa6a0f323d3bdb1bb86fd56d9ed">compute_checkdigit</a>( <span class="keywordtype">int</span> checksum )
-<a name="l00064"></a>00064 {
-<a name="l00065"></a>00065 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> inv[] = { 0, 4, 3, 2, 1, 5, 6, 7, 8, 9 } ;
-<a name="l00066"></a>00066
-<a name="l00067"></a>00067 <span class="keywordflow">try</span>
-<a name="l00068"></a>00068 {
-<a name="l00069"></a>00069 <span class="keywordflow">return</span> boost::lexical_cast&lt;checkdigit&gt;( inv[checksum] ) ;
-<a name="l00070"></a>00070 }
-<a name="l00071"></a>00071 <span class="keywordflow">catch</span>( boost::bad_lexical_cast )
-<a name="l00072"></a>00072 {
-<a name="l00073"></a>00073 <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1checks_1_1traduction__exception.html">boost::checks::traduction_exception</a>() ;
-<a name="l00074"></a>00074 }
-<a name="l00075"></a>00075 }
-<a name="l00076"></a>00076 };
-<a name="l00077"></a>00077
-<a name="l00078"></a>00078
-<a name="l00079"></a><a class="code" href="namespaceboost_1_1checks.html#a5ce2d0db03cfe90a961779538d897a22">00079</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html">verhoeff_algorithm&lt;0&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a5ce2d0db03cfe90a961779538d897a22">verhoeff_check_algorithm</a> ;
-<a name="l00080"></a><a class="code" href="namespaceboost_1_1checks.html#a93cfc6f3a20335c421e20f92d3c821c8">00080</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html">verhoeff_algorithm&lt;1&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a93cfc6f3a20335c421e20f92d3c821c8">verhoeff_compute_algorithm</a> ;
-<a name="l00081"></a>00081
-<a name="l00082"></a>00082 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
-<a name="l00083"></a><a class="code" href="namespaceboost_1_1checks.html#abe6ccc42ec484aac046ea80bfaad4ae4">00083</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#abe6ccc42ec484aac046ea80bfaad4ae4">check_verhoeff</a> (<span class="keyword">const</span> check_range&amp; check_seq)
-<a name="l00084"></a>00084 {
-<a name="l00085"></a>00085 <span class="keywordflow">return</span> boost::checks::check_sequence&lt;verhoeff_check_algorithm, size_expected&gt; ( check_seq ) ;
-<a name="l00086"></a>00086 }
-<a name="l00087"></a>00087
-<a name="l00088"></a>00088 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
-<a name="l00089"></a><a class="code" href="namespaceboost_1_1checks.html#a86e8991bc68fab9958a902b140bd05c6">00089</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#abe6ccc42ec484aac046ea80bfaad4ae4">check_verhoeff</a> (<span class="keyword">const</span> check_range&amp; check_seq)
-<a name="l00090"></a>00090 {
-<a name="l00091"></a>00091 <span class="keywordflow">return</span> boost::checks::check_sequence&lt;verhoeff_check_algorithm&gt; ( check_seq ) ;
-<a name="l00092"></a>00092 }
-<a name="l00093"></a>00093
-<a name="l00094"></a>00094 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
-<a name="l00095"></a><a class="code" href="namespaceboost_1_1checks.html#a069b69920cc6182e4bd0f1414cdc7747">00095</a> <span class="keyword">typename</span> boost::checks::verhoeff_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a069b69920cc6182e4bd0f1414cdc7747">compute_verhoeff</a> (<span class="keyword">const</span> check_range&amp; check_seq)
-<a name="l00096"></a>00096 {
-<a name="l00097"></a>00097 <span class="keywordflow">return</span> boost::checks::compute_checkdigit&lt;verhoeff_compute_algorithm, size_expected&gt; ( check_seq ) ;
-<a name="l00098"></a>00098 }
-<a name="l00099"></a>00099
-<a name="l00100"></a>00100 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
-<a name="l00101"></a><a class="code" href="namespaceboost_1_1checks.html#a4bcb041b2939d1b52d223b9372b24536">00101</a> <span class="keyword">typename</span> boost::checks::verhoeff_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a069b69920cc6182e4bd0f1414cdc7747">compute_verhoeff</a> (<span class="keyword">const</span> check_range&amp; check_seq)
-<a name="l00102"></a>00102 {
-<a name="l00103"></a>00103 <span class="keywordflow">return</span> boost::checks::compute_checkdigit&lt;verhoeff_compute_algorithm&gt; ( check_seq ) ;
-<a name="l00104"></a>00104 }
-<a name="l00105"></a>00105
-<a name="l00106"></a>00106 } <span class="comment">// namespace checks</span>
-<a name="l00107"></a>00107 } <span class="comment">// namespace boost</span>
-<a name="l00108"></a>00108
-<a name="l00109"></a>00109 <span class="preprocessor">#endif</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#ifndef BOOST_VERHOEFF_INCLUDED</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_VERHOEFF_INCLUDED</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span>
+<a name="l00015"></a>00015 <span class="preprocessor">#ifdef _MSC_VER</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor"> #pragma once</span>
+<a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00018"></a>00018 <span class="preprocessor"></span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include &lt;boost/lexical_cast.hpp&gt;</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include &lt;<a class="code" href="translation__exception_8hpp.html" title="This file provides an exception class used when the translation of a value failed.">boost/checks/translation_exception.hpp</a>&gt;</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;<a class="code" href="weight_8hpp.html" title="Provides a template overriden struct to encapsulate a compile-time weight sequence.">boost/checks/weight.hpp</a>&gt;</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;<a class="code" href="iteration__sense_8hpp.html" title="Provides two sense of iteration to run through the sequence from right to left or left to right...">boost/checks/iteration_sense.hpp</a>&gt;</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;<a class="code" href="basic__checks_8hpp.html" title="This file provides a set of basic functions used to compute and validate check digit(s) and checksum...">boost/checks/basic_checks.hpp</a>&gt;</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;<a class="code" href="basic__check__algorithm_8hpp.html" title="This file provides a class that should be used as an &quot;interface&quot; because most of the static functions...">boost/checks/basic_check_algorithm.hpp</a>&gt;</span>
+<a name="l00025"></a>00025
+<a name="l00026"></a>00026 <span class="keyword">namespace </span>boost {
+<a name="l00027"></a>00027 <span class="keyword">namespace </span>checks{
+<a name="l00028"></a>00028
+<a name="l00032"></a><a class="code" href="namespaceboost_1_1checks.html#a752731034c77974a50e886866ca5895a">00032</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1rightmost.html" title="Policy class that provides methods to run through a sequence from right to left.">boost::checks::rightmost</a> <a class="code" href="namespaceboost_1_1checks.html#a752731034c77974a50e886866ca5895a" title="This is the sense of the Verhoeff sequence iteration.">verhoeff_iteration_sense</a> ;
+<a name="l00033"></a>00033
+<a name="l00039"></a>00039 <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> number_of_virtual_value_skipped = 0&gt;
+<a name="l00040"></a><a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html">00040</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html" title="This class can be used to compute or validate checksum with the Verhoeff algorithm.">verhoeff_algorithm</a> : boost::checks::<a class="code" href="structboost_1_1checks_1_1basic__check__algorithm.html" title="The main check algorithm class that provides every static functions that can be overloaded. Most of the functions must be re-implemented to have the desired behavior.">basic_check_algorithm</a>&lt;verhoeff_iteration_sense, number_of_virtual_value_skipped&gt;
+<a name="l00041"></a>00041 {
+<a name="l00053"></a><a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html#ac23539e9409b4da3ffac53a9014012a1">00053</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html#ac23539e9409b4da3ffac53a9014012a1" title="Compute the Verhoeff scheme on the checksum with the current valid value.">operate_on_valid_value</a>( <span class="keyword">const</span> <span class="keywordtype">int</span> current_valid_value, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> valid_value_counter, <span class="keywordtype">int</span> &amp;checksum )
+<a name="l00054"></a>00054 {
+<a name="l00055"></a>00055 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> d[10][10] =
+<a name="l00056"></a>00056 {
+<a name="l00057"></a>00057 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
+<a name="l00058"></a>00058 { 1, 2, 3, 4, 0, 6, 7, 8, 9, 5 },
+<a name="l00059"></a>00059 { 2, 3, 4, 0, 1, 7, 8, 9, 5, 6 },
+<a name="l00060"></a>00060 { 3, 4, 0, 1, 2, 8, 9, 5, 6, 7 },
+<a name="l00061"></a>00061 { 4, 0, 1, 2, 3, 9, 5, 6, 7, 8 },
+<a name="l00062"></a>00062 { 5, 9, 8, 7, 6, 0, 4, 3, 2, 1 },
+<a name="l00063"></a>00063 { 6, 5, 9, 8, 7, 1, 0, 4, 3, 2 },
+<a name="l00064"></a>00064 { 7, 6, 5, 9, 8, 2, 1, 0, 4, 3 },
+<a name="l00065"></a>00065 { 8, 7, 6, 5, 9, 3, 2, 1, 0, 4 },
+<a name="l00066"></a>00066 { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }
+<a name="l00067"></a>00067 };
+<a name="l00068"></a>00068
+<a name="l00069"></a>00069 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> p[8][10] =
+<a name="l00070"></a>00070 {
+<a name="l00071"></a>00071 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
+<a name="l00072"></a>00072 { 1, 5, 7, 6, 2, 8, 3, 0, 9, 4 },
+<a name="l00073"></a>00073 { 5, 8, 0, 3, 7, 9, 6, 1, 4, 2 },
+<a name="l00074"></a>00074 { 8, 9, 1, 6, 0, 4, 3, 5, 2, 7 },
+<a name="l00075"></a>00075 { 9, 4, 5, 3, 1, 2, 6, 8, 7, 0 },
+<a name="l00076"></a>00076 { 4, 2, 8, 6, 5, 7, 3, 9, 0, 1 },
+<a name="l00077"></a>00077 { 2, 7, 9, 3, 8, 0, 6, 4, 1, 5 },
+<a name="l00078"></a>00078 { 7, 0, 4, 6, 9, 1, 3, 2, 5, 8 }
+<a name="l00079"></a>00079 };
+<a name="l00080"></a>00080
+<a name="l00081"></a>00081 checksum = d[ checksum ][ p[ (valid_value_counter + number_of_virtual_value_skipped) % 8 ][ current_valid_value ] ] ;
+<a name="l00082"></a>00082 }
+<a name="l00083"></a>00083
+<a name="l00091"></a><a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html#abc2ac8843352574bda4af337aa8047dc">00091</a> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html#abc2ac8843352574bda4af337aa8047dc" title="Validate the Verhoeff checksum.">validate_checksum</a>(<span class="keywordtype">int</span> checksum)
+<a name="l00092"></a>00092 {
+<a name="l00093"></a>00093 <span class="keywordflow">return</span> !checksum ;
+<a name="l00094"></a>00094 }
+<a name="l00095"></a>00095
+<a name="l00106"></a>00106 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> checkdigit&gt;
+<a name="l00107"></a><a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html#abceaa014679ac7840e37d1e7f0d1d1fd">00107</a> <span class="keyword">static</span> <span class="keyword">typename</span> checkdigit <a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html#abceaa014679ac7840e37d1e7f0d1d1fd" title="Compute the check digit with the Verhoeff inverse table.">compute_checkdigit</a>( <span class="keywordtype">int</span> checksum )
+<a name="l00108"></a>00108 {
+<a name="l00109"></a>00109 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> inv[] = { 0, 4, 3, 2, 1, 5, 6, 7, 8, 9 } ;
+<a name="l00110"></a>00110
+<a name="l00111"></a>00111 <span class="keywordflow">try</span>
+<a name="l00112"></a>00112 {
+<a name="l00113"></a>00113 <span class="keywordflow">return</span> boost::lexical_cast&lt;checkdigit&gt;( inv[checksum] ) ;
+<a name="l00114"></a>00114 }
+<a name="l00115"></a>00115 <span class="keywordflow">catch</span>( boost::bad_lexical_cast )
+<a name="l00116"></a>00116 {
+<a name="l00117"></a>00117 <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1checks_1_1translation__exception.html" title="This class provides support for translation failure. For example, sequence value into integer...">boost::checks::translation_exception</a>() ;
+<a name="l00118"></a>00118 }
+<a name="l00119"></a>00119 }
+<a name="l00120"></a>00120 };
+<a name="l00121"></a>00121
+<a name="l00125"></a><a class="code" href="namespaceboost_1_1checks.html#a5ce2d0db03cfe90a961779538d897a22">00125</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html" title="This class can be used to compute or validate checksum with the Verhoeff algorithm.">verhoeff_algorithm&lt;0&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a5ce2d0db03cfe90a961779538d897a22" title="This is the type of the Verhoeff algorithm for validating a check digit.">verhoeff_check_algorithm</a> ;
+<a name="l00129"></a><a class="code" href="namespaceboost_1_1checks.html#a93cfc6f3a20335c421e20f92d3c821c8">00129</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1verhoeff__algorithm.html" title="This class can be used to compute or validate checksum with the Verhoeff algorithm.">verhoeff_algorithm&lt;1&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a93cfc6f3a20335c421e20f92d3c821c8" title="This is the type of the Verhoeff algorithm for computing a check digit.">verhoeff_compute_algorithm</a> ;
+<a name="l00130"></a>00130
+<a name="l00144"></a>00144 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
+<a name="l00145"></a><a class="code" href="namespaceboost_1_1checks.html#abe6ccc42ec484aac046ea80bfaad4ae4">00145</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#abe6ccc42ec484aac046ea80bfaad4ae4" title="Validate a sequence according to the verhoeff_check_algorithm type.">check_verhoeff</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00146"></a>00146 {
+<a name="l00147"></a>00147 <span class="keywordflow">return</span> boost::checks::check_sequence&lt;verhoeff_check_algorithm, size_expected&gt; ( check_seq ) ;
+<a name="l00148"></a>00148 }
+<a name="l00149"></a>00149
+<a name="l00162"></a>00162 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00163"></a><a class="code" href="namespaceboost_1_1checks.html#a86e8991bc68fab9958a902b140bd05c6">00163</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#abe6ccc42ec484aac046ea80bfaad4ae4" title="Validate a sequence according to the verhoeff_check_algorithm type.">check_verhoeff</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00164"></a>00164 {
+<a name="l00165"></a>00165 <span class="keywordflow">return</span> boost::checks::check_sequence&lt;verhoeff_check_algorithm&gt; ( check_seq ) ;
+<a name="l00166"></a>00166 }
+<a name="l00167"></a>00167
+<a name="l00182"></a>00182 <span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> size_expected, <span class="keyword">typename</span> check_range&gt;
+<a name="l00183"></a><a class="code" href="namespaceboost_1_1checks.html#a069b69920cc6182e4bd0f1414cdc7747">00183</a> <span class="keyword">typename</span> boost::checks::verhoeff_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a069b69920cc6182e4bd0f1414cdc7747" title="Calculate the check digit of a sequence according to the verhoeff_compute_algorithm type...">compute_verhoeff</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00184"></a>00184 {
+<a name="l00185"></a>00185 <span class="keywordflow">return</span> boost::checks::compute_checkdigit&lt;verhoeff_compute_algorithm, size_expected&gt; ( check_seq ) ;
+<a name="l00186"></a>00186 }
+<a name="l00187"></a>00187
+<a name="l00201"></a>00201 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00202"></a><a class="code" href="namespaceboost_1_1checks.html#a4bcb041b2939d1b52d223b9372b24536">00202</a> <span class="keyword">typename</span> boost::checks::verhoeff_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a069b69920cc6182e4bd0f1414cdc7747" title="Calculate the check digit of a sequence according to the verhoeff_compute_algorithm type...">compute_verhoeff</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00203"></a>00203 {
+<a name="l00204"></a>00204 <span class="keywordflow">return</span> boost::checks::compute_checkdigit&lt;verhoeff_compute_algorithm&gt; ( check_seq ) ;
+<a name="l00205"></a>00205 }
+<a name="l00206"></a>00206
+<a name="l00207"></a>00207
+<a name="l00208"></a>00208 }}
+<a name="l00209"></a>00209 <span class="preprocessor">#endif</span>
 </pre></div></div>
 </div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
@@ -194,7 +196,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:53</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/visa_8hpp.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/visa_8hpp.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/visa_8hpp.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:53 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -63,21 +63,91 @@
 </div>
 <div class="header">
   <div class="summary">
-Namespaces </div>
+Classes &#124;
+Namespaces &#124;
+Defines &#124;
+Typedefs &#124;
+Functions </div>
   <div class="headertitle">
 <div class="title">I:/boost-sandbox/SOC/2011/checks/boost/checks/visa.hpp File Reference</div> </div>
 </div>
 <div class="contents">
 
+<p>This file provides tools to compute and validate a Visa credit card number.
+More...</p>
+<div class="textblock"><code>#include &lt;<a class="el" href="luhn_8hpp_source.html">boost/checks/luhn.hpp</a>&gt;</code><br/>
+</div>
 <p>Go to the source code of this file.</p>
 <table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1checks_1_1visa__algorithm.html">boost::checks::visa_algorithm&lt; number_of_virtual_value_skipped &gt;</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class can be used to compute or validate checksum with the Luhn algorithm but filter following the Visa pattern. More...<br/></td></tr>
 <tr><td colspan="2"><h2><a name="namespaces"></a>
 Namespaces</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Boost <a class="el" href="crc_8hpp.html">checks/crc.hpp</a> header file ------------------------------------//. </p>
-<br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html">boost::checks</a></td></tr>
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="visa_8hpp.html#a913937f24479e4dad67ed0b6bfda60f8">VISA_SIZE</a>&#160;&#160;&#160;16</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This macro defines the size of a Visa number. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="visa_8hpp.html#acbcb4d1383c20dda670bae712b64b7d5">VISA_SIZE_WITHOUT_CHECKDIGIT</a>&#160;&#160;&#160;15</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This macro defines the size of a Visa number without its check digit. <br/></td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef visa_algorithm&lt; 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a6d5c430a2bceeedf1002d92a98aa4c43">boost::checks::visa_check_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Visa algorithm for validating a check digit. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef visa_algorithm&lt; 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a323a27cc40681492362fb3c0893979cb">boost::checks::visa_compute_algorithm</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the type of the Visa algorithm for computing a check digit. <br/></td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#ab59d983a0e6f7df034570cdf7e14bdcb">boost::checks::check_visa</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a sequence according to the visa_check_algorithm type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename check_range &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">boost::checks::visa_compute_algorithm::checkdigit<br class="typebreak"/>
+&lt; check_range &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1checks.html#a4770ebdffc040e9cc9cb1fb6f1d75457">boost::checks::compute_visa</a> (const check_range &amp;check_seq)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the check digit of a sequence according to the visa_compute_algorithm type. <br/></td></tr>
 </table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>This file provides tools to compute and validate a Visa credit card number. </p>
+
+<p>Definition in file <a class="el" href="visa_8hpp_source.html">visa.hpp</a>.</p>
+</div><hr/><h2>Define Documentation</h2>
+<a class="anchor" id="a913937f24479e4dad67ed0b6bfda60f8"></a><!-- doxytag: member="visa.hpp::VISA_SIZE" ref="a913937f24479e4dad67ed0b6bfda60f8" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define VISA_SIZE&#160;&#160;&#160;16</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This macro defines the size of a Visa number. </p>
+
+<p>Definition at line <a class="el" href="visa_8hpp_source.html#l00024">24</a> of file <a class="el" href="visa_8hpp_source.html">visa.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acbcb4d1383c20dda670bae712b64b7d5"></a><!-- doxytag: member="visa.hpp::VISA_SIZE_WITHOUT_CHECKDIGIT" ref="acbcb4d1383c20dda670bae712b64b7d5" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define VISA_SIZE_WITHOUT_CHECKDIGIT&#160;&#160;&#160;15</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This macro defines the size of a Visa number without its check digit. </p>
+
+<p>Definition at line <a class="el" href="visa_8hpp_source.html#l00028">28</a> of file <a class="el" href="visa_8hpp_source.html">visa.hpp</a>.</p>
+
+</div>
+</div>
 </div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
 
@@ -97,7 +167,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:53</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/visa_8hpp_source.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/visa_8hpp_source.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/doxygen/html/visa_8hpp_source.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -15,7 +15,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
 
   <!-- Add your title here ! -->
- <title>Boost.Checks Wed Aug 17 2011 09:53:02 Checks </title>
+ <title>Boost.Checks Tue Aug 23 2011 09:36:53 Boost.Checks </title>
 
   <!-- Add your custom stylesheet here ! -->
   <link href="../checks_doxygen.css" rel="stylesheet" type="text/css"/>
@@ -45,7 +45,7 @@
   <br/> <!-- Some space below logo, if needed. -->
 </p>
 
-<!-- Generated by Doxygen 1.7.5 -->
+<!-- Generated by Doxygen 1.7.5.1 -->
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li>Main Page</li>
@@ -72,19 +72,52 @@
 <a name="l00005"></a>00005 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt>
 <a name="l00006"></a>00006 <span class="comment">// See
http://www.boost.org for updates, documentation, and revision history.</span>
 <a name="l00007"></a>00007
-<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_VISA_INCLUDED</span>
-<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_VISA_INCLUDED</span>
-<a name="l00010"></a>00010 <span class="preprocessor"></span>
-<a name="l00011"></a>00011
-<a name="l00012"></a>00012 <span class="keyword">namespace </span>boost {
-<a name="l00013"></a>00013 <span class="keyword">namespace </span>checks{
-<a name="l00014"></a>00014
-<a name="l00015"></a>00015 <span class="comment">/* visa : use luhn algorithm */</span>
-<a name="l00016"></a>00016
-<a name="l00017"></a>00017 } <span class="comment">// namespace checks</span>
-<a name="l00018"></a>00018 } <span class="comment">// namespace boost</span>
-<a name="l00019"></a>00019
-<a name="l00020"></a>00020 <span class="preprocessor">#endif</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#ifndef BOOST_CHECKS_VISA_HPP</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_CHECKS_VISA_HPP</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span>
+<a name="l00015"></a>00015 <span class="preprocessor">#ifdef _MSC_VER</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor"> #pragma once</span>
+<a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00018"></a>00018 <span class="preprocessor"></span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include &lt;<a class="code" href="luhn_8hpp.html" title="This file provides tools to compute and validate sequence with the Luhn algorithm.">boost/checks/luhn.hpp</a>&gt;</span>
+<a name="l00020"></a>00020
+<a name="l00024"></a><a class="code" href="visa_8hpp.html#a913937f24479e4dad67ed0b6bfda60f8">00024</a> <span class="preprocessor">#define VISA_SIZE 16</span>
+<a name="l00025"></a>00025 <span class="preprocessor"></span>
+<a name="l00028"></a><a class="code" href="visa_8hpp.html#acbcb4d1383c20dda670bae712b64b7d5">00028</a> <span class="preprocessor">#define VISA_SIZE_WITHOUT_CHECKDIGIT 15</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span>
+<a name="l00030"></a>00030 <span class="keyword">namespace </span>boost {
+<a name="l00031"></a>00031 <span class="keyword">namespace </span>checks{
+<a name="l00032"></a>00032
+<a name="l00038"></a>00038 <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> number_of_virtual_value_skipped = 0&gt;
+<a name="l00039"></a><a class="code" href="structboost_1_1checks_1_1visa__algorithm.html">00039</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1checks_1_1visa__algorithm.html" title="This class can be used to compute or validate checksum with the Luhn algorithm but filter following t...">visa_algorithm</a> : boost::checks::<a class="code" href="structboost_1_1checks_1_1luhn__algorithm.html" title="This class can be used to compute or validate checksum with the Luhn algorithm.">luhn_algorithm</a> &lt; number_of_virtual_value_skipped &gt;
+<a name="l00040"></a>00040 {
+<a name="l00051"></a><a class="code" href="structboost_1_1checks_1_1visa__algorithm.html#a57ad01ee6a0ebfc8e57573a633daac7f">00051</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="structboost_1_1checks_1_1visa__algorithm.html#a57ad01ee6a0ebfc8e57573a633daac7f" title="Verify that a number matches the Visa pattern.">filter_valid_value_with_pos</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_valid_value, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_value_position )
+<a name="l00052"></a>00052 {
+<a name="l00053"></a>00053 <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> real_pos_from_left = <a class="code" href="visa_8hpp.html#a913937f24479e4dad67ed0b6bfda60f8" title="This macro defines the size of a Visa number.">VISA_SIZE</a> - current_value_position - number_of_virtual_value_skipped ;
+<a name="l00054"></a>00054
+<a name="l00055"></a>00055 <span class="keywordflow">if</span>( real_pos_from_left == 1 &amp;&amp; current_valid_value != 4)
+<a name="l00056"></a>00056 <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;The Major Industry Identifier of a VISA credit card should be 4.&quot;</span>) ;
+<a name="l00057"></a>00057 }
+<a name="l00058"></a>00058 };
+<a name="l00059"></a>00059
+<a name="l00063"></a><a class="code" href="namespaceboost_1_1checks.html#a6d5c430a2bceeedf1002d92a98aa4c43">00063</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1visa__algorithm.html" title="This class can be used to compute or validate checksum with the Luhn algorithm but filter following t...">visa_algorithm&lt;0&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a6d5c430a2bceeedf1002d92a98aa4c43" title="This is the type of the Visa algorithm for validating a check digit.">visa_check_algorithm</a> ;
+<a name="l00067"></a><a class="code" href="namespaceboost_1_1checks.html#a323a27cc40681492362fb3c0893979cb">00067</a> <span class="keyword">typedef</span> <a class="code" href="structboost_1_1checks_1_1visa__algorithm.html" title="This class can be used to compute or validate checksum with the Luhn algorithm but filter following t...">visa_algorithm&lt;1&gt;</a> <a class="code" href="namespaceboost_1_1checks.html#a323a27cc40681492362fb3c0893979cb" title="This is the type of the Visa algorithm for computing a check digit.">visa_compute_algorithm</a> ;
+<a name="l00068"></a>00068
+<a name="l00082"></a>00082 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00083"></a><a class="code" href="namespaceboost_1_1checks.html#ab59d983a0e6f7df034570cdf7e14bdcb">00083</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1checks.html#ab59d983a0e6f7df034570cdf7e14bdcb" title="Validate a sequence according to the visa_check_algorithm type.">check_visa</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00084"></a>00084 {
+<a name="l00085"></a>00085 <span class="keywordflow">return</span> boost::checks::check_sequence&lt;visa_check_algorithm, VISA_SIZE&gt; ( check_seq ) ;
+<a name="l00086"></a>00086 }
+<a name="l00087"></a>00087
+<a name="l00102"></a>00102 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> check_range&gt;
+<a name="l00103"></a><a class="code" href="namespaceboost_1_1checks.html#a4770ebdffc040e9cc9cb1fb6f1d75457">00103</a> <span class="keyword">typename</span> boost::checks::visa_compute_algorithm::checkdigit&lt;check_range&gt;::type <a class="code" href="namespaceboost_1_1checks.html#a4770ebdffc040e9cc9cb1fb6f1d75457" title="Calculate the check digit of a sequence according to the visa_compute_algorithm type.">compute_visa</a> (<span class="keyword">const</span> check_range&amp; check_seq)
+<a name="l00104"></a>00104 {
+<a name="l00105"></a>00105 <span class="keywordflow">return</span> boost::checks::compute_checkdigit&lt;visa_compute_algorithm, VISA_SIZE_WITHOUT_CHECKDIGIT&gt; ( check_seq ) ;
+<a name="l00106"></a>00106 }
+<a name="l00107"></a>00107
+<a name="l00108"></a>00108
+<a name="l00109"></a>00109 }}
+<a name="l00110"></a>00110 <span class="preprocessor">#endif // BOOST_CHECKS_VISA_HPP</span>
 </pre></div></div>
 </div>
 <!-- custom Doxygen footer checks_doxygen_footer.html -->-
@@ -105,7 +138,7 @@
       <!-- Change copyright to YOUR name (and affiliation, if any) below: -->
      <p>Copyright © 2011 Pierre Talbot</p>
       <!-- 2011 becomes the current year, for example 2010, so claims copyright for a range of years, 2009 - 2010. -->
- <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5, Revised at Wed Aug 17 2011 09:53:02</p>
+ <p>Doxygen Documentation generated by&nbsp; doxygen logo 1.7.5.1, Revised at Tue Aug 23 2011 09:36:53</p>
   </address>
   </tr>
 </tbody>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/errors.qbk
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/errors.qbk (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/errors.qbk 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -22,26 +22,35 @@
 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.
 
-[endsect][/section:alteration Alteration]
+[endsect] [/section:alteration Alteration]
+
 [section:transposition Transposition]
 
-A transposition on a simple sum is impossible to detect because the addition is commutative, the order is not important.
+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.
 
-[note A transposition error is only catched 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.]
+[note 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.]
+
+[endsect] [/section:transposition Transposition]
 
-[endsect][/section:transposition Transposition]
-[section:lenght Length]
+[section:length Length]
 
 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 uncatched if the check digit of the new sequence of digit is equal to the last digit of this sequence.
+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.
+
+[endsect] [/section:length Length]
 
-[endsect][/section:lenght Length]
 [section:shift Shift]
 
-[endsect][/section:shift Shift]
+[endsect] [/section:shift Shift]
+
 [section:phonetic Phonetic]
 
-[endsect][/section:phonetic Phonetic]
+[endsect] [/section:phonetic Phonetic]
 
-[endsect][/section:errors Type of errors]
\ No newline at end of file
+[endsect] [/section:errors Type of errors]
\ No newline at end of file

Modified: sandbox/SOC/2011/checks/libs/checks/doc/html/boostbook.css
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/html/boostbook.css (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/boostbook.css 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -609,3 +609,38 @@
         top: .5ex;
 }
 
+/*==============================================================================
+ Indexes: pretty much the same as the TOC.
+==============================================================================*/
+
+ .index
+ {
+ font-size: 80%;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ margin-left: 0px;
+ }
+
+ .index ul
+ {
+ padding-left: 3em;
+ }
+
+ .index p
+ {
+ padding: 2px;
+ margin: 2px;
+ }
+
+ .index-entry-level-0
+ {
+ font-weight: bold;
+ }
+
+ .index em
+ {
+ font-weight: bold;
+ }
+

Modified: sandbox/SOC/2011/checks/libs/checks/doc/html/checks_reference.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/html/checks_reference.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/checks_reference.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -4,10 +4,10 @@
 <title>Checks Reference</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="Boost.Checks">
-<link rel="up" href="index.html" title="Boost.Checks">
+<link rel="home" href="index.html" title="Boost_Checks">
+<link rel="up" href="index.html" title="Boost_Checks">
 <link rel="prev" href="boost_checks/checks/version_id.html" title="Version Info">
-<link rel="next" href="header/boost/checks/adler_hpp.html" title="Header &lt;boost/checks/adler.hpp&gt;">
+<link rel="next" href="header/boost/checks/amex_hpp.html" title="Header &lt;boost/checks/amex.hpp&gt;">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,35 +20,31 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="boost_checks/checks/version_id.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="header/boost/checks/adler_hpp.html"><img src="images/next.png" alt="Next"></a>
+<a accesskey="p" href="boost_checks/checks/version_id.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="header/boost/checks/amex_hpp.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_reference"></a>Checks Reference</h2></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section">Header <boost/checks/adler.hpp></span></dt>
 <dt><span class="section">Header <boost/checks/amex.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/basic_check_algorithm.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/basic_checks.hpp></span></dt>
 <dt><span class="section">Header <boost/checks/checks_fwd.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/crc.hpp></span></dt>
 <dt><span class="section">Header <boost/checks/ean.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/EANcheck.cpp></span></dt>
-<dt><span class="section">Header <boost/checks/EANcheck.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/fletcher.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/iban.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/IBMCheck.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/isan.hpp></span></dt>
 <dt><span class="section">Header <boost/checks/isbn.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/ISBN_PAB.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/isbn_Vasconcelos.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/ISSN_PAB.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/iteration_sense.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/limits.hpp></span></dt>
 <dt><span class="section">Header <boost/checks/luhn.hpp></span></dt>
 <dt><span class="section">Header <boost/checks/mastercard.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/modulus10.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/modulus11.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/modulus97.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/translation_exception.hpp></span></dt>
 <dt><span class="section">Header <boost/checks/upc.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/UPCcheck.cpp></span></dt>
-<dt><span class="section">Header <boost/checks/UPCcheck.hpp></span></dt>
 <dt><span class="section">Header <boost/checks/verhoeff.hpp></span></dt>
 <dt><span class="section">Header <boost/checks/visa.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/VISACheck.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/weight.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/weighted_sum.hpp></span></dt>
 </dl></div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
@@ -61,7 +57,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="boost_checks/checks/version_id.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="header/boost/checks/adler_hpp.html"><img src="images/next.png" alt="Next"></a>
+<a accesskey="p" href="boost_checks/checks/version_id.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="header/boost/checks/amex_hpp.html"><img src="images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/html/index.html
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/html/index.html (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/html/index.html 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -1,10 +1,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>Boost.Checks</title>
+<title>Boost_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="Boost.Checks">
+<link rel="home" href="index.html" title="Boost_Checks">
 <link rel="next" href="boost_checks/checks.html" title="Boost.Checks">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,13 +22,13 @@
 <div class="titlepage">
 <div>
 <div><h2 class="title">
-<a name="boost_checks"></a>Boost.Checks</h2></div>
+<a name="boost_checks"></a>Boost_Checks</h2></div>
 <div><div class="authorgroup"><div class="author"><h3 class="author">
 <span class="firstname">Pierre</span> <span class="surname">Talbot</span>
 </h3></div></div></div>
 <div><p class="copyright">Copyright &#169; 2011 Pierre Talbot</p></div>
 <div><div class="legalnotice">
-<a name="id876290"></a><p>
+<a name="id894649"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -41,51 +41,60 @@
 <dl>
 <dt><span class="section">Boost.Checks</span></dt>
 <dd><dl>
+<dt><span class="section">Preface</span></dt>
 <dt><span class="section">Overview</span></dt>
 <dd><dl><dt><span class="section"><a href="boost_checks/checks/overview/conventions.html">Document
         Conventions</a></span></dt></dl></dd>
-<dt><span class="section">ISBN checking</span></dt>
-<dd><dl><dt><span class="section">Synopsis</span></dt></dl></dd>
-<dt><span class="section"><a href="boost_checks/checks/upc.html">Universal Product Code (UPC)
- checking</a></span></dt>
-<dt><span class="section"><a href="boost_checks/checks/ean.html">International Article Number
- (EAN) checking</a></span></dt>
-<dt><span class="section">Tutorial Examples</span></dt>
-<dd><dl><dt><span class="section">ISBN example</span></dt></dl></dd>
-<dt><span class="section">Hints and Tips</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="boost_checks/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">TODO</span></dt>
 <dt><span class="section">Version Info</span></dt>
 </dl></dd>
 <dt><span class="section">Checks Reference</span></dt>
 <dd><dl>
-<dt><span class="section">Header <boost/checks/adler.hpp></span></dt>
 <dt><span class="section">Header <boost/checks/amex.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/basic_check_algorithm.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/basic_checks.hpp></span></dt>
 <dt><span class="section">Header <boost/checks/checks_fwd.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/crc.hpp></span></dt>
 <dt><span class="section">Header <boost/checks/ean.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/EANcheck.cpp></span></dt>
-<dt><span class="section">Header <boost/checks/EANcheck.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/fletcher.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/iban.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/IBMCheck.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/isan.hpp></span></dt>
 <dt><span class="section">Header <boost/checks/isbn.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/ISBN_PAB.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/isbn_Vasconcelos.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/ISSN_PAB.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/iteration_sense.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/limits.hpp></span></dt>
 <dt><span class="section">Header <boost/checks/luhn.hpp></span></dt>
 <dt><span class="section">Header <boost/checks/mastercard.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/modulus10.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/modulus11.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/modulus97.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/translation_exception.hpp></span></dt>
 <dt><span class="section">Header <boost/checks/upc.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/UPCcheck.cpp></span></dt>
-<dt><span class="section">Header <boost/checks/UPCcheck.hpp></span></dt>
 <dt><span class="section">Header <boost/checks/verhoeff.hpp></span></dt>
 <dt><span class="section">Header <boost/checks/visa.hpp></span></dt>
-<dt><span class="section">Header <boost/checks/VISACheck.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/weight.hpp></span></dt>
+<dt><span class="section">Header <boost/checks/weighted_sum.hpp></span></dt>
 </dl></dd>
 <dt><span class="section">Class Index</span></dt>
 <dt><span class="section">Typedef Index</span></dt>
@@ -96,7 +105,7 @@
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: June 17, 2011 at 11:14:47 GMT</small></p></td>
+<td align="left"><p><small>Last revised: August 23, 2011 at 17:41:23 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: sandbox/SOC/2011/checks/libs/checks/doc/introduction.qbk
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/introduction.qbk (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/introduction.qbk 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -1,18 +1,21 @@
 [section:introduction Introduction]
 
-The checks are required in a numerous kind of domains such as the distribution chain (bar codes), the cards number (bank, fidelity cards, ...) and many others.
+Checks are required in a numerous domains : distribution chain (bar codes on products),
+banking (bank account numbers, credit cards, fidelity cards, ...) and many others.
 These codes and numbers are often copied or scanned by humans or machines, and both make errors.
 We need a way to control it and this is why some people created a check digit.
-A check digit is aimed to control the validity of a number and catch mismatched input (we'll detail further the different errors).
-Another functionnality of this library is to calculate the check digit of a number. There are other functionnalities more specific to a number, for example, we can ['transform] an ISBN-10 to an ISBN-13.
+A check digit is aimed to control the validity of a number and catch mismatched input
+(we'll detail further the different errors).
+Another functionnality of this library is to calculate the check digit of a number.
+There are other functionnalities more specific to a number, for example, we can ['transform] an ISBN-10 to an ISBN-13.
 
-There are a lot of codes and numbers that use a check digit, for instance : the ISBN for the books or the IBAN for the internationnal account numbers.
-But many of those are specialisation of well-known algorithms such as Luhn or modulus 11 algorithm. For example :
-ISBN-13 is a specialisation of the EAN-13 which is a specialisation of the modulus 10 algorithm.
+There are a lot of codes and numbers that use a check digit, for instance : the ISBN for the books or the IBAN for the international account numbers.
+But many of those are specialisation of well-known algorithms such as Luhn or modulus 11 algorithm.
+For example : ISBN-13 is a specialisation of the EAN-13 which is a specialisation of the modulus 10 algorithm.
 
 This library is divided into two parts : a low level part (Luhn, modulus 11, modulus 10, ...) and a higher level library (ISBN-10, EAN-13, IBAN, VISA number, ...).
 The higher level library will use the low level with filter on the length, first X characters, ...
-Theorically, the user should only use the high level library which is more specific.
+Theoritically, the user should only use the high level library which is more specific.
 In some cases, the user would like to use the lower level library because some kind of exotic numbers (social number of india,...) are not provided by the library.
 
-[endsect][/section:introduction Introduction]
\ No newline at end of file
+[endsect] [/section:introduction Introduction]
\ No newline at end of file

Modified: sandbox/SOC/2011/checks/libs/checks/doc/modulus.qbk
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/modulus.qbk (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/modulus.qbk 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -1,31 +1,34 @@
 [section:modulus Modular sum algorithms]
 
-A ['modular sum algorithm] computes the sum of a sequence of digits modulus a number.
-The number obtained is called the ['check digit], in many codes it is added as the last digit.
-This rubbish algorithm detect all ['alteration] of one digit but doesn't detect a simple ['transposition] if the check digit is not transposed.
-This is why even the most basic algorithms introduce the notion of ['weight]. 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 the world.
-We could describe a number and its check digit calculation with three characteristics : length, weigth and the modulus.
-So we could design a generic function but we won't. It wouldn't be efficient and would be unnecessarily more complicated.
-The next parts will present the three different algorithms that we have choose to design.
+A ['modular sum algorithm] computes the sum of a sequence of digits modulus some number.
+The number obtained is called the ['check digit]; in many codes it is appended as the last digit (or letter).
+This simplistic algorithm detects any ['alteration] of one single digit
+but doesn't detect a simple ['transposition] or two (or more) digits if the check digit is not transposed.
+This is why even the most basic algorithms introduce the notion of ['weight].
+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.
 
-[note We may add other algorithms later]
+[note We may add other algorithms later.]
 
 [section:luhn Luhn algorithm]
 
 [h5 Description]
 
-The Luhn algorithm is used with a lot of codes and numbers, the most well-known usage is the verification of the ['credit card numbers].
+The Luhn algorithm is used with a lot of codes and numbers:
+the most well-known usage is the verification of the ['credit card numbers]
 It produces a check digit from a sequence with an unlimited length.
-The weigth pattern used is : from the rightmost digit (the check digit) double the value of every second digit.
-It use a modulus 10 on the sum, the range of the check digit is from 0 to 9.
+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.
 
 [note When a digit is doubled, we subtract 9 from the result if it exceeds 9]
 
 [h5 Errors]
 
-[*Alterations] of one digit are all catched. The alterations of more than one digit are not all catched.
-All [*transpositions] on digits with different weight are catched but the sequence "90" or "09" because:
+[*Alterations] of any one digit are all caught. The alterations of more than one digit are not all caught.
+All [*transpositions] on digits with different weight are caught, but the sequence "90" or "09" is not because:
 
 [teletype]
 ``
@@ -34,45 +37,48 @@
 0 * 2 = 0 * 1
 ``
 
-The two digits have the same value if there are doubled or not.
-Seeing that Luhn alternates a weight of 1 and 2, the transpositions on digits with the same weight are not catched.
+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.
+
+[endsect] [/section:luhn Luhn algorithm]
 
-[endsect][/section:luhn Luhn algorithm]
 [section:mod10 Modulus 10 algorithm]
 
 [h5 Description]
 
 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 is interresting for many codes and numbers that aren't implemented in the high level library.
+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.
 
-[endsect][/section:mod10 Modulus 10 algorithm]
+[endsect] [/section:mod10 Modulus 10 algorithm]
+
 [section:mod11 Modulus 11 algorithm]
 
 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 decrease by one for the second position, one again for the third, etc.
-
-[endsect][/section:mod11 Modulus 11 algorithm]
-
+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.
 
+[endsect] [/section:mod11 Modulus 11 algorithm]
 
 
-[section:summary Summary]
+[section:summary Summary of Algorithms]
 
 Here a summary of the different algorithms studied.
 
 [table:id Summary of the modular sum algorithms
- [[Algorithm] [Modulus] [Weight pattern] [check digit range]]
- [[Luhn] [10] [... 2 1 2 1] [0..9]]
- [[Modulus 10] [10] [custom] [0..9]]
- [[Modulus 11] [11] [... 2 1 10 ... 4 3 2 1] [0..9 + 'X']]
- [[Modulus 97] [97] [][]]
- [[Verhoeff] [][] []]
+ [[Algorithm] [Modulus] [Weight pattern] [check digit range]]
+ [[Luhn] [10] [... 2 1 2 1] [0..9]]
+ [[Modulus 10] [10] [custom] [0..9]]
+ [[Modulus 11] [11] [... 2 1 10 ... 4 3 2 1] [0..9 + 'X']]
+ [[Modulus 97] [97] [][]]
+ [[Verhoeff] [][] []]
 ]
 
-[endsect][/section:summary Summary]
+[endsect] [/section:summary Summary]
 
-[endsect][/section:modulus Modular sum algorithms]
\ No newline at end of file
+[endsect] [/section:modulus Modular sum algorithms]
\ No newline at end of file

Modified: sandbox/SOC/2011/checks/libs/checks/doc/tutorial.qbk
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/doc/tutorial.qbk (original)
+++ sandbox/SOC/2011/checks/libs/checks/doc/tutorial.qbk 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -7,41 +7,50 @@
 or copy at http://www.boost.org/LICENSE_1_0.txt)
 ]
 
-[import ..\example\checks_examples.cpp]
-[import ..\example\rtn.hpp]
-[import ..\example\vin.hpp]
-[import ..\example\checks_tutorial.cpp]
+[import ../example/checks_examples.cpp]
+[import ../example/rtn.hpp]
+[import ../example/vin.hpp]
+[import ../example/checks_tutorial.cpp]
 
 [section:tutorial Tutorial]
 In this section, we will quickly learn to use this library. But most important is the following quote of Lao Tseu :
 
 ["Give a Man a Fish, Feed Him For a Day. Teach a Man to Fish, Feed Him For a Lifetime.]
 
-So we'll learn to extend this library and create our own check functions.
+So we'll also learn to extend this library and create your own check functions.
 
 [section:start Starting with Checks]
 
-There are two main functions for each checks, the first is to validate a sequence: `check_<number>`. The second provides a check digit: `compute_<number>`.
+There are two main functions for each check system.
+
+* to validate a sequence: `check_<number>`.
+
+* to provides a check digit for a sequence: `compute_<number>`.
+
 All the examples of this section are in the file __CHECKS__EXAMPLE__FILE__.
 
 [h5 Credit card numbers check]
 
-We will start with some credit card numbers checking, please first include these headers:
+We will start with some credit card numbers checking.
+
+Please first include these headers:
 
 [credit_cards_include_files]
 
-Three credit card checks are implemented: VISA, Mastercard, and American Express. The following examples show us how to compute and check numbers:
+Three credit card checks are implemented: __VISA, __MASTERCARD, and American Express.
+The following examples show us how to compute and check numbers:
 
 [checks_example_1]
 
-This one provides the output:
+This provides the output:
 
 [checks_output_1]
 
 [h5 Multi check digits]
 
-Some checks use two check digits, such as the mod97-10 algorithm use to calculate
-the check digits of the International Bank Account Number (IBAN).
+Some checks use two check digits, for example, the mod97-10 algorithm used to calculate
+the check digits of the __IBAN.
+
 We add an extra parameter to retrieve the two check digits. The include file is:
 
 [mod97_10_include_file]
@@ -57,24 +66,26 @@
 [h5 Catching errors]
 
 We will now see how the library reacts with simple errors.
-The first error is a number's size that 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 one of these errors are encountered.
-We will use the EAN and ISBN headers:
+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 __EAN and __ISBN headers:
 [ean_include_file]
 [isbn_include_file]
 
-The two examples of number error:
+Two examples of number error:
 
 [checks_example_3]
 
-The output shows us the detailled message the exception provided:
+The output shows us the detailed message the exception provides:
 
 [checks_output_3]
 
 [h5 And with integer array]
 
-The old C-array are also supported. In the other examples, we check "number"
+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:
@@ -90,26 +101,32 @@
 
 [checks_output_4]
 
-[endsect]
+[endsect] [/section:start Starting with Checks]
+
 [section:extending_the_library Extending the library]
 
-The re-usability of a library is an important factor, especially with this library.
-In fact, we can't code every existing check functions, this is why we will learn how
-to extend this library and create your own check functions.
+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.
 
 [h5 Example with the Routing transit number]
 
 We will show how to extend this library with the __RTN. The first thing to do is to
 read the check digit calculation procedure. So we can notice few points:
 
-# It's a weighted sum and the weight sequence is: 3,7,1.
-# It's using a modulus 10.
+# It is a weighted sum and the weight sequence is: 3,7,1.
+# It is using a modulus 10.
 # The size of the RTN is 9.
 
-We can create the __RTN__FILE__ file. The library support the weighted sum and the modulus 10
-algorithm so the work will be ea)sy. We can run through the number from right to left or
-left to right depending on the weight sequence. We will begin with the leftmost digit
-because it's more "readable".
+We can create the __RTN__FILE__ file.
+
+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).
+
+We need these include files.
 
 [rtn_include_files]
 [rtn_preprocessor_tools]
@@ -117,12 +134,12 @@
 We must put the weights and the sense together into an algorithm type:
 [rtn_preprocessor_algorithm]
 
-The hard part is already done, we can build our check functions now:
+As the hard part is already done, we can build our check functions now:
 [rtn_functions]
 
 And that's all!
 
-[note `boost::checks::compute_checkdigit` and `boost::checks::check_sequence` are defined in __BASIC__CHECK__FILE__]
+[note `boost::checks::compute_checkdigit` and `boost::checks::check_sequence` are both defined in __BASIC__CHECK__FILE__]
 
 
 We can code a RTN sample in the file __CHECKS__TUTO__FILE__:
@@ -133,18 +150,18 @@
 
 [rtn_example_output]
 
-[h5 Example with the Vehicle Identification Number]
+[h5 Example with the Vehicle Identification Number (VIN)]
 
-This second example is quite more complete because the __VIN is not a default implemented
-check algorithm. Like for the __RTN, we must read the documentation first, we can extract
-few elements:
+This second example is quite more complex because the __VIN is not a default implemented
+check algorithm. Like for the __RTN, we must read the documentation first,
+and then we can extract a few elements:
 
-* The number contains letter that must be translated to compute or check the check digit.
+* The number contains letters that must be translated to compute or check the check digit.
 * The check digit is not at the end of the number. It's at the 9th position, in the midst of the number.
-* The letters Q, I, or O are not valids.
-* This use a custom modulus 11 algorithm, so the check digit range is [0..9,X].
+* The letters Q, I, or O are not valid (presumably to avoid confusion with digits 0 and 1).
+* This uses a custom modulus 11 algorithm, so the check digit range is [0..9, X]
 
-The library already have support for modulus 11 algorithm in the header:
+The library already has support for modulus 11 algorithm in the header:
 ``#include <boost/checks/modulus11.hpp>``
 
 We create the __VIN__FILE__ file. Step by step, let's now complete this file.
@@ -155,16 +172,18 @@
 We create the types associated with these two observations:
 [vin_preprocessor_tools]
 
-We will now attack the harder part of the work. We need to build the adapted structure.
-Let's create our own algorithm, first we need to declare the structure with inheritance:
+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:
 
 [vin_struct_header]
 
-The classic modulus 11 algorithm doesn't permit the translation of letters (but the 'x'
-if it's the check digit). But this number use 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 have the effect of stopping the algorithm) if one of these letter is encountered.
-The other letter must be transformed following this table:
+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:
 
 [table:id Letter to digit VIN conversion table
     [[Conversion value] [1] [2] [3] [4] [5] [6] [7] [8] [9] ]
@@ -173,27 +192,32 @@
     [[] [] [S (19)] [T (20)] [U (21)] [V (22)] [W (23)] [X (24)] [Y (25)] [Z (26)] ]
 ]
 
-We need to find an algorithm that convert a letter into its conversion value, the following
-function do the job:
-[teletype]
+We need to find an algorithm that converts a letter into its conversion value,
+the following function does the job:
+
 ``
 X = X % 10 + X/10 + ((X > 18) ? 1 : 0).
 ``
 
-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. Let's see the code now:
+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.
+
+Let's see the code now:
 
 [vin_translation_module]
 
-The operation function is partially copied from the function `operate_on_valid_value` in the file __WEIGHTED__SUM__FILE__.
+The operation function is partially copied from the
+function `operate_on_valid_value` in the file __WEIGHTED__SUM__FILE__.
 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.
+into the sequence, we mustn't apply a weight, and we must avoid shift of the full weight sequence for the future iteration.
 
 [vin_operation_module]
 
-Finally the calcul of the check digit is different from the classic modulus 11 algorithm, so we need to re-implement it:
+Finally the calculation of the check digit is different from the classic modulus 11 algorithm,
+so we need to re-implement it:
 
 [vin_compute_checkdigit]
 
@@ -205,7 +229,8 @@
 
 [vin_functions]
 
-[note This algorithm doesn't support full integer array that are not pre-computed ( Ex: (A) 10 -> 1 ; (M) 13 -> 4 ). It can be an excercise for the reader.]
+[note 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.]
 
 Some basic examples are coded in the file __CHECKS__TUTO__FILE__:
 
@@ -215,6 +240,7 @@
 
 [vin_example_output]
 
-[endsect]
+[endsect] [/section:extending_the_library Extending the library]
+
 
-[endsect]
\ No newline at end of file
+[endsect] [/section:tutorial Tutorial]

Modified: sandbox/SOC/2011/checks/libs/checks/example/checks_examples.cpp
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/example/checks_examples.cpp (original)
+++ sandbox/SOC/2011/checks/libs/checks/example/checks_examples.cpp 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -1,5 +1,5 @@
 //! \file
-//! \brief Examples of validating and computing check digit(s) with Boost.Checks
+//! \brief Examples of validating and computing check digit(s) with Boost.Checks.
 
 // Copyright Pierre Talbot 2011.
 
@@ -17,7 +17,7 @@
 
 #include <iostream>
 #include <string>
-
+#include <exception>
 #include <iterator>
 
 //[credit_cards_include_files
@@ -78,17 +78,21 @@
   //[checks_example_3
 
   std::string ean13_number = "540011301748" ; // Incorrect size.
- try{
+ try
+ {
     boost::checks::check_ean13 ( ean13_number ) ;
- }catch ( std::invalid_argument e )
+ }
+ catch ( std::invalid_argument e )
   {
     std::cout << e.what() << std::endl ;
   }
 
   std::string isbn13_number = "977-0321227256" ; // Third digit altered.
- try{
+ try
+ {
     boost::checks::check_isbn13( isbn13_number );
- }catch ( std::invalid_argument e )
+ }
+ catch ( std::invalid_argument e )
   {
     std::cout << e.what() << std::endl ;
   }
@@ -121,7 +125,7 @@
 The check digit of the American Express number : 3458 2531 9273 09 is 4.
 This is a valid Mastercard number : 5320 1274 8562 1570
 
-//] [/checks_output_1]
+//] [/checks_output_1]
 
 Example 2
 ---------

Modified: sandbox/SOC/2011/checks/libs/checks/example/vin.hpp
==============================================================================
--- sandbox/SOC/2011/checks/libs/checks/example/vin.hpp (original)
+++ sandbox/SOC/2011/checks/libs/checks/example/vin.hpp 2011-08-23 13:44:15 EDT (Tue, 23 Aug 2011)
@@ -1,5 +1,5 @@
 //! \file vin.hpp
-//! \brief Check and compute the Vehicle Identification Number for example purpose.
+//! \brief Check and compute the Vehicle Identification Number.
 
 // Copyright Pierre Talbot 2011.
 
@@ -11,13 +11,13 @@
 #ifndef BOOST_CHECKS_VIN_HPP
 #define BOOST_CHECKS_VIN_HPP
 
-//[vin_preprocessor_tools]
+//[vin_preprocessor_tools
 #include <boost/checks/modulus11.hpp>
 #include <boost/checks/basic_checks.hpp>
 
 #define VIN_SIZE 17
 #define VIN_SIZE_WITHOUT_CHECKDIGIT 16
-#define VIN_CHECKDIGIT_POS 8
+#define VIN_CHECKDIGIT_POS 8
 
 typedef boost::checks::weight<2,3,4,5,6,7,8,9,10> vin_weight ;
 typedef boost::checks::rightmost vin_sense ;
@@ -31,7 +31,7 @@
   //[vin_translation_module
   template <typename value>
   static int translate_to_valid_value(const value &current_value, const unsigned int valid_value_counter )
- {
+ {
     int valid_value = 0;
     try
     {
@@ -39,12 +39,12 @@
     }
     catch( boost::bad_lexical_cast )
     {
- // Transform the value to be between 1 and 26
+ // Transform the value to be between 1 and 26.
       if( current_value >= 'a' && current_value <= 'z' )
         valid_value = current_value - 'a' + 1 ;
       else if( current_value >= 'A' && current_value <= 'Z' )
         valid_value = current_value - 'A' + 1 ;
- else
+ else
         throw boost::checks::translation_exception() ;
 
       if ( valid_value == 9 || valid_value == 15 || valid_value == 17)
@@ -53,7 +53,7 @@
       if ( valid_value_counter == VIN_CHECKDIGIT_POS && number_of_virtual_value_skipped == 0)
       {
         if ( valid_value != 24 )
- throw std::invalid_argument( "The check digit should be a digit or X or x" );
+ throw std::invalid_argument( "The check digit should be a digit or X or x." );
         else
           valid_value = 10 ;
         valid_value = 11 - valid_value ;
@@ -72,7 +72,7 @@
   static void operate_on_valid_value( const int current_valid_value, const unsigned int valid_value_counter, int &checksum )
   {
     if( number_of_virtual_value_skipped == 0 && valid_value_counter == VIN_CHECKDIGIT_POS )
- checksum += current_valid_value ;
+ checksum += current_valid_value ;
     else
     {
       unsigned int weight_position = valid_value_counter - (number_of_virtual_value_skipped == 0 && valid_value_counter > VIN_CHECKDIGIT_POS) ;
@@ -86,7 +86,7 @@
   template <typename checkdigit>
   static typename checkdigit compute_checkdigit( int checksum )
   {
- typedef typename boost::checks::modulus11_algorithm<vin_weight, vin_sense, number_of_virtual_value_skipped> mod11 ;
+ typedef typename boost::checks::modulus11_algorithm<vin_weight, vin_sense, number_of_virtual_value_skipped> mod11 ;
     return mod11::translate_checkdigit<checkdigit>(checksum % 11) ;
   }
   //]


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