$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: matias.capeletto_at_[hidden]
Date: 2008-02-14 13:08:19
Author: matias
Date: 2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
New Revision: 43251
URL: http://svn.boost.org/trac/boost/changeset/43251
Log:
conversion docs fixes
Added:
   trunk/libs/numeric/conversion/doc/Jamfile.v2   (contents, props changed)
   trunk/libs/numeric/conversion/doc/html/images/
      - copied from r43227, /trunk/libs/optional/doc/html/images/
Removed:
   trunk/libs/numeric/conversion/doc/bounds.html
   trunk/libs/numeric/conversion/doc/conversion_traits.html
   trunk/libs/numeric/conversion/doc/converter.html
   trunk/libs/numeric/conversion/doc/converter_policies.html
   trunk/libs/numeric/conversion/doc/definitions.html
   trunk/libs/numeric/conversion/doc/html/images/callouts/1.png
   trunk/libs/numeric/conversion/doc/html/images/callouts/10.png
   trunk/libs/numeric/conversion/doc/html/images/callouts/11.png
   trunk/libs/numeric/conversion/doc/html/images/callouts/12.png
   trunk/libs/numeric/conversion/doc/html/images/callouts/13.png
   trunk/libs/numeric/conversion/doc/html/images/callouts/14.png
   trunk/libs/numeric/conversion/doc/html/images/callouts/15.png
   trunk/libs/numeric/conversion/doc/html/images/callouts/2.png
   trunk/libs/numeric/conversion/doc/html/images/callouts/3.png
   trunk/libs/numeric/conversion/doc/html/images/callouts/4.png
   trunk/libs/numeric/conversion/doc/html/images/callouts/5.png
   trunk/libs/numeric/conversion/doc/html/images/callouts/6.png
   trunk/libs/numeric/conversion/doc/html/images/callouts/7.png
   trunk/libs/numeric/conversion/doc/html/images/callouts/8.png
   trunk/libs/numeric/conversion/doc/html/images/callouts/9.png
   trunk/libs/numeric/conversion/doc/html/images/caution.png
   trunk/libs/numeric/conversion/doc/html/images/home.png
   trunk/libs/numeric/conversion/doc/html/images/important.png
   trunk/libs/numeric/conversion/doc/html/images/next.png
   trunk/libs/numeric/conversion/doc/html/images/note.png
   trunk/libs/numeric/conversion/doc/html/images/prev.png
   trunk/libs/numeric/conversion/doc/html/images/tip.png
   trunk/libs/numeric/conversion/doc/html/images/up.png
   trunk/libs/numeric/conversion/doc/html/images/warning.png
   trunk/libs/numeric/conversion/doc/index.html
   trunk/libs/numeric/conversion/doc/numeric_cast.html
   trunk/libs/numeric/conversion/doc/requirements.html
Text files modified: 
   trunk/libs/numeric/conversion/doc/html/boost_numericconversion/bounds___traits_class.html                            |    28 ++++---                                 
   trunk/libs/numeric/conversion/doc/html/boost_numericconversion/conversion_traits___traits_class.html                 |    44 +++-------                              
   trunk/libs/numeric/conversion/doc/html/boost_numericconversion/converter___function_object.html                      |    28 ++++---                                 
   trunk/libs/numeric/conversion/doc/html/boost_numericconversion/definitions.html                                      |   157 +++++++++++++++++++-------------------- 
   trunk/libs/numeric/conversion/doc/html/boost_numericconversion/improved_numeric_cast__.html                          |    26 +++--                                   
   trunk/libs/numeric/conversion/doc/html/boost_numericconversion/numeric_converter_policy_classes.html                 |    80 +++++++++-----------                    
   trunk/libs/numeric/conversion/doc/html/boost_numericconversion/type_requirements_and_user_defined_types_support.html |    30 ++++---                                 
   trunk/libs/numeric/conversion/doc/html/index.html                                                                    |    26 +++---                                  
   trunk/libs/numeric/conversion/doc/html/numeric_conversion/bibliography.html                                          |    26 +++--                                   
   trunk/libs/numeric/conversion/doc/html/numeric_conversion/history_and_acknowledgments.html                           |    30 ++++---                                 
   10 files changed, 237 insertions(+), 238 deletions(-)
Added: trunk/libs/numeric/conversion/doc/Jamfile.v2
==============================================================================
--- (empty file)
+++ trunk/libs/numeric/conversion/doc/Jamfile.v2	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
@@ -0,0 +1,30 @@
+# Boost.Numeric/Conversion
+#
+# Copyright (c) 2004-2007 Fernando Luis Cacciola Carballal
+#
+# 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)
+
+
+# Quickbook
+# -----------------------------------------------------------------------------
+
+import quickbook ;
+
+xml conversion
+    :
+        conversion.qbk
+    ;
+
+boostbook standalone
+    :
+        conversion
+    :
+        <xsl:param>boost.root=../../../../..
+        <xsl:param>boost.libraries=../../../../libraries.htm
+        <xsl:param>toc.max.depth=2
+        <xsl:param>toc.section.depth=2
+        <xsl:param>chunk.section.depth=1
+    ;
+
Deleted: trunk/libs/numeric/conversion/doc/bounds.html
==============================================================================
--- trunk/libs/numeric/conversion/doc/bounds.html	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
+++ (empty file)
@@ -1,109 +0,0 @@
-<HTML>
-  <HEAD>
-	 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-	 <LINK REL="stylesheet" TYPE="text/css" HREF="../../../../boost.css">
-         <TITLE>Boost Numeric Conversion Library - Bounds</TITLE>
-  </HEAD>
-  <BODY BGCOLOR="#FFFFFF" TEXT="#000000">
-	 <TABLE BORDER="0" CELLPADDING="7" CELLSPACING="0" WIDTH="100%"
-	  SUMMARY="header">
-		<TR>
-		  <TH VALIGN="top" WIDTH="300">
-			 <H3><A HREF="../../../../index.htm"><IMG HEIGHT="86" WIDTH="277"
-				ALT="C++ Boost" SRC="../../../../boost.png" BORDER="0"></A></H3> </TH> 
-		  <TH VALIGN="top"> 
-			 <H1 ALIGN="center">Boost Numeric Conversion Library</H1> 
-			 
-      <H1>Header <A
-				HREF="../../../../boost/numeric/conversion/bounds.hpp">boost/numeric/conversion/bounds.hpp</A></H1>
-    </TH>
-		</TR>
-	 </TABLE><HR>
-	 <H2>Contents</H2>
-	 <UL>
-		<LI>Introduction</LI>
-		<LI>template class bounds<N></LI>
-		<LI>Examples</LI>
-		<!--<LI>Implementation</LI>-->
-		<!--<LI>Portability</LI>-->
-	 </UL> <HR>
-	 <H2><A NAME="introduction">Introduction</A></H2>
-	 <P>To determine the ranges of numeric types with std:: numeric_limits
-		[18.2.1], different syntax have to be used depending on numeric type.
-		Specifically, numeric_limits<T>::min() for integral types returns the
-		minimum finite value, whereas for floating point types it returns the minimum
-		positive normalized value. The difference in semantics makes client code
-		unnecessarily complex and error prone. <BR> <BR>
-  boost::numeric::bounds<> provides a consistent interface for retrieving
-  the maximum finite value, the minimum finite value and the minimum positive
-  normalized value (0 for integral types) for numeric types. The selection of
-  implementation is performed at compile time, so there is no runtime overhead.
-  <BR>
-   <BR> </P> <HR>
-	 <H2><A NAME="bounds"><CODE>traits class bounds<N></CODE></A></H2>
-	 <BLOCKQUOTE>
-
-  <PRE>template<class N>
-struct bounds
-{
-  static N lowest  () { return <i>implementation_defined</i>; }
-  static N highest () { return <i>implementation_defined</i>; }
-  static N smallest() { return <i>implementation_defined</i>; }
-};</PRE>
-   </BLOCKQUOTE>
-	 <H3>Members</H3>
-	 <PRE>lowest()</PRE>
-	 <P>Returns the minimum finite value, equivalent to
-		numeric_limits<T>::min() when T is an integral type, and to
-		-numeric_limits<T>::max() when T is a floating point type. </P>
-	 <PRE>highest()</PRE>
-	 <P>Returns the maximum finite value, equivalent to
-		numeric_limits<T>::max(). </P>
-	 <PRE>smallest()</PRE>
-
-<P>Returns the smallest positive normalized value for floating point types with
-  denormalization, or returns 0 for integral types. <BR>
-   <BR>
-		</P> <HR>
-	 <H2><A NAME="examples">Examples</A></H2>
-
-<P>The following example demonstrates the use of numeric::bounds<> and the
-  equivalent code using numeric_limits: </P>
-
-<BLOCKQUOTE>
-  <PRE>#include <iostream>
-
-#include <boost/numeric/conversion/bounds.hpp>
-#include <boost/limits.hpp>
-
-int main() {
-
-  std::cout << "numeric::bounds versus numeric_limits example.\n";
-
-  std::cout << "The maximum value for float:\n";
-  std::cout << boost::numeric::bounds<float>::highest() << "\n";
-  std::cout << std::numeric_limits<float>::max() << "\n";
-
-  std::cout << "The minimum value for float:\n";
-  std::cout << boost::numeric::bounds<float>::lowest() << "\n";
-  std::cout << -std::numeric_limits<float>::max() << "\n";
-
-  std::cout << "The smallest positive value for float:\n";
-  std::cout << boost::numeric::bounds<float>::smallest() << "\n";
-  std::cout << std::numeric_limits<float>::min() << "\n";
-
-  return 0;
-}</PRE>
-   </BLOCKQUOTE>
-
-<hr>
-<P>Back to Numeric Conversion library index</P>
-<HR>
-<P>Revised 23 June 2004</P>
-<p>© Copyright Fernando Luis Cacciola Carballal, 2004</p>
-<p> Use, modification, and distribution are subject to the Boost Software
-License, Version 1.0. (See accompanying file <a href="../../../../LICENSE_1_0.txt">
-LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
-www.boost.org/LICENSE_1_0.txt</a>)</p>
-</BODY>
-</HTML>
\ No newline at end of file
Deleted: trunk/libs/numeric/conversion/doc/conversion_traits.html
==============================================================================
--- trunk/libs/numeric/conversion/doc/conversion_traits.html	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
+++ (empty file)
@@ -1,337 +0,0 @@
-<HTML>
-  <HEAD>
-	 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-	 <LINK REL="stylesheet" TYPE="text/css" HREF="../../../../boost.css">
-         <TITLE>Boost Numeric Conversion Library - Conversion Traits</TITLE>
-  </HEAD>
-  <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000ff" VLINK="#800080">
-	 <TABLE BORDER="0" CELLPADDING="7" CELLSPACING="0" WIDTH="100%"
-	  SUMMARY="header">
-		<TR>
-		  <TH VALIGN="top" WIDTH="300">
-			 <H3><A HREF="../../../../index.htm"><IMG HEIGHT="86" WIDTH="277"
-				ALT="C++ Boost" SRC="../../../../boost.png" BORDER="0"></A></H3> </TH>
-		  <TH VALIGN="top">
-			 <H1 ALIGN="center">Boost Numeric Conversion Library</H1>
-
-      <H1>Header <A
-				HREF="../../../../boost/numeric/conversion/conversion_traits.hpp">boost/numeric/conversion/conversion_traits.hpp</A></H1>
-			 </TH>
-		</TR>
-	 </TABLE> <HR>
-	 <H2>Contents</H2>
-	 <DL CLASS="page-index">
-           <DT>Types</DT>
-	 </DL>
-	 <UL>
-
-  <LI>enumeration boost::numeric::int_float_mixture_enum;</LI>
-  <LI>enumeration boost::numeric::sign_mixture_enum;</LI>
-  <LI>enumeration boost::numeric::udt_builtin_mixture_enum;</LI>
-  <LI>template class boost::numeric::int_float_mixture<T,S></LI>
-  <LI>template class boost::numeric::sign_mixture<T,S></LI>
-  <LI>template class boost::numeric::udt_builtin_mixture<T,S></LI>
-  <LI>template class boost::numeric::is_subranged<T,S></LI>
-  <LI>template class boost::numeric::conversion_traits<T,S></LI>
-	 </UL>
-	 <DL><DT>Example(s)</DT></DL>
-         <HR>
-
-<H2><A NAME="types"></A>Types</H2>
-
-<H2><CODE><A NAME="ncm">enumeration int_float_mixture</A>_enum</CODE></H2>
-
-<PRE>namespace boost { namespace numeric {
-
-  enum int_float_mixture_enum
-  {
-     integral_to_integral
-    ,integral_to_float
-    ,float_to_integral
-    ,float_to_float
-  } ;
-
-} } // namespace boost::numeric
-</PRE>
-
-<H2><CODE><A NAME="ncsm">enumeration sign_mixture</A>_enum</CODE></H2>
-
-<PRE>namespace boost { namespace numeric {
-
-enum sign_mixture_enum
-  {
-     unsigned_to_unsigned
-    ,signed_to_signed
-    ,signed_to_unsigned
-    ,unsigned_to_signed
-  } ;
-
-} } // namespace boost::numeric</PRE>
-
-<H2><CODE><A NAME="ncum">enumeration  udt_builtin_mixture</A>_enum</CODE></H2>
-
-<PRE>namespace boost { namespace numeric {
-
-  enum udt_builtin_mixture_enum
-  {
-     builtin_to_builtin
-    ,builtin_to_udt
-    ,udt_to_builtin
-    ,udt_to_udt
-  } ;
-
-} } // namespace boost::numeric</PRE>
-
-<hr>
-
-<H2><A NAME="ifm"><CODE>template class int_float_mixture<></CODE></A></H2>
-
-<PRE>namespace boost { namespace numeric {
-
-  template <class T, class S>
-  struct int_float_mixture : mpl::integral_c<int_float_mixture_enum, <i>impl-def-value</i>> {} ;
-
-} } // namespace boost::numeric
-</PRE>
-<p>Classifying <code>S</code> and <code>T</code> as either <code>integral</code>
-or <code>float</code>, this MPL's Integral Constant
-indicates the combination of these attributes. <br>
-Its <code>::value</code> is of enumeration type boost::numeric::int_float_mixture_enum
-</p>
-
-<hr>
-
-<H2><A NAME="sm"><CODE>template class sign_mixture<></CODE></A></H2>
-
-<PRE>namespace boost { namespace numeric {
-
-  template <class T, class S>
-  struct sign_mixture : mpl::integral_c<sign_mixture_enum, <i>impl-def-value</i>> {} ;
-
-} } // namespace boost::numeric
-</PRE>
-<p>Classifying <code>S</code> and <code>T</code> as either <code>signed</code>
-or <code>unsigned</code>, this MPL's Integral Constant
-indicates the combination of these attributes. <br>
-Its <code>::value</code> is of enumeration type boost::numeric::sign_mixture_enum
-</p>
-
-<hr>
-
-<H2><A NAME="ubm"><CODE>template class udt_builtin_mixture<></CODE></A></H2>
-
-<PRE>namespace boost { namespace numeric {
-
-  template <class T, class S>
-  struct udt_builtin_mixture : mpl::integral_c<udt_builtin__mixture_enum, <i>impl-def-value</i>> {} ;
-
-} } // namespace boost::numeric
-</PRE>
-<p>Classifying <code>S</code> and <code>T</code> as either <code>user-defined</code>
-or <code>builtin</code>, this MPL's Integral Constant
-indicates the combination of these attributes. <br>
-Its <code>::value</code> is of enumeration type boost::numeric::udt_builtin_mixture_enum
-</p>
-
-<hr>
-
-<H2><A NAME="isr"><CODE>template class is_subranged<></CODE></A></H2>
-
-<PRE>namespace boost { namespace numeric {
-
-  template <class T, class S>
-  struct is_subranged : mpl::bool_<<i>impl-def-value</i>> {} ;
-
-} } // namespace boost::numeric
-</PRE>
-<p>Indicates if the range of the target type T is a subset of the range of the source type S.
-That is: if there are some source values which fall out of the Target type's range.<br>
-It is a boolean MPL's Integral Constant..<br>
-It does not indicate if
-a <i>particular</i> conversion is effectively out of range; it indicates that
-some conversion <i>might be</i> out of range because not all the source values
-are representable as Target type.</p>
-
-<hr>
-
-<H2><A NAME="nct"><CODE>template class conversion_traits<></CODE></A></H2>
-
-<PRE>namespace boost { namespace numeric {
-
-
-  template <class T, class S>
-  struct conversion_traits
-  {
-    mpl::integral_c<int_float_mixture_enum  , ...> int_float_mixture ;
-    mpl::integral_c<sign_mixture_enum       , ...> sign_mixture;
-    mpl::integral_c<udt_builtin_mixture_enum, ...> udt_builtin_mixture ;
-
-    mpl::bool_<...> subranged ;
-    mpl::bool_<...> trivial ;
-
-    typedef T target_type   ;
-    typedef S source_type   ;
-    typedef ... argument_type ;
-    typedef ... result_type   ;
-    typedef ... supertype     ;
-    typedef ... subtype       ;
-  } ;
-
-} } // namespace numeric, namespace boost
-</PRE>
-<BLOCKQUOTE>
-
-  <P>This traits class indicates some properties of a <i>numeric conversion direction</i>:
-    from a source type <code>S</code> to a target type <code>T</code>. It does not indicate the properties of
-    a <i>specific</i> conversion, but of the conversion <i>direction</i>. See
-    Definitions for details.<br>
-  </P>
-
-  <P>The traits class provides the following
-     MPL's Integral Constants
-     of enumeration type. They express the <i>combination</i> of certain attributes of the Source and
-    Target types (thus they are call <i>mixture</i>):</P>
-		<TABLE BORDER="1">
-		  <TR>
-			 <TD> <CODE><B>int_float_mixture</B></CODE> </TD>
-
-      <TD>
-        <P>Same as given by the traits class int_float_mixture</P>
-      </TD>
-		  </TR>
-		  <TR>
-			 <TD> <CODE><B>sign_mixture</B></CODE> </TD>
-
-      <TD>
-        <P>Same as given by the traits class sign_mixture</P>
-      </TD>
-		  </TR>
-		  <TR>
-			 <TD> <CODE><B>udt_builtin_mixture</B></CODE> </TD>
-
-      <TD>
-        <P>Same as given by the traits class udt_builtin_mixture</P>
-      </TD>
-		  </TR>
-		</TABLE>
-
-  <P>The traits class provides the following
-     MPL's Integral Constants
-    of boolean type which indicates indirectly the relation between the Source and Target
-    <i>ranges</i>
-    (see Definitions for details).</P>
-		<TABLE BORDER="1">
-		  <TR>
-			 <TD> <CODE> <B>subranged</B></CODE> </TD>
-
-      <TD>
-        <P>Same as given by is_subranged</P>
-      </TD>
-		  </TR>
-		  <TR>
-			 <TD> <CODE> <B>trivial</B></CODE> </TD>
-
-      <TD>
-        <P>Indicates if both Source and Target, <u>without cv-qualifications</u>, are
-          the same type.<br>
-          Its <code>::value</code> is of boolean type.</P>
-      </TD>
-		  </TR>
-		</TABLE>
-
-  <P>The traits class provides the following types. They are the Source and Target
-    types classified and qualified for different purposes.</P>
-
-  <TABLE BORDER="1" width="720">
-    <TR>
-			 <TD> <CODE><B>target_type</B></CODE> </TD>
-			 <TD>
-
-        <P>The template parameter <CODE>T</CODE><EM> without cv-qualifications</EM></P>
-      </TD>
-		  </TR>
-		  <TR>
-			 <TD> <CODE><B>source_type</B></CODE> </TD>
-			 <TD>
-
-        <P>The template parameter <CODE>S</CODE><EM> without cv-qualifications</EM></P>
-      </TD>
-		  </TR>
-		  <TR>
-			 <TD> <CODE><B>argument_type</B></CODE> </TD>
-			 <TD>
- 		<P>This type is either <CODE>source_type</CODE> or <CODE>source_type
-const&</CODE>. <BR> It represents the <I>optimal</I> argument type for the
- 		  converter member functions.<BR>
-          If <CODE>S</CODE> is a built-in type, this is <CODE>source_type</CODE>,
-          otherwise, this is <CODE>source_type const&</CODE>. </P>
-      </TD>
-		  </TR>
-		  <TR>
-			 <TD> <CODE><B>result_type</B></CODE></TD>
-			 <TD>
-				<P>This type is either <CODE>target_type</CODE> or <CODE>target_type
-const&</CODE> <BR> It represents the return type of the
-				  converter member functions.<BR>
-          If <CODE>T==S</CODE>, it is <CODE>target_type const&</CODE>, otherwise,
-          it is <CODE>target_type</CODE>.</P>
-      </TD>
-		  </TR>
-		  <TR>
-
-      <TD height="37"> <CODE><B>supertype</B></CODE></TD>
-
-      <TD height="37">
-        <P>If the conversion is <CODE>subranged</CODE>, it is <CODE>source_type</CODE>,
-          otherwise, it is <CODE>target_type</CODE></P>
-      </TD>
-		  </TR>
-		  <TR>
-			 <TD> <CODE><B>subtype</B></CODE></TD>
-      <TD height="37">
-        <P>If the conversion is <CODE>subranged</CODE>, it is <CODE>target_type</CODE>,
-          otherwise, it is <CODE>source_type</CODE></P>
-      </TD>
-		  </TR>
-		</TABLE> </BLOCKQUOTE> <HR>
-
-<H2><A NAME="examples">Examples</A></H2>
-<BLOCKQUOTE>
-  <PRE>#include <cassert>
-#include <typeinfo>
-#include <boost/numeric/conversion/conversion_traits.hpp>
-
-int main()
-{
-
-  // A trivial conversion.
-  typedef boost::numeric::conversion_traits<short,short> Short2Short_Traits ;
-  assert ( Short2Short_Traits::trivial::value ) ;
-
-  // A subranged conversion.
-  typedef boost::numeric::conversion_traits<double,unsigned int> UInt2Double_Traits ;
-  assert (  UInt2Double_Traits::int_float_mixture::value == boost::numeric::integral_to_float ) ;
-  assert (  UInt2Double_Traits::sign_mixture::value == boost::numeric::unsigned_to_signed ) ;
-  assert ( !UInt2Double_Traits::subranged::value ) ;
-  assert ( typeid(UInt2Double_Traits::supertype) == typeid(double) ) ;
-  assert ( typeid(UInt2Double_Traits::subtype) == typeid(unsigned int) ) ;
-
-  // A doubly subranged conversion.
-  assert ( (boost::numeric::conversion_traits<short, unsigned short>::subranged::value) );
-  assert ( (boost::numeric::conversion_traits<unsigned short, short>::subranged::value) );
-
-  return 0;
-}
-</PRE>
-   </BLOCKQUOTE>
-<HR>
-<P>Back to Numeric Conversion library index</P>
-<HR>
-<P>Revised 16 May 2005</P>
-<p>© Copyright Fernando Luis Cacciola Carballal, 2004</p>
-<p> Use, modification, and distribution are subject to the Boost Software
-License, Version 1.0. (See accompanying file <a href="../../../../LICENSE_1_0.txt">
-LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
-www.boost.org/LICENSE_1_0.txt</a>)</p>
-</BODY>
-</HTML>
\ No newline at end of file
Deleted: trunk/libs/numeric/conversion/doc/converter.html
==============================================================================
--- trunk/libs/numeric/conversion/doc/converter.html	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
+++ (empty file)
@@ -1,279 +0,0 @@
-<HTML>
-
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<LINK REL="stylesheet" TYPE="text/css" HREF="../../../../boost.css">
-<TITLE>Boost Numeric Conversion Library - Policy-based Converter</TITLE>
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000ff" VLINK="#800080">
-<TABLE BORDER="0" CELLPADDING="7" CELLSPACING="0" WIDTH="100%"
- SUMMARY="header">
-<TR>
-<TD VALIGN="top" WIDTH="300"> <H3><A HREF="http://www.boost.org"><IMG
-HEIGHT="86" WIDTH="277" ALT="C++ Boost" SRC="../../../../boost.png"
-BORDER="0"></A> </H3>
-</TD>
-<TD VALIGN="top"> <H1 ALIGN="center">Boost Numeric Conversion Library</H1>
-      <H1>Header <A
-HREF="../../../../boost/numeric/conversion/converter.hpp">boost/numeric/conversion/converter.hpp</A></H1>
-</TD>
-</TR>
-</TABLE>
-<HR>
-<H2>Contents</H2>
-<DT>Synopsis</DT>
-<DT>User Defined Types support</DT>
-<DT>Range Checking Logic</DT>
-<DT>Examples</DT>
-
-<HR>
-<H2><A NAME="synopsis">Synopsis</A></H2>
-<PRE>namespace boost { namespace numeric {
-
-
-template<class T,
-         class S,
-         class Traits,          = conversion_traits<T,S>
-         class OverflowHandler  = def_overflow_handler,
-         class Float2IntRounder = Trunc< typename Traits::source_type >,
-         class RawConverter     = raw_converter<Traits>,
-         class UserRangeChecker = UseInternalRangeChecker
-        >
-struct converter
-{
-  typedef Traits traits ;
-
-  typedef typename Traits::source_type   source_type   ;
-  typedef typename Traits::argument_type argument_type ;
-  typedef typename Traits::result_type   result_type   ;
-
-  static result_type convert ( argument_type s ) ;
-
-  result_type operator() ( argument_type s ) const ;
-
-  // Internal member functions:
-
-    static range_check_result out_of_range      ( argument_type s ) ;
-    static void               validate_range    ( argument_type s ) ;
-    static result_type        low_level_convert ( argument_type s ) ;
-    static source_type        nearbyint         ( argument_type s ) ;
-
-} ;
-
-} } // namespace numeric, boost
-</PRE>
-
-<P><code>boost::numeric::converter<></code> is a
-Unary Function Object
-encapsulating the code to perform a numeric conversion with the direction and properties specified
-  by the <CODE>Traits</CODE> template parameter. It can optionally take some
-  policies
-  which can be used to customize its behavior. The Traits parameter is not a policy but
-  the parameter that defines the conversion.
-</P>
-<hr>
-<h2>Template parameters:</h2>
-<TABLE BORDER="1">
-  <TR>
-    <TD> T</TD>
-    <TD> The Numeric Type which is 
-    the <i>Target</i> of the conversion.</TD>
-  </TR>
-  <TR>
-    <TD> S</TD>
-    <TD> The Numeric Type which is 
-    the <i>Source</i> of the conversion.</TD>
-  </TR>
-  <TR>
-    <TD> <CODE>Traits</CODE> </TD>
-    <TD> This must be a conversion traits class with the interface of
-     boost::numeric::conversion_traits
-    </TD>
-  </TR>
-  <TR>
-    <TD> OverflowHandler </TD>
-    <TD> <B>Stateless Policy</B> called to administrate the result of the
-      range checking.<br>
-       It is a <b>Function Object</b> which receives the result of <CODE>out_of_range()</CODE>
-      and is called inside the <CODE>validate_range()</CODE> static member function
-      exposed by the converter.</TD>
-  </TR>
-  <TR>
-    <TD> Float2IntRounder </TD>
-    <TD> <B>Stateless Policy</B> which specifies the rounding mode used for
-      float to integral conversions.<br>
-       It supplies the <CODE>nearbyint()</CODE> static member function exposed
-      by the converter.</TD>
-  </TR>
-  <TR>
-    <TD> RawConverter </TD>
-    <TD> <B>Stateless Policy</B> which is used to perform the actual conversion.
-      <br>
-       It supplies the<CODE> low_level_convert()</CODE> static member function
-      exposed by the converter.</TD>
-  </TR>
-  <TR>
-    <TD> UserRangeChecker </TD>
-    <TD><i>Special and Optional</i> <b>Stateless Policy</b> which can be used to override
-      the internal range checking logic.<br>
-      If given, supplies alternative code for the out_of_range() and validate_range()
-      static member functions exposed by the converter.</TD>
-  </TR>
-</TABLE>
-<br>
-<hr>
-<h2>Member functions:</h2>
-<P><CODE>static result_type converter<>::convert ( argument_type s ) ; //
-  throw</CODE></P>
-<BLOCKQUOTE>
-  <P>This static member function converts an rvalue of type source_type to an rvalue
-    of type target_type.<BR>
-    If the conversion requires it, it performs a range checking before the conversion
-    and passes the result of the check to the overflow handler policy (the default
-    policy throws an exception if out-of-range is detected)<BR>
-    The implementation of this function is actually built from the policies and
-    is basically as follows:</P>
-  <PRE>   result_type converter<>::convert ( argument_type s )
-   {
-     validate_range(s); // Implemented by the internal range checking logic
-                        // (which also calls the OverflowHandler policy)
-                        // or externally supplied by the UserRangeChecker policy.
-
-     s = nearbyint(s); // Externally supplied by the Float2IntRounder policy.
-                       // NOTE: This is actually called only for float to int conversions.
-
-     return low_level_convert(s); // Externally supplied by the RawConverter policy.
-   }
-</PRE>
-
-  <P>"converter<>::operator() const" just calls <CODE>convert()</CODE></P>
-</BLOCKQUOTE>
-<P><CODE>static range_check_result numeric_converter<>::out_of_range (
-argument_type s ) ;</CODE></P>
-<BLOCKQUOTE>
-  <P>This internal static member function determines if the
-    value 's' can be represented by the target type without overflow. <BR>
-    It does not determine if the conversion is <EM>exact</EM>; that is, it does
-    not detect <i>inexact</i> conversions, only <i>out-of-range</i> conversions
-    (see the Definitions for further details).<BR>
-    The return value is of enum type
-    boost::numeric::range_check_result<BR>
-    The actual code for the range checking logic is optimized for the combined
-    properties of the source and target types. For example, a non-subranged conversion
-    (i.e: int->float), requires no range checking, so out_of_range() returns
-    cInRange directly. See the following table for more
-    details.<br>
-    If the user supplied a UserRangeChecker
-    policy, is this policy which implements this function, so the implementation
-    is user defined, although it is expected to perform the same conceptual check
-    and return the appropriate result.</P>
-</BLOCKQUOTE>
-<P><CODE>static void numeric_converter<>::validate_range ( argument_type
-s ) ; // no throw</CODE></P>
-<BLOCKQUOTE>
-  <P>This internal static member function calls <CODE>out_of_range(s)</CODE>,
-    and passes the result to the <A
-HREF="converter_policies.html#oh"><CODE>OverflowHandler</CODE></A> policy class
-    <BR>
-    For those Target/Source combinations which don't require range checking, this
-    is an <U>empty inline function</U>.<br>
-    If the user supplied a UserRangeChecker
-    policy, is this policy which implements this function, so the implementation
-    is user defined, although it is expected to perform the same action as the
-    default. In particular, it is expected to pass the result of the check to
-    the overflow handler.</P>
-</BLOCKQUOTE>
-<P><CODE>static result_type numeric_converter<>::low_level_convert (
-argument_type s ) ;</CODE></P>
-<BLOCKQUOTE>
-  <P>This internal static member function performs the actual
-    conversion.<BR>
-This function is externally supplied by the <A
-HREF="converter_policies.html#rawc"><CODE>RawConverter</CODE></A> policy class.</P>
-</BLOCKQUOTE>
-<P><CODE>static source_type converter<>::nearbyint (
-argument_type s ) ;</CODE></P>
-<BLOCKQUOTE>
-  <P>This internal static member function, which is <U>only
-    used</U> for float to int conversions, returns an <I>integer value of <U>floating-point
-    type</U></I> according to some rounding direction. <BR>
-    This function is externally supplied by the <A
-HREF="converter_policies.html#f2i"><CODE>Float2IntRounder</CODE></A> policy class
-    which encapsulates the specific rounding mode.</P>
-</BLOCKQUOTE>
-<hr>
-<P><A NAME="int"><B>Internal Member Functions</B>:</A> These static member functions
-  build the actual conversion code used by <CODE>convert()</CODE>. The user does
-  not have to call these if calling convert(), since convert() calls them infernally,
-  but they can be called separately for specific needs.</P>
-<hr>
-<H2><A NAME="rchklogic">Range Checking Logic</A></H2>
-<P>The Following table summarizes the internal range checking logic performed
-  for each combination of the properties of Source and Target.<br>
-  LowestT/HighestT denotes the highest and lowest values of the Target type, respectively.<br>
-  S(n) is short for "static_cast<S>(n)" (S denotes the Source
-  type).<br>
-  "NONE" indicates that for this case there is no range checking.</P>
-<Pre>  int_to_int    |--> sig_to_sig     |--> subranged     |--> ( s >= S(LowestT) ) && ( s <= S(HighestT) )
-                |                   |--> not subranged |--> NONE
-                |
-                |--> unsig_to_unsig |--> subranged     |--> ( s >= S(LowestT) ) && ( s <= S(HighestT) )
-                |                   |--> not subranged |--> NONE
-                |
-                |--> sig_to_unsig   |--> pos subranged     |--> ( s >= S(0) ) && ( s <= S(HighestT) )
-                |                   |--> not pos subranged |--> ( s >= S(0) )
-                |
-                |--> unsig_to_sig   |--> subranged     |--> ( s <= S(HighestT) )
-                |                   |--> not subranged |--> NONE
-
- int_to_float   |--> NONE
-
- float_to_int   |--> round_to_zero         |--> ( s >  S(LowestT)-S(1)   ) && ( s <  S(HighestT)+S(1)   )
-                |--> round_to_even_nearest |--> ( s >= S(LowestT)-S(0.5) ) && ( s <  S(HighestT)+S(0.5) )
-                |--> round_to_infinity     |--> ( s >  S(LowestT)-S(1)   ) && ( s <= S(HighestT)        )
-                |--> round_to_neg_infinity |--> ( s >= S(LowestT)        ) && ( s <  S(HighestT)+S(1)   )
-
- float_to_float |--> subranged     |--> ( s >= S(LowestT) ) && ( s <= S(HighestT) )
-                |--> not subranged |--> NONE
-
-</Pre>
-<HR>
-<H2><A NAME="examples">Examples</A></H2>
-<BLOCKQUOTE>
-  <PRE>  #include <cassert>
-  #include <boost/numeric/conversion/converter.hpp>
-
-  int main() {
-
-  typedef boost::numeric::converter<int,double> Double2Int ;
-
-  int x = Double2Int::convert(2.0);
-  assert ( x == 2 );
-
-  int y = Double2Int()(3.14); // As a function object.
-  assert ( y == 3 ) ; // The default rounding is trunc.
-
-  try
-  {
-    double m = boost::numeric::bounds<double>::highest();
-    int z = Double2Int::convert(m); // By default throws positive_overflow()
-  }
-  catch ( boost::numeric::positive_overflow const& )
-  {
-  }
-
-  return 0;
-}</PRE>
-   </BLOCKQUOTE>
-<HR>
-<P>Back to Numeric Conversion library index</P>
-<HR>
-<P>Revised 16 May 2005</P>
-<p>© Copyright Fernando Luis Cacciola Carballal, 2004</p>
-<p> Use, modification, and distribution are subject to the Boost Software
-License, Version 1.0. (See accompanying file <a href="../../../../LICENSE_1_0.txt">
-LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
-www.boost.org/LICENSE_1_0.txt</a>)</p>
-</BODY>
-</HTML>
\ No newline at end of file
Deleted: trunk/libs/numeric/conversion/doc/converter_policies.html
==============================================================================
--- trunk/libs/numeric/conversion/doc/converter_policies.html	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
+++ (empty file)
@@ -1,466 +0,0 @@
-<HTML>
-
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<LINK REL="stylesheet" TYPE="text/css" HREF="../../../../boost.css">
-<TITLE>Boost Numeric Conversion Library - Converter Policies</TITLE>
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000ff" VLINK="#800080">
-<TABLE BORDER="0" CELLPADDING="7" CELLSPACING="0" WIDTH="100%"
- SUMMARY="header">
-<TR>
-<TD VALIGN="top" WIDTH="300"> <H3><A HREF="http://www.boost.org"><IMG
-HEIGHT="86" WIDTH="277" ALT="C++ Boost" SRC="../../../../boost.png"
-BORDER="0"></A> </H3>
-</TD>
-<TD VALIGN="top"> <H1 ALIGN="center">Boost Numeric Conversion Library</H1>
-      <H1>Header <A
-HREF="../../../../boost/numeric/conversion/converter_policies.hpp">boost/numeric/conversion/converter_policies.hpp</A></H1>
-</TD>
-</TR>
-</TABLE>
-<HR>
-<H2>Contents</H2>
-<ol>
-<LI>enumeration range_check_result </LI>
-<LI>Policy OverflowHandler
-<UL>
-<LI>class silent_overflow_handler</LI>
-<LI>class def_overflow_handler (Default Policy)</LI>
-<ul>
-<LI>class <CODE> bad_numeric_cast</CODE> (see IMPORTANT note)</LI>
-<LI>class negative_overflow</LI>
-<LI>class positive_overflow</LI>
-</ul>
-</UL>
-</LI>
-<LI>Policy FloatToIntRounder <UL>
-<LI>class Trunc<T> (Default Policy)</LI>
-<LI>class RoundEven<T></LI>
-<LI>class Ceil<T></LI>
-<LI>class Floor<T></LI>
-</UL>
-</LI>
-<LI>Policy RawConverter<UL>
-      <LI>class raw_converter class (Default)</LI>
-</UL>
-</LI>
-<LI>Policy UserRangeChecker<UL>
-      <LI>class UseInternalRangeChecker class (Default)</LI>
-</UL>
-</LI>
-</ol>
-
-<HR>
-<H2><A NAME="types">Types</A></H2>
-<H2><A NAME="rcr"><CODE>enum range_check_result</CODE></A></H2>
-<PRE>namespace boost { namespace numeric {
-
-
-
-
-
-  enum range_check_result
-
-  {
-
-    cInRange     ,
-
-    cNegOverflow ,
-
-    cPosOverflow
-
-  } ;
-
-
-
-
-
-} }</PRE>
-
-<P>Defines the values returned by <CODE>boost::numeric::converter<>::out_of_range()</CODE>
-</P>
-<HR>
-<H2><A NAME="oh">Policy <CODE>OverflowHandler</CODE></A></H2>
-<P>This <EM>stateless</EM> non-template policy class must be a <I>function object</I>
-  and is called to administrate the result of the range checking. It can throw
-  an exception if overflow has been detected by the range checking as indicated
-  by its argument. If it throws, is is recommended that it be <CODE>std::bad_cast</CODE>
-  or derived.</P>
-<P>It must have the following interface (it does not has to be a template class):</P>
-<PRE>  struct YourOverflowHandlerPolicy
-
-  {
-
-    void operator() ( boost::range_check_result ) ; // throw bad_cast or derived
-
-  } ;
-
-</PRE>
-<P>It is called with the result of the converter's <CODE>out_of_range()</CODE>
-  inside <CODE>validate_range()</CODE>.</P>
-<P>These are the two overflow handler classes provided by the
-library:</P>
-<PRE>namespace boost { namespace numeric {
-
-
-
-
-
-  struct <A NAME="oh_def">def_overflow_handler</a>
-
-  {
-
-    void operator() ( range_check_result r ) // throw bad_numeric_conversion derived
-
-    {
-
-      if ( r == cNegOverflow )
-
-        throw negative_overflow() ;
-
-      else if ( r == cPosOverflow )
-
-             throw positive_overflow() ;
-
-    }
-
-  } ;
-
-
-
-  struct <A NAME="oh_silent">silent_overflow_handler</a>
-
-  {
-
-    void operator() ( range_check_result ) // no-throw
-
-      {}
-
-  } ;
-
-
-
-} }
-
-</PRE>
-
-<P>And these are the Exception Classes thrown by the default
-overflow handler (see IMPORTANT note)</P>
-<PRE>namespace boost { namespace numeric {
-
-
-
-
-
-  class <a name="bad_numc">bad_numeric_cast</a> : public std::bad_cast
-
-  {
-
-    public:
-
-
-
-      virtual const char *what() const // throw()
-
-        {  return "bad numeric conversion: overflow"; }
-
-  };
-
-
-
-  class <a name="negovr">negative_overflow</a> : public bad_numeric_cast
-  {
-
-    public:
-
-
-
-      virtual const char *what() const // throw()
-
-        {  return "bad numeric conversion: negative overflow"; }
-
-  };
-
-  class <a name="posovr">positive_overflow</a> : public bad_numeric_cast
-  {
-
-    public:
-
-
-
-      virtual const char *what() const // throw()
-
-        { return "bad numeric conversion: positive overflow"; }
-
-  };
-
-} }
-
-</PRE>
-
-<a name="x-note"><p><b>IMPORTANT RELEASE NOTE for 1.33</b></p></a>
-<blockquote>
-  <p>Previous to boost version 1.33, the exception class <code>bad_numeric_cast</code> was 
-  named <code>bad_numeric_conversion</code>. However, in 1.33, the old function 
-  <code>numeric_cast<></code> from <code>boost/cast.hpp</code> was completly replaced by the new 
-  <code>numeric_cast<></code> in <code>boost/numeric/conversion/cast.hpp</code> 
-  (and <code>boost/cast.hpp</code> is including <code>boost/numeric/conversion/cast.hpp</code> now). That old function which 
-  existed in boost for quite some time used the <code>bad_numeric_cast</code> as its 
-  exception type so I decided to avoid backward compatibility problems by adopting it (guessing 
-  that the user base for the old code is wider than for the new code).</p>
-</blockquote>
-
-<HR>
-<H2><A NAME="f2i">Policy <CODE>FloatToIntRounder</CODE></A></H2>
-<P>This <EM>stateless</EM> template policy class specifies the rounding mode used
-  for<U> float to integral</U> conversions. It supplies the <CODE>"nearbyint()"</CODE>
-  static member function exposed by the converter, which means that it <U>publicly
-  inherits from this policy.</U></P>
-<P>The policy must have the following interface:</P>
-<PRE>  template<class S>
-
-  struct YourFloat2IntRounderPolicy
-
-  {
-
-    typedef S               source_type ;
-
-    typedef <I>{S or S const&}</I> argument_type ;
-
-
-
-    static source_type nearbyint ( argument_type s ) { ... }
-
-
-
-    typedef mpl::integral_c<std::float_round_style,std::<i>round_...</i>> round_style ;
-
-  } ;
-
-</PRE>
-
-<P>These are the rounder classes provided by the library:</P>
-
-<BLOCKQUOTE>
-  <P><EM>NOTE: These classes are not intended to be general purpose rounding functions
-    but specific policies for converter<>. This is why <U>they are not function
-    objects</U>.</EM></P>
-  <P>(only the specific parts are shown, see the general policy form above)</P>
-  <PRE>namespace boost { namespace numeric {
-
-
-
-  <A NAME="trunc"></A>template<class S>
-
-  struct Trunc
-
-  {
-
-    static source_type nearbyint ( argument_type s )
-
-      {
-
-        using std::floor ;
-
-        using std::ceil  ;
-
-        return s >= static_cast<S>(0) ? floor(s) : ceil(s) ;
-
-      }
-
-
-
-    typedef mpl::integral_c<std::float_round_style,std::round_toward_zero> round_style ;
-
-  } ;
-
-  </PRE>
-  <PRE>  <A NAME="round"></A>template<class S>
-
-  struct RoundEven
-
-  {
-
-    static source_type nearbyint ( argument_type s )
-
-      {
-
-        return <i>impl-defined-value</i> ;
-
-      }
-
-
-
-      typedef mpl::integral_c<std::float_round_style,std::round_to_nearest> round_style ;
-
-  } ;
-
-</PRE>
-<PRE>  <A NAME="ceil"></A>template<class S>
-
-  struct Ceil
-
-  {
-
-    static source_type nearbyint ( argument_type s )
-
-    {<br>      using std::ceil ;<br>      return ceil(s) ;<br>    }
-
-
-
-    typedef mpl::integral_c<std::float_round_style,std::round_toward_infinity> round_style ;
-
-  } ;
-
-</PRE>
-<PRE>  <A NAME="floor"></A>template<class S>
-
-  struct Floor
-
-  {
-
-    static source_type nearbyint ( argument_type s )
-
-    {<br>      using std::floor ;<br>      return floor(s) ;<br>    }
-
-
-
-    typedef mpl::integral_c<std::float_round_style,std::round_toward_neg_infinity> round_style ;
-
-  } ;
-
-
-
-} } // namespace numeric, namespace boost</PRE>
-
-</BLOCKQUOTE>
-<H3>Math Functions used by the rounder policies</H3>
-<P>The rounder policies supplied by this header use math functions floor() and
-  ceil(). The standard versions of these functions are introduced in context by
-  a using directive, so in normal conditions, the standard functions will be used.
-  <br>
-  However, if there are other visible corresponding overloads an ambiguity could
-  arise. In this case, the user can supply her own rounder policy which could,
-  for instance, use a fully qualified call.<br>
-  This technique allows the default rounder policies to be used directly with
-  user defined types. The user only requires that suitable overloads of floor()
-  and ceil() be visible. See also User Defined Numeric Types support<br>
-</P>
-<HR>
-<H2><A NAME="rawc">Policy <CODE>RawConverter</CODE></A></H2>
-<P>This <EM>stateless</EM> template policy class is used to perform the actual
-  conversion from Source to Target. It supplies the <CODE>"low_level_convert()"</CODE>
-  static member function exposed by the converter, which means that it <U>publicly
-  inherits from this policy.</U></P>
-<P>The policy must have the following interface:</P>
-<PRE>  template<class Traits>
-
-  struct YourRawConverterPolicy
-
-  {
-
-    typedef typename Traits::result_type   result_type   ;
-
-    typedef typename Traits::argument_type argument_type ;
-
-
-
-    static result_type low_level_convert ( argument_type s ) { return <I><impl defined></I> ; }
-
-  } ;
-
-</PRE>
-
-<P>This policy is mostly provided as a hook for user defined types which don't
-  support <CODE>static_cast<></CODE> conversions to some types</P>
-
-<P>This is the only raw converter policy class provided
-by the library:</P>
-<PRE>namespace boost { namespace numeric {
-
-
-
-
-
-  template<class Traits>
-
-  struct <A NAME="rawnumc">raw_numeric_converter</A>
-
-  {
-
-    typedef typename Traits::result_type   result_type   ;
-
-    typedef typename Traits::argument_type argument_type ;
-
-
-
-    static result_type low_level_convert ( argument_type s )
-
-      { return static_cast<result_type>(s) ; }
-
-  } ;
-
-
-
-}
-
-</PRE>
-
-<HR>
-<H2><A NAME="rc">Policy <CODE>UserRangeChecker</CODE></A></H2>
-<P>This <EM>stateless</EM> template policy class is used -<u>only if supplied</u>-
-  to <b>override</b> the internal range checking logic.<br>
-  It supplies the <CODE>"validate_range()"</CODE> static member function
-  exposed by the converter, which means that it <U>publicly inherits from this
-  policy.</U></P>
-<P>The policy must have the following interface:</P>
-<PRE>  template<class Traits>
-
-  struct YourRangeCheckerPolicy
-
-  {
-
-     typedef typename Traits::argument_type argument_type ;
-
-
-
-     // Determines if the value 's' fits in the range of the Target type.
-
-     static range_check_result out_of_range ( argument_type s ) ;
-
-
-
-     // Checks whether the value 's' is out_of_range()
-
-     // and passes the result of the check to the OverflowHandler policy.
-
-     static void validate_range ( argument_type s )
-
-       {
-
-         OverflowHandler()( out_of_range(s) ) ;
-
-       }
-
-  } ;
-
-</PRE>
-<P>This policy is <b>only</b> provided as a hook for user defined types which
-  require range checking (which is disabled by default when a UDT is involved).<br>
-  The library provides a class: <A NAME="int_rc"><code>UseInternalRangeChecker{};</code></a> which
-  is a <i>fake</i> RangeChecker policy used to signal the converter to use its
-  internal range checking implementation.
-</P>
-<HR>
-<P>Back to Numeric Conversion library index</P>
-<HR>
-<P>Revised 23 June 2004</P>
-<p>© Copyright Fernando Luis Cacciola Carballal, 2004</p>
-<p> Use, modification, and distribution are subject to the Boost Software
-License, Version 1.0. (See accompanying file <a href="../../../../LICENSE_1_0.txt">
-LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
-www.boost.org/LICENSE_1_0.txt</a>)</p>
-</BODY>
-</HTML>
\ No newline at end of file
Deleted: trunk/libs/numeric/conversion/doc/definitions.html
==============================================================================
--- trunk/libs/numeric/conversion/doc/definitions.html	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
+++ (empty file)
@@ -1,471 +0,0 @@
-<HTML>
-  <HEAD>
-	 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-	 <LINK REL="stylesheet" TYPE="text/css" HREF="../../../../boost.css">
-         <TITLE>Boost Numeric Conversion Library - Definitions</TITLE>
-  </HEAD>
-  <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000ff" VLINK="#800080">
-	 <TABLE BORDER="0" CELLPADDING="7" CELLSPACING="0" WIDTH="100%"
-	  SUMMARY="header">
-		<TR>
-		  <TH VALIGN="top" WIDTH="300">
-			 <H3><A HREF="../../../../index.htm"><IMG HEIGHT="86" WIDTH="277"
-				ALT="C++ Boost" SRC="../../../../boost.png" BORDER="0"></A></H3> </TH>
-		  <TH VALIGN="top">
-			 <H1 ALIGN="center">Boost Numeric Conversion Library</H1>
-			 <H1 ALIGN="center">Definitions</H1>
-                   </TH>
-		</TR>
-	 </TABLE>
-         <HR>
-	 <H2>Contents</H2>
-	 <DL CLASS="page-index">
-           <dt>Introduction</dt>
-           <dt>Types and Values</dt>
-           <dt>C++ Arithmetic Types</dt>
-           <dt>Numeric Types</dt>
-           <dt>Range and Precision</dt>
-           <dt>Exact, Correctly Rounded and Out-Of-Range Representations</dt>
-           <dt>Standard (numeric) Conversions</dt>
-           <dt>Subranged Conversion Direction, Subtype and Supertype</dt>
-	 </DL>
-
-
-
-<h2><A NAME="intro">Introduction</A></h2>
-<P>This section provides definitions of terms used in the Numeric Conversion library.</p>
-<p><b>Notation:</b>
-<li><u>underlined text</u> denotes terms defined in the C++ standard.</li>
-<li><b>bold face</b> denotes terms defined here but not in the standard.</li>
-<p></p>
-
-
-
-<hr>
-<h2><A NAME="typeval">Types and Values</A></h2>
-<p>As defined by the <u>C++ Object Model</u> (§1.7) the <u>storage</u> or
-  memory on which a C++ program runs is a contiguous sequence of <u>bytes</u>
-  where each byte is a contiguous sequence of <u>bits</u>.<br>
-  An <u>object</u> is a region of storage (§1.8) and has a type (§3.9).<br>
-  A <u>type</u> is a discrete set of values. <br>
-  An object of type T has an <u>object representation</u> which is the sequence
-  of bytes stored in the object (§3.9/4)<br>
-  An object of type T has a <u>value representation</u> which is the set of bits
-  that determine the <i>value</i> of an object of that type (§3.9/4). For
-  <u>POD</u> types (§3.9/10), this bitset is given by the object representation,
-  but not all the bits in the storage need to participate in the value representation
-  (except for character types): for example, some bits might be used for padding
-  or there may be trap-bits.</p>
-<p>The <b>typed value</b> that is held by an object is
-the value which is determined by its value representation.<br>
-An <b>abstract value</b> (untyped) is
-the conceptual information that is represented in a type
-(i.e. the number π).<br>
-The <b>intrinsic value</b> of an object is
-the binary value of the sequence of unsigned characters which form its object representation.</p>
-<p><i>Abstract values</i> can be <b>represented</b> in a given type.<br>
-To <b>represent</b> an abstract value 'V' in a type 'T'
-is to obtain a typed value 'v' which <i>corresponds</i> to the abstract value 'V'.<br>
-The operation is denoted using the 'rep()' operator, as in: <code>v=rep(V)</code>.<br>
-'v' is the <b>representation</b> of 'V' in the type 'T'.<br>
-For example, the abstract value π can be represented in the type <code>'double'</code> as the
-'double value M_PI' and in the type <code>'int'</code> as the 'int value 3'</p>
-<p>Conversely, <i>typed values</i> can be <b>abstracted</b>.<br>
-To <b>abstract</b> a typed value 'v' of type 'T' is to obtain the
-abstract value 'V' whose representation in 'T' is 'v'.<br>
-The operation is denoted using the 'abt()' operator, as in: <code>V=abt(v)</code>.<br>
-'V' is the <b>abstraction</b> of 'v' of type 'T'.<br>
-Abstraction is just an abstract operation (you can't do it); but it is defined nevertheless
-because it will be used to give the definitions in the rest of this document.</p>
-
-
-
-
-<hr>
-<h2><A NAME="stdtypes">C++ Arithmetic Types</A></h2>
-<P>The C++ language defines <u>fundamental types</u> (§3.9.1). The following
-subsets of the fundamental types are intended to represent <i>numbers</i>:</p>
-<li><u>signed integer types</u> (§3.9.1/2):<br>
-  <blockquote>
-  <code>{signed char, signed short int, signed int, signed long int}</code><br>
-  Can be used to represent general integer numbers (both negative and positive).
-  </blockquote>
-</li>
-<li><u>unsigned integer types</u> (§3.9.1/3):<br>
-  <blockquote>
-  <code>{unsigned char, unsigned short int, unsigned int, unsigned long int}</code><br>
-  Can be used to represent positive integer numbers <u>with modulo-arithmetic</u>.<br>
-  </blockquote>
-<li><u>floating-point types</u> (§3.9.1/8):<br>
-  <blockquote>
-  <code>{float,double,long double}</code><br>
-  Can be used to represent real numbers.
-  </blockquote>
-</li>
-<li><u>integral or integer types</u> (§3.9.1/7):<br>
-  <blockquote>
-  <code>{{signed integers},{unsigned integers}, bool, char and wchar_t}</code>
-  </blockquote>
-</li>
-<li><u>arithmetic types</u> (§3.9.1/8):<br>
-  <blockquote>
-  <code>{{integer types},{floating types}}</code>
-  </blockquote>
-</li>
-<P>The integer types are required to have a <i>binary</i> value representation.<br>
-Additionally, the signed/unsigned integer types of the same base type (short, int or long)
-are required to have the same value representation, that is:</P>
-<pre>           int i = -3 ; // suppose value representation is: 10011 (sign bit + 4 magnitude bits)
-  unsigned int u = i ;  // u is required to have the same 10011 as its value representation.
-</pre>
-<P>In other words, the integer types signed/unsigned X use the same value representation
-but a different <i>interpretation</i> of it; that is, their <i>typed values</i>
-might differ.<br>
-Another consequence of this is that the range for signed X is always a smaller subset
-of the range of unsigned X, as required by §3.9.1/3.</P>
-<P>Note: always remember that unsigned types, unlike signed types, have modulo-arithmetic;
-  that is, they do not overflow.<br>
-  This means that:
-  <li> Always be extra careful when mixing signed/unsigned types</li>
-  <li> Use unsigned types only when you need modulo arithmetic or very very large numbers.
-  Don't use unsigned types just because you intend to deal with positive values only
-  (you can do this with signed types as well).</li>.
-<p></P>
-
-
-
-
-
-<hr>
-<h2><A NAME="numtypes">Numeric Types</A></h2>
-<p>This section introduces the following definitions intended to integrate arithmetic
-  types with user-defined types which behave like numbers. Some definitions are
-  purposely broad in order to include a vast variety of user-defined number
-  types.</p>
-<p>Within this library, the term <i>number</i> refers to an abstract numeric value.</p>
-<p>A type is <b>numeric</b> if:</p>
-<li>It is an arithmetic type, or,</li>
-<li>It is a user-defined type which</li>
-  <blockquote>
-    <li>Represents numeric abstract values (i.e. numbers).</li>
-
-  <li>Can be converted (either implicitly or explicitly) to/from at least one
-    arithmetic type.</li>
-    <li>Has range (possibly unbounded) and precision
-     (possibly dynamic or unlimited).</li>
-    <li>Provides an specialization of <code>std::numeric_limits</code>.</li>
-  </blockquote>
-<p></p>
-<p>A numeric type is <b>signed</b> if the abstract values it represent include negative numbers.<br>
-A numeric type is <b>unsigned</b> if the abstract values it represent exclude negative numbers.<br>
-A numeric type is <b>modulo</b> if it has modulo-arithmetic (does not overflow).<br>
-A numeric type is <b>integer</b> if the abstract values it represent are whole numbers.<br>
-A numeric type is <b>floating</b> if the abstract values it represent are real numbers.<br>
-An <b>arithmetic value</b> is the typed value of an arithmetic type<br>
-A <b>numeric value</b> is the typed value of a numeric type</p>
-<p></p>
-<p>These definitions simply generalize the standard notions of arithmetic types
-  and values by introducing a superset called <u>numeric</u>. All arithmetic types
-  and values are numeric types and values, but not vice versa, since user-defined
-  numeric types are not arithmetic types.</p>
-<p>The following examples clarify the differences between arithmetic and numeric types (and values):</p>
-<pre>// A numeric type which is not an arithmetic type (is user-defined)
-// and which is intended to represent integer numbers (i.e., an 'integer' numeric type)
-class MyInt
-{
-  MyInt ( long long v ) ;
-  long long to_builtin();
-} ;
-namespace std {
-template<> numeric_limits<MyInt> { ... } ;
-}
-
-// A 'floating' numeric type (double) which is also an arithmetic type (built-in),
-// with a float numeric value.
-double pi = M_PI ;
-
-// A 'floating' numeric type with a whole numeric value.
-// NOTE: numeric values are typed valued, hence, they are, for instance,
-// integer or floating, despite the value itself being whole or including
-// a fractional part.
-double two = 2.0 ;
-
-// An integer numeric type with an integer numeric value.
-MyInt i(1234);
-</pre>
-
-
-
-
-<hr>
-<h2><A NAME="range">Range and Precision</A></h2>
-<p>Given a number set 'N', some of its elements are representable in a numeric type 'T'.<br>
-The set of representable values of type 'T', or numeric set of 'T', is a set of numeric values
-whose elements are the representation of some <i>subset</i> of 'N'.<br>
-For example, the interval of 'int' values [INT_MIN,INT_MAX] is the set of representable values
-of type 'int', i.e. the 'int' numeric set, and corresponds to the representation of the elements
-of the interval of abstract values [abt(INT_MIN),abt(INT_MAX)] from the integer numbers.<br>
-Similarly, the interval of 'double' values [-DBL_MAX,DBL_MAX] is the 'double' numeric set,
-which corresponds to the subset of the real numbers from abt(-DBL_MAX) to abt(DBL_MAX).
-</p>
-<p>Let <b>next(x)</b> denote the lowest numeric value greater than x.<br>
-Let <b>prev(x)</b> denote the highest numeric value lower then x.</p>
-<p>Let <code><b>v=prev(next(V))</b></code> and <code><b>v=next(prev(V))</b></code> be identities that relate a numeric
-typed value 'v' with a number 'V'.</p>
-<p>An ordered pair of numeric values <i>x,y</i> s.t. <i>x<y</i> are <b>consecutive</b> iff
-<code>next(x)==y</code>.</p>
-<p>The abstract distance between consecutive numeric values is usually referred
-to as a <u>Unit in the Last Place</u>, or <b>ulp</b> for short. A ulp is a quantity whose abstract
-magnitude is <i>relative</i> to the numeric values it corresponds to: If the numeric set is not evenly
-distributed, that is, if the abstract distance between consecutive numeric values varies along the set
--as is the case with the floating-point types-, the magnitude of 1ulp after the numeric value x
-might be (usually is) different from the magnitude of a 1ulp after the numeric value y for x!=y.</p>
-<p>Since numbers are inherently ordered, a <b>numeric set</b> of type 'T'
-is an ordered sequence of numeric values (of type 'T') of the form:
-</p>
-<p><code>REP(T)={l,next(l),next(next(l)),...,prev(prev(h)),prev(h),h}</code>
-</p>
-<p>where 'l' and 'h' are respectively the lowest and highest values of type 'T', called the
-<b>boundary values</b> of type T.</p>
-<p>A numeric set is discrete. It has a <b>size</b> which is the number
-of numeric values in the set, a <b>width</b> which is the abstract difference between
-the highest and lowest boundary values: [abt(h)-abt(l)], and a <b>density</b>
-which is the relation between its size and width: 'density=size/width'.<br>
-The integer types have density 1, which means that there are no unrepresentable integer numbers
-between abt(l) and abt(h) (i.e. there are no gaps). On the other hand,
-floating types have density much smaller than 1, which means that there are
-real numbers unrepresented between consecutive floating values (i.e. there are gaps).
-</p>
-<p>The interval of <u>abstract values</u> [abt(l),abt(h)] is the <b>range</b> of the type 'T',
-denoted 'R(T)'.<br>
-  A range is a set of abstract values and not a set of numeric values. In other
-  documents, such as the C++ standard, the word 'range' is <i>sometimes</i> used
-  as synonym for 'numeric set', that is, as the ordered sequence of numeric values
-  from 'l' to 'h'. In this document, however, a range is an abstract interval
-  which subtends the numeric set.<br>
-For example, the sequence [-DBL_MAX,DBL_MAX] is the numeric set of the type 'double', and
-the real interval [abt(-DBL_MAX),abt(DBL_MAX)] is its range.<br>
-Notice, for instance, that the range of a floating-point type is <i>continuous</i> unlike
-its numeric set.<br>
-  This definition was chosen because:
-<li>(a) The discrete set of numeric values is already given by the numeric set.</li>
-<li>(b) Abstract intervals are easier to compare and overlap since only boundary values
-need to be considered.</li><br>
-This definition allows for a concise definition of 'subranged' as given in the last section.<br>
-The width of a numeric set, as defined, is exactly equivalent to the width of a range.
-<p></p>
-<p>The <b>precision</b> of a type is given by the width or density of the numeric set.<br>
-For integer types, which have density 1, the precision is conceptually equivalent to the range
-and is determined by the number of bits used in the value representation: The higher the
-number of bits the bigger the size of the numeric set, the wider the range, and the higher
-the precision.<br>
-For floating types, which have density <<1, the precision is given not by the
-width of the range but by the density. In a typical implementation,
-the range is determined by the number of bits used in the exponent, and the precision by
-the number of bits used in the mantissa (giving the maximum number of significant digits
-that can be exactly represented). The higher the number of exponent bits the
-wider the range, while the higher the number of mantissa bits, the higher the precision.
-</p>
-
-
-
-
-
-
-<hr>
-<h2><A NAME="roundoff">Exact, Correctly Rounded and Out-Of-Range Representations</A></h2>
-<p>Given an abstract value 'V' and a type 'T' with its corresponding range [abt(l),abt(h)]:</p>
-<p>If <code>V < abt(l)</code> or <code>V > abt(h)</code>, 'V' is <b>not representable</b>
-(cannot be represented) in the type T, or, equivalently, it's representation in the type 'T'
-is <b>out of range</b>, or <b>overflows</b>.<br>
-If <code>V < abt(l)</code>, the <b>overflow is negative</b>.<br>
-If <code>V > abt(h)</code>, the <b>overflow is positive</b>.
-</p>
-<p>If <code>V ≥ abt(l)</code> and <code>V ≤ abt(h)</code>,'V' is <b>representable</b>
-(can be represented) in the type T, or, equivalently, its representation in the type 'T'
-is in <b>in range</b>, or <b>does not overflow</b>.</p>
-<p>Notice that a numeric type, such as a C++ unsigned type, can define that any 'V' does not
-overflow by always representing not 'V' itself but the abstract value <code>U = [ V % (abt(h)+1) ]</code>,
-which is always in range.</p>
-<p>Given an abstract value 'V' represented in the type 'T' as 'v', the <b>roundoff</b> error
-of the representation is the abstract difference: (abt(v)-V).<br>
-Notice that a representation is an <i>operation</i>, hence, the roundoff error corresponds to
-the representation operation and not to the numeric value itself (i.e. numeric values do not
-have any error themselves)<br>
-If the roundoff is 0, the representation is <b>exact</b>, and 'V' is <b>exactly representable</b>
-in the type T.<br>
-If the roundoff is not 0, the representation is <b>inexact</b>, and 'V' is <b>inexactly representable</b>
-in the type T.</p>
-<p>Given an abstract value 'V' representable in a type 'T', there are always two consecutive
-numeric values of type 'T', 'prev' and 'next', such that <code>abt(prev) ≤ V ≤ abt(next)</code>.
-These are called the <b>adjacents</b> of 'V' in the type 'T'.<br>
-If a representation 'v' in a type 'T' -either exact or inexact-, is any of the adjacents of 'V'
-in that type, that is, if <code>v==prev or v==next</code>, the representation is
-<b>faithfully rounded</b>. If the choice between 'prev' and 'next'
-matches a given <b>rounding direction</b>, it is <b>correctly rounded</b>.<br>
-All exact representations are correctly rounded, but not all inexact representations are. In particular,
-C++ requires numeric conversions (described below) and the result of arithmetic operations
-(not covered by this document) to be correctly rounded, but batch operations propagate roundoff, thus
-final results are usually incorrectly rounded, that is, the numeric value 'r' which is the computed
-result is neither of the adjacents of the abstract value 'R' which is the theoretical result.<br>
-Because a correctly rounded representation is always one of adjacents of the abstract value being
-represented, the roundoff is guaranteed to be at most 1ulp.</p>
-<P>The following examples summarize the given definitions. Consider:</p>
-<li>A numeric type 'Int' representing integer numbers with a <i>numeric set</i>: {-2,-1,0,1,2}
-and <i>range</i>: [-2,2]</li>.
-<li>A numeric type 'Cardinal' representing integer numbers with a <i>numeric set</i>:
-{0,1,2,3,4,5,6,7,8,9} and <i>range</i>: [0,9]  (no modulo-arithmetic here)</li>.
-<li>A numeric type 'Real' representing real numbers with a <i>numeric set</i>:
-{-2.0,-1.5,-1.0,-0.5,-0.0,+0.0,+0.5,+1.0,+1.5,+2.0} and <i>range</i>: [-2.0,+2.0]</li>
-<li>A numeric type 'Whole' representing real numbers with a <i>numeric set</i>:
-{-2.0,-1.0,0.0,+1.0,+2.0} and <i>range</i>: [-2.0,+2.0]</li>
-<p>First, notice that the types 'Real' and 'Whole' both represent real numbers, have the
-same range, but different precision.</p>
-<p>The integer number 1 (an abstract value) can be exactly represented in any of these types.<br>
-The integer number -1 can be exactly represented in 'Int', 'Real' and 'Whole', but cannot
-be represented in 'Cardinal', yielding negative overflow.<br>
-The real number 1.5 can be exactly represented in 'Real', and inexactly represented in the
-other types.<br>
-If 1.5 is represented as either 1 or 2 in any of the types (except Real), the
-representation is correctly rounded.<br>
-  If 0.5 is represented as +1.5 in the type 'Real', it is incorrectly rounded.<br>
-(-2.0,-1.5) are the 'Real' adjacents of any real number in the interval [-2.0,-1.5],
-yet there are no 'Real' adjacents for x < -2.0, nor for x > +2.0.
-</p>
-
-
-
-
-<hr>
-<h2><A NAME="stdconv">Standard (numeric) Conversions</A></h2>
-<P>The C++ language defines <u>Standard Conversions</u> (§4) some of which are
-  conversions between arithmetic types.<br>
-  These are <u>Integral promotions</u> (§4.5), <u>Integral conversions</u> (§4.7),
-  <u>Floating point promotions</u> (§4.6), <u>Floating point conversions</u> (§4.8)
-  and <u>Floating-integral conversions</u> (§4.9).<br>
-  In the sequel, integral and floating point promotions are called <b>arithmetic promotions</b>,
-  and these plus integral, floating-point and floating-integral conversions are called
-  <b>arithmetic conversions</b> (i.e, promotions are conversions).
-</P>
-<P>Promotions, both Integral and Floating point, are <i>value-preserving</i>, which means
-that the typed value is not changed with the conversion.</p>
-<p>In the sequel, consider a source typed value 's' of type 'S', the source abstract value 'N=abt(s)',
-a destination type 'T'; and whenever possible, a result typed value 't' of type 'T'.</p>
-<p>Integer to integer conversions are always defined:<br>
-If 'T' is unsigned, the abstract value which is effectively represented is not 'N' but
-'M=[ N % ( abt(h) + 1 ) ]', where 'h' is the highest unsigned typed value of type 'T'.<br>
-If 'T' is signed and 'N' is not directly representable, the result 't' is
-<u>implementation-defined</u>, which means that the C++ implementation is required to produce
-a value 't' even if it is totally unrelated to 's'.</p>
-<p>Floating to Floating conversions are defined only if 'N' is representable;
-  if it is not, the conversion has <u>undefined behavior.</u><br>
-If 'N' is exactly representable, 't' is required to be the exact representation.<br>
-If 'N' is inexactly representable, 't' is required to be one of the two adjacents, with
-an implementation-defined choice of rounding direction; that is, the conversion is required
-to be correctly rounded.</p>
-<p>Floating to Integer conversions represent not 'N' but 'M=trunc(N)', were trunc() is to truncate: i.e.
-to remove the fractional part, if any.<br>
-  If 'M' is not representable in 'T', the conversion has <u>undefined behavior</u>
-  (unless 'T' is bool, see §4.12).</p>
-<p>Integer to Floating conversions are always defined.<br>
-If 'N' is exactly representable, 't' is required to be the exact representation.<br>
-If 'N' is inexactly representable, 't' is required to be one of the two adjacents, with
-an implementation-defined choice of rounding direction; that is, the conversion is required
-to be correctly rounded.</p>
-
-
-
-
-
-
-<hr>
-<h2><A NAME="subranged">Subranged Conversion Direction, Subtype and Supertype</A></h2>
-<P>Given a source type 'S' and a destination type 'T', there is a <b>conversion direction</b>
-denoted: <code>'S->T'</code>.<br>
-For any two ranges the following <i>range relation</i> can be defined: A range
-'X' can be <i>entirely contained</i> in a range 'Y', in which case it is said that
-'X' is enclosed by 'Y'.<br>
-  Formally: R(S) is <b>enclosed</b> by R(T) iif (R(S) intersection R(T)) == R(S).</P>
-<P>If the source type range, R(S), is <i>not enclosed</i> in the target type range, R(T);
-that is, if (R(S) & R(T)) != R(S), the conversion direction is said to be <b>subranged</b>,
-which means that R(S) is not entirely contained in R(T) and therefore there is
-some portion of the source range which falls outside the target range. In other words,
-if a conversion direction S->T is subranged, there are values in S which cannot be represented
-in T because they are out of range.<br>
-  Notice that for S->T, the adjective subranged applies to 'T'.</p>
-<p>Examples:<br>
-Given the following numeric types all representing real numbers:<br>
-<br>
-X with numeric set {-2.0,-1.0,0.0,+1.0,+2.0} and range [-2.0,+2.0]<br>
-Y with numeric set {-2.0,-1.5,-1.0,-0.5,0.0,+0.5,+1.0,+1.5,+2.0} and range [-2.0,+2.0]<br>
-Z with numeric set {-1.0,0.0,+1.0} and range [-1.0,+1.0]<br>
-<br>
-For:<br>
-<br>
-(a) X->Y:
-  <blockquote>
-  R(X) & R(Y) == R(X), then X->Y is not subranged.
-  Thus, all values of type X are representable in the type Y.
-  </blockquote>
-(b) Y->X:
-  <blockquote>
-  R(Y) & R(X) == R(Y), then Y->X is not subranged.
-  Thus, all values of type Y are representable in the type X, but in this case, some values
-  are <i>inexactly</i> representable (all the halves).<br>
-  (note: it is to permit this case that a range is an interval of abstract values
-  and not an interval of typed values)
-  </blockquote>
-(b) X->Z:
-  <blockquote>
-  R(X) & R(Z) != R(X), then X->Z is subranged.
-  Thus, some values of type X are not representable in the type Z, they fall out of range
-  (-2.0 and +2.0)
-  </blockquote>
-<p></p>
-<p>It is possible that R(S) is not enclosed by R(T), while neither is R(T) enclosed
-by R(S); for example, UNSIG=[0,255] is not enclosed by SIG=[-128,127]; neither is SIG
-enclosed by UNSIG.<br>
-  This implies that is possible that a conversion direction is subranged both
-  ways. This occurs when a mixture of signed/unsigned types are involved and indicates
-  that in both directions there are values which can fall out of range.</P>
-<P>Given the range relation (subranged or not) of a conversion direction S->T,
-it is possible to classify 'S' and 'T' as <b>supertype</b> and <b>subtype</b>:<br>
-If the conversion is subranged, which means that 'T' cannot represent all possible values of type 'S',
-'S' is the supertype and 'T' the subtype; otherwise, 'T' is the supertype and 'S' the subtype.<br>
-<br>
-For example:<br>
-R(float)=[-FLT_MAX,FLT_MAX] and R(double)=[-DBL_MAX,DBL_MAX].<br>
-If FLT_MAX < DBL_MAX:<br>
-'double->float' is subranged and supertype=double, subtype=float.<br>
-'float->double' is not subranged and supertype=double, subtype=float.<br>
-Notice that while 'double->float' is subranged, 'float->double' is not,
-which yields the same supertype,subtype for both directions.<br>
-<br>
-Now consider:<br>
-R(int)=[INT_MIN,INT_MAX] and R(unsigned int)=[0,UINT_MAX].<br>
-A C++ implementation is required to have UINT_MAX > INT_MAX (§3.9/3), so:<br>
-'int->unsigned' is subranged (negative values fall out of range) and supertype=int, subtype=unsigned.<br>
-'unsigned->int' is <em>also</em> subranged (high positive values fall out of range)
-and supertype=unsigned, subtype=int.<br>
-In this case, the conversion is subranged in both directions and the supertype,subtype pairs
-are not invariant (under inversion of direction). This indicates that none of the types can
-represent all the values of the other.</p>
-<p>When the supertype is the same for both 'S->T' and 'T->S', it is effectively indicating
-a type which can represent all the values of the subtype.<br>
-  Consequently, if a conversion X->Y is not subranged, but the opposite (Y->X)
-  is, so that the supertype is always 'Y', it is said that the direction X->Y
-  is <b>correctly rounded value preserving</b>, meaning that all such conversions
-  are guaranteed to produce results in range and correctly rounded (even if inexact).<br>
-For example, all integer to floating conversions are correctly rounded value preserving.
-</p>
-<HR>
-<P>Back to Numeric Conversion library index</P>
-<HR>
-<P>Revised 23 June 2004</P>
-<p>© Copyright Fernando Luis Cacciola Carballal, 2004</p>
-<p> Use, modification, and distribution are subject to the Boost Software
-License, Version 1.0. (See accompanying file <a href="../../../../LICENSE_1_0.txt">
-LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
-www.boost.org/LICENSE_1_0.txt</a>)</p>
-</body>
-</HTML>
\ No newline at end of file
Modified: trunk/libs/numeric/conversion/doc/html/boost_numericconversion/bounds___traits_class.html
==============================================================================
--- trunk/libs/numeric/conversion/doc/html/boost_numericconversion/bounds___traits_class.html	(original)
+++ trunk/libs/numeric/conversion/doc/html/boost_numericconversion/bounds___traits_class.html	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
@@ -13,17 +13,17 @@
     traits class">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="type_requirements_and_user_defined_types_support.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="conversion_traits___traits_class.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="type_requirements_and_user_defined_types_support.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="conversion_traits___traits_class.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -73,7 +73,7 @@
 <span class="special">};</span>
 </pre>
 <a name="boost_numericconversion.bounds___traits_class.traits_class_bounds_n_.members"></a><h5>
-<a name="id2626217"></a>
+<a name="id2626382"></a>
         <a href="bounds___traits_class.html#boost_numericconversion.bounds___traits_class.traits_class_bounds_n_.members">Members</a>
       </h5>
 <div class="blockquote"><blockquote class="blockquote">
@@ -153,11 +153,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="type_requirements_and_user_defined_types_support.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="conversion_traits___traits_class.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="type_requirements_and_user_defined_types_support.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="conversion_traits___traits_class.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Modified: trunk/libs/numeric/conversion/doc/html/boost_numericconversion/conversion_traits___traits_class.html
==============================================================================
--- trunk/libs/numeric/conversion/doc/html/boost_numericconversion/conversion_traits___traits_class.html	(original)
+++ trunk/libs/numeric/conversion/doc/html/boost_numericconversion/conversion_traits___traits_class.html	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
@@ -13,17 +13,17 @@
     Converter Policy Classes">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="bounds___traits_class.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="numeric_converter_policy_classes.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="bounds___traits_class.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="numeric_converter_policy_classes.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -33,24 +33,6 @@
 </h2></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section">Types</span></dt>
-<dd><dl>
-<dt><span class="section"><a href="conversion_traits___traits_class.html#boost_numericconversion.conversion_traits___traits_class.types.enumeration_int_float_mixture_enum">enumeration
-        int_float_mixture_enum</a></span></dt>
-<dt><span class="section"><a href="conversion_traits___traits_class.html#boost_numericconversion.conversion_traits___traits_class.types.enumeration_sign_mixture_enum">enumeration
-        sign_mixture_enum</a></span></dt>
-<dt><span class="section"><a href="conversion_traits___traits_class.html#boost_numericconversion.conversion_traits___traits_class.types.enumeration_udt_builtin_mixture_enum">enumeration
-        udt_builtin_mixture_enum</a></span></dt>
-<dt><span class="section"><a href="conversion_traits___traits_class.html#boost_numericconversion.conversion_traits___traits_class.types.template_class_int_float_mixture__">template
-        class int_float_mixture<></a></span></dt>
-<dt><span class="section"><a href="conversion_traits___traits_class.html#boost_numericconversion.conversion_traits___traits_class.types.template_class_sign_mixture__">template
-        class sign_mixture<></a></span></dt>
-<dt><span class="section"><a href="conversion_traits___traits_class.html#boost_numericconversion.conversion_traits___traits_class.types.template_class_udt_builtin_mixture__">template
-        class udt_builtin_mixture<></a></span></dt>
-<dt><span class="section"><a href="conversion_traits___traits_class.html#boost_numericconversion.conversion_traits___traits_class.types.template_class_is_subranged__">template
-        class is_subranged<></a></span></dt>
-<dt><span class="section"><a href="conversion_traits___traits_class.html#boost_numericconversion.conversion_traits___traits_class.types.template_class_conversion_traits__">template
-        class conversion_traits<></a></span></dt>
-</dl></dd>
 <dt><span class="section">Examples</span></dt>
 </dl></div>
 <div class="section" lang="en">
@@ -555,11 +537,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="bounds___traits_class.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="numeric_converter_policy_classes.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="bounds___traits_class.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="numeric_converter_policy_classes.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Modified: trunk/libs/numeric/conversion/doc/html/boost_numericconversion/converter___function_object.html
==============================================================================
--- trunk/libs/numeric/conversion/doc/html/boost_numericconversion/converter___function_object.html	(original)
+++ trunk/libs/numeric/conversion/doc/html/boost_numericconversion/converter___function_object.html	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
@@ -12,17 +12,17 @@
     Requirements and User-defined-types support">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="definitions.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="type_requirements_and_user_defined_types_support.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="definitions.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="type_requirements_and_user_defined_types_support.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -401,7 +401,7 @@
 <a name="numeric_conversion_converter_internal"></a><p>
       </p>
 <a name="boost_numericconversion.converter___function_object.member_functions.internal_member_functions"></a><h5>
-<a name="id2623952"></a>
+<a name="id2624118"></a>
         <a href="converter___function_object.html#boost_numericconversion.converter___function_object.member_functions.internal_member_functions">Internal
         Member Functions</a>
       </h5>
@@ -497,11 +497,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="definitions.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="type_requirements_and_user_defined_types_support.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="definitions.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="type_requirements_and_user_defined_types_support.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Modified: trunk/libs/numeric/conversion/doc/html/boost_numericconversion/definitions.html
==============================================================================
--- trunk/libs/numeric/conversion/doc/html/boost_numericconversion/definitions.html	(original)
+++ trunk/libs/numeric/conversion/doc/html/boost_numericconversion/definitions.html	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
@@ -11,17 +11,17 @@
     function object">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../index.html"><img src="../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="converter___function_object.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="../index.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="converter___function_object.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -179,35 +179,42 @@
 <dl>
 <dt><span class="term"><span class="underline">signed integer
         types</span> (§3.9.1/2):</span></dt>
-<dd>
-<code class="computeroutput"><span class="special">{</span><span class="keyword">signed</span>
-          <span class="keyword">char</span><span class="special">,</span>
-          <span class="keyword">signed</span> <span class="keyword">short</span>
-          <span class="keyword">int</span><span class="special">,</span> <span class="keyword">signed</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">signed</span> <span class="keyword">long</span> <span class="keyword">int</span><span class="special">}</span></code> Can be used to represent general integer
-          numbers (both negative and positive).
-        </dd>
+<dd><p>
+            <code class="computeroutput"><span class="special">{</span><span class="keyword">signed</span>
+            <span class="keyword">char</span><span class="special">,</span>
+            <span class="keyword">signed</span> <span class="keyword">short</span>
+            <span class="keyword">int</span><span class="special">,</span>
+            <span class="keyword">signed</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">signed</span> <span class="keyword">long</span> <span class="keyword">int</span><span class="special">}</span></code> Can be used to represent general integer
+            numbers (both negative and positive).
+          </p></dd>
 <dt><span class="term"><span class="underline">unsigned integer
         types</span> (§3.9.1/3):</span></dt>
-<dd>
-<code class="computeroutput"><span class="special">{</span><span class="keyword">unsigned</span>
-          <span class="keyword">char</span><span class="special">,</span>
-          <span class="keyword">unsigned</span> <span class="keyword">short</span>
-          <span class="keyword">int</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="keyword">int</span><span class="special">}</span></code> Can be used to represent positive integer
-          numbers with modulo-arithmetic.
-        </dd>
+<dd><p>
+            <code class="computeroutput"><span class="special">{</span><span class="keyword">unsigned</span>
+            <span class="keyword">char</span><span class="special">,</span>
+            <span class="keyword">unsigned</span> <span class="keyword">short</span>
+            <span class="keyword">int</span><span class="special">,</span>
+            <span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="keyword">int</span><span class="special">}</span></code> Can be used to represent positive integer
+            numbers with modulo-arithmetic.
+          </p></dd>
 <dt><span class="term"><span class="underline">floating-point
         types</span> (§3.9.1/8):</span></dt>
-<dd>
-<code class="computeroutput"><span class="special">{</span><span class="keyword">float</span><span class="special">,</span><span class="keyword">double</span><span class="special">,</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">}</span></code> Can be used to represent real numbers.
-        </dd>
+<dd><p>
+            <code class="computeroutput"><span class="special">{</span><span class="keyword">float</span><span class="special">,</span><span class="keyword">double</span><span class="special">,</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">}</span></code>
+            Can be used to represent real numbers.
+          </p></dd>
 <dt><span class="term"><span class="underline">integral or
         integer types</span> (§3.9.1/7):</span></dt>
-<dd><code class="computeroutput"><span class="special">{{</span><span class="keyword">signed</span>
-          <span class="identifier">integers</span><span class="special">},{</span><span class="keyword">unsigned</span> <span class="identifier">integers</span><span class="special">},</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">char</span> <span class="keyword">and</span> <span class="keyword">wchar_t</span><span class="special">}</span></code></dd>
+<dd><p>
+            <code class="computeroutput"><span class="special">{{</span><span class="keyword">signed</span>
+            <span class="identifier">integers</span><span class="special">},{</span><span class="keyword">unsigned</span> <span class="identifier">integers</span><span class="special">},</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">char</span> <span class="keyword">and</span> <span class="keyword">wchar_t</span><span class="special">}</span></code>
+          </p></dd>
 <dt><span class="term"><span class="underline">arithmetic
         types</span> (§3.9.1/8):</span></dt>
-<dd><code class="computeroutput"><span class="special">{{</span><span class="identifier">integer</span>
-          <span class="identifier">types</span><span class="special">},{</span><span class="identifier">floating</span> <span class="identifier">types</span><span class="special">}}</span></code></dd>
+<dd><p>
+            <code class="computeroutput"><span class="special">{{</span><span class="identifier">integer</span>
+            <span class="identifier">types</span><span class="special">},{</span><span class="identifier">floating</span> <span class="identifier">types</span><span class="special">}}</span></code>
+          </p></dd>
 </dl>
 </div>
 <p>
@@ -234,31 +241,23 @@
       </p>
 <div class="note"><table border="0" summary="Note">
 <tr>
-<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../doc/html/images/note.png"></td>
 <th align="left">Note</th>
 </tr>
 <tr><td align="left" valign="top">
 <p>
-          </p>
-<p>
-            Always remember that unsigned types, unlike signed types, have modulo-arithmetic;
-            that is, they do not overflow. This means that:
-          </p>
-<p>
-          </p>
-<p>
-            <span class="bold"><strong>-</strong></span> Always be extra careful when mixing
-            signed/unsigned types
-          </p>
-<p>
-          </p>
+          Always remember that unsigned types, unlike signed types, have modulo-arithmetic;
+          that is, they do not overflow. This means that:
+        </p>
 <p>
-            <span class="bold"><strong>-</strong></span> Use unsigned types only when you need
-            modulo arithmetic or very very large numbers. Don't use unsigned types
-            just because you intend to deal with positive values only (you can do
-            this with signed types as well).
-          </p>
+          <span class="bold"><strong>-</strong></span> Always be extra careful when mixing
+          signed/unsigned types
+        </p>
 <p>
+          <span class="bold"><strong>-</strong></span> Use unsigned types only when you need
+          modulo arithmetic or very very large numbers. Don't use unsigned types
+          just because you intend to deal with positive values only (you can do this
+          with signed types as well).
         </p>
 </td></tr>
 </table></div>
@@ -875,37 +874,31 @@
 <p class="title"><b></b></p>
 <dl>
 <dt><span class="term">(a) X->Y:</span></dt>
-<dd>
-<code class="computeroutput"><span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span> <span class="special">&</span>
-          <span class="identifier">R</span><span class="special">(</span><span class="identifier">Y</span><span class="special">)</span> <span class="special">==</span>
-          <span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>, then
-          <code class="computeroutput"><span class="identifier">X</span><span class="special">-></span><span class="identifier">Y</span></code> is not subranged. Thus, all values
-          of type <code class="computeroutput"><span class="identifier">X</span></code> are representable
-          in the type <code class="computeroutput"><span class="identifier">Y</span></code>.
-        </dd>
+<dd><p>
+            <code class="computeroutput"><span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span> <span class="special">&</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">Y</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>,
+            then <code class="computeroutput"><span class="identifier">X</span><span class="special">-></span><span class="identifier">Y</span></code> is not subranged. Thus, all values
+            of type <code class="computeroutput"><span class="identifier">X</span></code> are representable
+            in the type <code class="computeroutput"><span class="identifier">Y</span></code>.
+          </p></dd>
 <dt><span class="term">(b) Y->X:</span></dt>
-<dd>
-<code class="computeroutput"><span class="identifier">R</span><span class="special">(</span><span class="identifier">Y</span><span class="special">)</span> <span class="special">&</span>
-          <span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span> <span class="special">==</span>
-          <span class="identifier">R</span><span class="special">(</span><span class="identifier">Y</span><span class="special">)</span></code>, then
-          <code class="computeroutput"><span class="identifier">Y</span><span class="special">-></span><span class="identifier">X</span></code> is not subranged. Thus, all values
-          of type <code class="computeroutput"><span class="identifier">Y</span></code> are representable
-          in the type <code class="computeroutput"><span class="identifier">X</span></code>, but in this
-          case, some values are <span class="emphasis"><em>inexactly</em></span> representable (all
-          the halves). (note: it is to permit this case that a range is an interval
-          of abstract values and not an interval of typed values)
-        </dd>
+<dd><p>
+            <code class="computeroutput"><span class="identifier">R</span><span class="special">(</span><span class="identifier">Y</span><span class="special">)</span> <span class="special">&</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">Y</span><span class="special">)</span></code>,
+            then <code class="computeroutput"><span class="identifier">Y</span><span class="special">-></span><span class="identifier">X</span></code> is not subranged. Thus, all values
+            of type <code class="computeroutput"><span class="identifier">Y</span></code> are representable
+            in the type <code class="computeroutput"><span class="identifier">X</span></code>, but in
+            this case, some values are <span class="emphasis"><em>inexactly</em></span> representable
+            (all the halves). (note: it is to permit this case that a range is an
+            interval of abstract values and not an interval of typed values)
+          </p></dd>
 <dt><span class="term">(b) X->Z:</span></dt>
-<dd>
-<code class="computeroutput"><span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span> <span class="special">&</span>
-          <span class="identifier">R</span><span class="special">(</span><span class="identifier">Z</span><span class="special">)</span> <span class="special">!=</span>
-          <span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>, then
-          <code class="computeroutput"><span class="identifier">X</span><span class="special">-></span><span class="identifier">Z</span></code> is subranged. Thus, some values of
-          type <code class="computeroutput"><span class="identifier">X</span></code> are not representable
-          in the type <code class="computeroutput"><span class="identifier">Z</span></code>, they fall
-          out of range <code class="computeroutput"><span class="special">(-</span><span class="number">2.0</span>
-          <span class="keyword">and</span> <span class="special">+</span><span class="number">2.0</span><span class="special">)</span></code>.
-        </dd>
+<dd><p>
+            <code class="computeroutput"><span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span> <span class="special">&</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">Z</span><span class="special">)</span> <span class="special">!=</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>,
+            then <code class="computeroutput"><span class="identifier">X</span><span class="special">-></span><span class="identifier">Z</span></code> is subranged. Thus, some values of
+            type <code class="computeroutput"><span class="identifier">X</span></code> are not representable
+            in the type <code class="computeroutput"><span class="identifier">Z</span></code>, they fall
+            out of range <code class="computeroutput"><span class="special">(-</span><span class="number">2.0</span>
+            <span class="keyword">and</span> <span class="special">+</span><span class="number">2.0</span><span class="special">)</span></code>.
+          </p></dd>
 </dl>
 </div>
 <p>
@@ -1007,11 +1000,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../index.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="converter___function_object.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="../index.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="converter___function_object.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Modified: trunk/libs/numeric/conversion/doc/html/boost_numericconversion/improved_numeric_cast__.html
==============================================================================
--- trunk/libs/numeric/conversion/doc/html/boost_numericconversion/improved_numeric_cast__.html	(original)
+++ trunk/libs/numeric/conversion/doc/html/boost_numericconversion/improved_numeric_cast__.html	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
@@ -13,17 +13,17 @@
     and Acknowledgments">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="numeric_converter_policy_classes.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="../numeric_conversion/history_and_acknowledgments.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="numeric_converter_policy_classes.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../numeric_conversion/history_and_acknowledgments.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -174,11 +174,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="numeric_converter_policy_classes.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="../numeric_conversion/history_and_acknowledgments.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="numeric_converter_policy_classes.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../numeric_conversion/history_and_acknowledgments.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Modified: trunk/libs/numeric/conversion/doc/html/boost_numericconversion/numeric_converter_policy_classes.html
==============================================================================
--- trunk/libs/numeric/conversion/doc/html/boost_numericconversion/numeric_converter_policy_classes.html	(original)
+++ trunk/libs/numeric/conversion/doc/html/boost_numericconversion/numeric_converter_policy_classes.html	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
@@ -13,17 +13,17 @@
     numeric_cast<>">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="conversion_traits___traits_class.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="improved_numeric_cast__.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="conversion_traits___traits_class.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="improved_numeric_cast__.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -165,28 +165,22 @@
       </p>
 <div class="important"><table border="0" summary="Important">
 <tr>
-<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../images/important.png"></td>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../../../doc/html/images/important.png"></td>
 <th align="left">Important</th>
 </tr>
-<tr><td align="left" valign="top">
-<p>
-          </p>
-<p>
-            <span class="bold"><strong>RELEASE NOTE for 1.33</strong></span> Previous to boost
-            version 1.33, the exception class <code class="computeroutput"><span class="identifier">bad_numeric_cast</span></code>
-            was named <code class="computeroutput"><span class="identifier">bad_numeric_conversion</span></code>.
-            However, in 1.33, the old function <code class="computeroutput"><span class="identifier">numeric_cast</span><span class="special"><></span></code> from <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cast</span><span class="special">.</span><span class="identifier">hpp</span></code>
-            was completly replaced by the new <code class="computeroutput"><span class="identifier">numeric_cast</span><span class="special"><></span></code> in <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">conversion</span><span class="special">/</span><span class="identifier">cast</span><span class="special">.</span><span class="identifier">hpp</span></code>
-            (and <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cast</span><span class="special">.</span><span class="identifier">hpp</span></code> is including <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">conversion</span><span class="special">/</span><span class="identifier">cast</span><span class="special">.</span><span class="identifier">hpp</span></code>
-            now). That old function which existed in boost for quite some time used
-            the <code class="computeroutput"><span class="identifier">bad_numeric_cast</span></code>
-            as its exception type so I decided to avoid backward compatibility problems
-            by adopting it (guessing that the user base for the old code is wider
-            than for the new code).
-          </p>
-<p>
-        </p>
-</td></tr>
+<tr><td align="left" valign="top"><p>
+          <span class="bold"><strong>RELEASE NOTE for 1.33</strong></span> Previous to boost
+          version 1.33, the exception class <code class="computeroutput"><span class="identifier">bad_numeric_cast</span></code>
+          was named <code class="computeroutput"><span class="identifier">bad_numeric_conversion</span></code>.
+          However, in 1.33, the old function <code class="computeroutput"><span class="identifier">numeric_cast</span><span class="special"><></span></code> from <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cast</span><span class="special">.</span><span class="identifier">hpp</span></code>
+          was completly replaced by the new <code class="computeroutput"><span class="identifier">numeric_cast</span><span class="special"><></span></code> in <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">conversion</span><span class="special">/</span><span class="identifier">cast</span><span class="special">.</span><span class="identifier">hpp</span></code>
+          (and <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cast</span><span class="special">.</span><span class="identifier">hpp</span></code> is including <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">conversion</span><span class="special">/</span><span class="identifier">cast</span><span class="special">.</span><span class="identifier">hpp</span></code>
+          now). That old function which existed in boost for quite some time used
+          the <code class="computeroutput"><span class="identifier">bad_numeric_cast</span></code> as
+          its exception type so I decided to avoid backward compatibility problems
+          by adopting it (guessing that the user base for the old code is wider than
+          for the new code).
+        </p></td></tr>
 </table></div>
 </div>
 <a name="numeric_conversion_policy_float_to_int_rounder"></a><p>
@@ -226,20 +220,14 @@
       </p>
 <div class="note"><table border="0" summary="Note">
 <tr>
-<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../doc/html/images/note.png"></td>
 <th align="left">Note</th>
 </tr>
-<tr><td align="left" valign="top">
-<p>
-          </p>
-<p>
-            These classes are not intended to be general purpose rounding functions
-            but specific policies for <code class="computeroutput"><span class="identifier">converter</span><span class="special"><></span></code>. This is why they are not function
-            objects.
-          </p>
-<p>
-        </p>
-</td></tr>
+<tr><td align="left" valign="top"><p>
+          These classes are not intended to be general purpose rounding functions
+          but specific policies for <code class="computeroutput"><span class="identifier">converter</span><span class="special"><></span></code>. This is why they are not function
+          objects.
+        </p></td></tr>
 </table></div>
 <pre class="programlisting">
 <span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span>
@@ -299,7 +287,7 @@
 <span class="special">}</span> <span class="special">}</span> <span class="comment">// namespace numeric, namespace boost
 </span></pre>
 <a name="boost_numericconversion.numeric_converter_policy_classes.policy_float2introunder.math_functions_used_by_the_rounder_policies"></a><h5>
-<a name="id2633882"></a>
+<a name="id2634042"></a>
         <a href="numeric_converter_policy_classes.html#boost_numericconversion.numeric_converter_policy_classes.policy_float2introunder.math_functions_used_by_the_rounder_policies">Math
         Functions used by the rounder policies</a>
       </h5>
@@ -422,11 +410,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="conversion_traits___traits_class.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="improved_numeric_cast__.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="conversion_traits___traits_class.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="improved_numeric_cast__.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Modified: trunk/libs/numeric/conversion/doc/html/boost_numericconversion/type_requirements_and_user_defined_types_support.html
==============================================================================
--- trunk/libs/numeric/conversion/doc/html/boost_numericconversion/type_requirements_and_user_defined_types_support.html	(original)
+++ trunk/libs/numeric/conversion/doc/html/boost_numericconversion/type_requirements_and_user_defined_types_support.html	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
@@ -13,17 +13,17 @@
     traits class">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="converter___function_object.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="bounds___traits_class.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="converter___function_object.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="bounds___traits_class.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -86,7 +86,7 @@
       special semantics</a>
 </h3></div></div></div>
 <a name="boost_numericconversion.type_requirements_and_user_defined_types_support.udt_s_special_semantics.conversion_traits"></a><h5>
-<a name="id2625220"></a>
+<a name="id2625386"></a>
         <a href="type_requirements_and_user_defined_types_support.html#boost_numericconversion.type_requirements_and_user_defined_types_support.udt_s_special_semantics.conversion_traits">Conversion
         Traits</a>
       </h5>
@@ -130,7 +130,7 @@
         above.
       </p>
 <a name="boost_numericconversion.type_requirements_and_user_defined_types_support.udt_s_special_semantics.range_checking"></a><h5>
-<a name="id2625640"></a>
+<a name="id2625806"></a>
         <a href="type_requirements_and_user_defined_types_support.html#boost_numericconversion.type_requirements_and_user_defined_types_support.udt_s_special_semantics.range_checking">Range
         Checking</a>
       </h5>
@@ -183,11 +183,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="converter___function_object.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="bounds___traits_class.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="converter___function_object.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="bounds___traits_class.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Deleted: /trunk/libs/optional/doc/html/images/callouts/1.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/callouts/10.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/callouts/11.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/callouts/12.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/callouts/13.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/callouts/14.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/callouts/15.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/callouts/2.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/callouts/3.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/callouts/4.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/callouts/5.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/callouts/6.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/callouts/7.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/callouts/8.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/callouts/9.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/caution.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/home.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/important.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/next.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/note.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/prev.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/tip.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/up.png
==============================================================================
Binary file. No diff available.
Deleted: /trunk/libs/optional/doc/html/images/warning.png
==============================================================================
Binary file. No diff available.
Modified: trunk/libs/numeric/conversion/doc/html/index.html
==============================================================================
--- trunk/libs/numeric/conversion/doc/html/index.html	(original)
+++ trunk/libs/numeric/conversion/doc/html/index.html	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
@@ -8,16 +8,16 @@
 <link rel="next" href="boost_numericconversion/definitions.html" title="Definitions">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
-<div class="spirit-nav"><a accesskey="n" href="boost_numericconversion/definitions.html"><img src="images/next.png" alt="Next"></a></div>
+<div class="spirit-nav"><a accesskey="n" href="boost_numericconversion/definitions.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a></div>
 <div class="chapter" lang="en">
 <div class="titlepage"><div>
 <div><h2 class="title">
@@ -27,7 +27,7 @@
 </h3></div></div>
 <div><p class="copyright">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</p></div>
 <div><div class="legalnotice">
-<a name="id2604797"></a><p>
+<a name="id2604942"></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>
@@ -178,10 +178,10 @@
   </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><small><p>Last revised: June 04, 2007 at 03:08:57 GMT</p></small></td>
-<td align="right"><small></small></td>
+<td align="left"><p><small>Last revised: February 12, 2008 at 22:56:38 GMT</small></p></td>
+<td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
-<div class="spirit-nav"><a accesskey="n" href="boost_numericconversion/definitions.html"><img src="images/next.png" alt="Next"></a></div>
+<div class="spirit-nav"><a accesskey="n" href="boost_numericconversion/definitions.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a></div>
 </body>
 </html>
Modified: trunk/libs/numeric/conversion/doc/html/numeric_conversion/bibliography.html
==============================================================================
--- trunk/libs/numeric/conversion/doc/html/numeric_conversion/bibliography.html	(original)
+++ trunk/libs/numeric/conversion/doc/html/numeric_conversion/bibliography.html	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
@@ -10,17 +10,17 @@
     and Acknowledgments">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="history_and_acknowledgments.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="p" href="history_and_acknowledgments.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -73,11 +73,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="history_and_acknowledgments.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="p" href="history_and_acknowledgments.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a>
 </div>
 </body>
 </html>
Modified: trunk/libs/numeric/conversion/doc/html/numeric_conversion/history_and_acknowledgments.html
==============================================================================
--- trunk/libs/numeric/conversion/doc/html/numeric_conversion/history_and_acknowledgments.html	(original)
+++ trunk/libs/numeric/conversion/doc/html/numeric_conversion/history_and_acknowledgments.html	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
@@ -12,17 +12,17 @@
 <link rel="next" href="bibliography.html" title="Bibliography">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../boost_numericconversion/improved_numeric_cast__.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="bibliography.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="../boost_numericconversion/improved_numeric_cast__.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="bibliography.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -31,7 +31,7 @@
     and Acknowledgments</a>
 </h2></div></div></div>
 <a name="numeric_conversion.history_and_acknowledgments.pre_formal_review"></a><h4>
-<a name="id2636340"></a>
+<a name="id2636499"></a>
       <a href="history_and_acknowledgments.html#numeric_conversion.history_and_acknowledgments.pre_formal_review">Pre-formal
       review</a>
     </h4>
@@ -67,7 +67,7 @@
       </li>
 </ul></div>
 <a name="numeric_conversion.history_and_acknowledgments.post_formal_review"></a><h4>
-<a name="id2636492"></a>
+<a name="id2636651"></a>
       <a href="history_and_acknowledgments.html#numeric_conversion.history_and_acknowledgments.post_formal_review">Post-formal
       review</a>
     </h4>
@@ -85,11 +85,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../boost_numericconversion/improved_numeric_cast__.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="bibliography.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="../boost_numericconversion/improved_numeric_cast__.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="bibliography.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Deleted: trunk/libs/numeric/conversion/doc/index.html
==============================================================================
--- trunk/libs/numeric/conversion/doc/index.html	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
+++ (empty file)
@@ -1,119 +0,0 @@
-<HTML>
-  <HEAD>
-	 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-	 <LINK REL="stylesheet" TYPE="text/css" HREF="../../../../boost.css">
-         <TITLE>Boost Numeric Conversion Library - Index</TITLE>
-  </HEAD>
-  <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000ff" VLINK="#800080">
-	 <TABLE BORDER="0" CELLPADDING="7" CELLSPACING="0" WIDTH="100%"
-	  SUMMARY="header">
-		<TR>
-		  <TH VALIGN="top" WIDTH="300">
-			 <H3><A HREF="../../../../index.htm"><IMG HEIGHT="86" WIDTH="277"
-				ALT="C++ Boost" SRC="../../../../boost.png" BORDER="0"></A></H3> </TH>
-		  <TH VALIGN="top">
-			 <H1 ALIGN="center">Boost Numeric Conversion Library</H1> </TH>
-		</TR>
-	 </TABLE>
-         <HR>
-         <table border="0" cellpadding="0" width="100%">
-         <tr>
-           <td width="50%" valign="top"><font size="4">This Document</font><br><br>
-                  Overview<br>
-          History and Acknowledgments<br>
-                  Bibliography<br>
-           </td>
-           <td width="50%"><font size="4">Other Documents</font><br><br>
-                  Definitions<br>
-                  converter<>  function object<br>
-                  Type Requirements and User-defined-types support<br>
-                  bounds<> traits class<br>
-                  conversion_traits<>  traits class<br>
-                  Numeric Converter Policy Classes<br>
-                  Improved numeric_cast<><br>
-           </td>
-         </tr>
-         </table>
-
-<hr>
-<H2><A NAME="Overview"></A>Overview</H2>
-<P>The Boost Numeric Conversion library is a collection of tools to describe and perform
-conversions between values of different numeric types.</p>
-<p>The library includes a special alternative for a subset of <code>std::numeric_limits<></code>,
-the bounds<> traits class, which provides
-a consistent way to obtain the boundary values for the
-range of a numeric type.</p>
-<p>It also includes a set of trait classes which
-  describes the compile-time properties of a conversion from a source to a target
-  numeric type. Both arithmetic and <a href="definitions.html#numtypes">user-defined
-  numeric types</a> can be used.</p>
-<p>A policy-based converter object which uses <code>conversion_traits</code>
-to select an optimized implementation is supplied.
-Such implementation uses an optimal range checking code suitable for the source/target combination.<br>
-  The converter's out-of-range behavior can be customized via an OverflowHandler
-  policy.<br>
-For floating-point to integral conversions, the rounding mode can be selected via
-the Float2IntRounder policy.<br>
-  A custom low-level conversion routine (for UDTs for instance) can be passed
-  via a RawConverter policy.<br>
-  The optimized automatic range-checking logic can be overridden via a UserRangeChecker
-  policy.</p>
-<hr>
-<H2><A NAME="Ack"></A>History and Acknowledgments</H2>
-<p>Pre-formal review:</p>
-<blockquote>
-<p>Kevlin Henney, with help from David Abrahams and Beman Dawes, originally contributed
-the previous version of numeric_cast<> which already presented the idea of a runtime range check.<br>
-    Later, Eric Ford, Kevin Lynch and the author spotted some genericity problems
-    with that numeric_cast<> which prevented it from being used in a generic
-    layer of math functions.<br>
-An improved numeric_cast<> which properly handled all combinations of arithmetic types was presented.<br>
-    David Abrahams and Beman Dawes acknowledged the need of an improved version
-    of numeric_cast<> and supported the submission as originally laid out.
-    Daryl Walker and Darin Adler made some important comments and proposed fixes
-    to the original submission.</p>
-  <p>Special thanks go to Björn Karlsoon who helped the author considerably. Having
-    found the problems with numeric_cast<> himself, he revised very carefully
-    the original submission and spot a subtle bug in the range checking implementation.
-    He also wrote part of this documentation and proof-read and corrected other
-    parts. And most importantly: the features now presented here in this library
-    evolved from the original submission as a result of the useful private communications
-    between Björn and the author.</p>
-</blockquote>
-<p>Post-formal review:</p>
-<p>Guillaume Melquiond spoted some documentation and code issues, particularly about rounding conversions.<br>
-The following people contributed an important review of the design, documentation and code: Kevin Lynch, Thorsten Ottosen, Paul Bristow,
-Daryle Walker, Jhon Torjo, Eric Ford, Gennadiy Rozental.
-</p>
-<hr>
-<H2><A NAME="Ref"></A>Bibliography</H2>
-<ul>
-  <li>Standard Documents:
-    <ol>
-<li>ISO/IEC 14882:98  (C++98 Standard)</li>
-<li>ISO/IEC 9899:1999 (C99 Standard)</li>
-<li>ISO/IEC 10967-1 (Language Independent Arithmetic (LIA), Part I, 1994)</li>
-<li>ISO/IEC 2382-1:1993 (Information Technology - Vocabulary - Part I: Fundamental Terms)</li>
-<li>ANSI/IEEE 754-1985 [and IEC 60559:1989] (Binary floating-point)</li>
-<li>ANSI/IEEE 854-1988 (Radix Independent floating-point)</li>
-<li>ANSI X3/TR-1-82 (Dictionary for Information Processing Systems)</li>
-<li>ISO/IEC JTC1/SC22/WG14/N753 C9X Revision Proposal: LIA-1 Binding: Rationale</li>
-</ol>
-</li>
-<li>Papers:
-<ol>
-<li>David Goldberg <A href="http://citeseer.ist.psu.edu/goldberg91what.html">
-    What Every Computer Scientist Should Know About Floating-Point Arithmetic</A></li>
-<li>Prof. William Kahan papers on floating-point.</li>
-</ol>
-</li>
-</ul>
-<HR>
-<P>Revised 23 June 2004</P>
-<p>© Copyright Fernando Luis Cacciola Carballal, 2004</p>
-<p> Use, modification, and distribution are subject to the Boost Software
-License, Version 1.0. (See accompanying file <a href="../../../../LICENSE_1_0.txt">
-LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
-www.boost.org/LICENSE_1_0.txt</a>)</p>
-</body>
-</HTML>
\ No newline at end of file
Deleted: trunk/libs/numeric/conversion/doc/numeric_cast.html
==============================================================================
--- trunk/libs/numeric/conversion/doc/numeric_cast.html	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
+++ (empty file)
@@ -1,134 +0,0 @@
-<HTML>
-  <HEAD>
-         <LINK REL="stylesheet" TYPE="text/css" HREF="../../../../boost.css">
-         <TITLE>Boost Numeric Conversion Library - numeric_cast</TITLE>
-  </HEAD>
-  <BODY BGCOLOR="#FFFFFF" TEXT="#000000">
-	 <TABLE BORDER="0" CELLPADDING="7" CELLSPACING="0" WIDTH="100%"
-	  SUMMARY="header">
-		<TR>
-		  <TH VALIGN="top" WIDTH="300">
-			 <H3><A HREF="../../../../index.htm"><IMG HEIGHT="86" WIDTH="277"
-				ALT="C++ Boost" SRC="../../../../boost.png" BORDER="0"></A></H3> </TH> 
-		  <TH VALIGN="top"> 
-			 <H1 ALIGN="center">Boost Numeric Conversion Library</H1> 
-			 <H1>Header <A
-				HREF="../../../../boost/numeric/conversion/cast.hpp">boost/numeric/conversion/cast.hpp</A></H1> </TH>
-		</TR>
-	 </TABLE><HR>
-	 <H2>Contents</H2>
-	 <UL>
-		<LI>Introduction</LI>
-		<LI>numeric_cast</LI>
-		<LI>Examples</LI>
-	 </UL> <HR>
-	 <H2><A NAME="introduction">Introduction</A></H2>
-	 <P>The lack of preservation of range makes conversions between numeric
-		types error prone. This is true for both implicit conversions and explicit
-		conversions (through static_cast).  numeric_cast
-		detects loss of range when a numeric type is converted, and throws an
-		exception if the range cannot be preserved.</P>
-	 <P>There are several situations where conversions are unsafe: </P>
-	 <UL>
-		<LI>Conversions from an integral type with a wider range than the target
-		  integral type.</LI>
-		<LI> Conversions from unsigned to signed (and vice versa) integral
-		  types.</LI>
-		<LI> Conversions from floating point types to integral types.</LI>
-	 </UL>
-	 <P>The C++ Standard does not specify the behavior when a numeric type is
-		assigned a value that cannot be represented by the type, except for unsigned
-		integral types [3.9.1.4], which must obey the laws of arithmetic modulo
-		2<SUP>n</SUP> (this implies that the result will be reduced modulo the number
-		that is one greater than the largest value that can be represented). The fact
-		that the behavior for overflow is undefined for all conversions (except the
-		aforementioned unsigned to unsigned) makes any code that may produce positive
-		or negative overflows exposed to portability issues.</P>
-	 <P>numeric_cast adheres to the rules for implicit conversions mandated by
-		the C++ Standard, such as truncating floating point types when converting to
-		integral types. The implementation must guarantee that for a conversion to a
-		type that can hold all possible values of the source type, there will be no
-		runtime overhead. <BR> <BR> </P> <HR>
-	 <H2><A NAME="numeric_cast"><CODE>numeric_cast</CODE></A></H2>
-	 <BLOCKQUOTE>
-		<PRE>template<typename Target, typename Source> inline
-typename boost::numeric::converter<Target,Source>::result_type
-numeric_cast ( Source arg )
-{
-   return boost::numeric::converter<Target,Source>::convert(arg);
-}
-</PRE> </BLOCKQUOTE>
-	 <P>numeric_cast returns the result of converting a value of type Source to a value of type
-		Target. If out-of-range is detected, an exception is thrown (see
-		bad_numeric_cast, <A
-		HREF="converter_policies.html#posovr">positive_overflow</A> and
-		negative_overflow). <BR> <BR> </P> <HR>
-	 <H2><A NAME="examples">Examples</A></H2>
-	 <P>The following example performs some typical conversions between numeric
-		types: </P>
-	 <BLOCKQUOTE>
-		<PRE>#include <boost/numeric/conversion/cast.hpp>
-#include <iostream>
-
-int main()
-{
-   using boost::numeric_cast;
-   
-   using boost::numeric::bad_numeric_cast;
-   using boost::numeric::positive_overflow;
-   using boost::numeric::negative_overflow;
-   
-   try 
-   {
-      int i=42;
-      short s=numeric_cast<short>(i); // This conversion succeeds (is in range)
-   }
-   catch(negative_overflow& e) {
-      std::cout << e.what();
-   }
-   catch(positive_overflow& e) {
-      std::cout << e.what();
-   }
-
-   try 
-   {
-      float f=-42.1234;
-      
-      // This will cause a boost::numeric::negative_overflow exception to be thrown
-      unsigned int i=numeric_cast<unsigned int>(f);
-   }
-   catch(bad_numeric_cast& e) {
-      std::cout << e.what();
-   }
-
-   double d= f + numeric_cast<double>(123); // int -> double
-
-   unsigned long l=std::numeric_limits<unsigned long>::max();
-      
-   try 
-   {
-     // This will cause a boost::numeric::positive_overflow exception to be thrown
-     // NOTE: *operations* on unsigned integral types cannot cause overflow
-     // but *conversions* to a signed type ARE range checked by numeric_cast.
-     
-     unsigned char c=numeric_cast<unsigned char>(l);
-   }
-   catch(positive_overflow& e) {
-      std::cout << e.what();
-   }
-
-
-   return 0;
-}</PRE> </BLOCKQUOTE> <BR> <BR> <HR>
-<HR>
-<P>Back to Numeric Conversion library index</P>
-<HR>
-<P>Revised 20 May 2006</P>
-<p>© Copyright Boost 1999</p>
-<p>© Copyright Fernando Luis Cacciola Carballal, 1999,2004</p>
-<p> Use, modification, and distribution are subject to the Boost Software
-License, Version 1.0. (See accompanying file <a href="../../../../LICENSE_1_0.txt">
-LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
-www.boost.org/LICENSE_1_0.txt</a>)</p>
-</BODY>
-</HTML>
\ No newline at end of file
Deleted: trunk/libs/numeric/conversion/doc/requirements.html
==============================================================================
--- trunk/libs/numeric/conversion/doc/requirements.html	2008-02-14 13:08:16 EST (Thu, 14 Feb 2008)
+++ (empty file)
@@ -1,116 +0,0 @@
-<HTML>
-  <HEAD>
-	 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-	 <LINK REL="stylesheet" TYPE="text/css" HREF="../../../../boost.css">
-	 <TITLE>Boost Numeric Conversion Library - Type Requirements and User-defined-types support</TITLE>
-  </HEAD>
-  <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000ff" VLINK="#800080">
-	 <TABLE BORDER="0" CELLPADDING="7" CELLSPACING="0" WIDTH="100%"
-	  SUMMARY="header">
-		<TR>
-		  <TH VALIGN="top" WIDTH="300">
-			 <H3><A HREF="../../../../index.htm"><IMG HEIGHT="86" WIDTH="277"
-				ALT="C++ Boost" SRC="../../../../boost.png" BORDER="0"></A></H3> </TH> 
-		  <TH VALIGN="top"> 
-			 <H1 ALIGN="center">Boost Numeric Conversion Library</H1>
-                         <H1 ALIGN="center">Type Requirements<br>and<br>User-defined-types support</H1>
-			 </TH>
-		</TR>
-	 </TABLE> <HR>
-	 <H2>Contents</H2>
-	 <DL CLASS="page-index">
-	     <DT>Type Requirements</DT>
-	     <DT>UDT's special semantics</DT>
-	     <DT>Special Policies</DT>
-	 </DL>
-
-
-	 <HR>
-
-<H2><A NAME="req"></A>Type Requirements</H2>
-<P>Both arithmetic (built-in) and user-defined numeric types require proper specialization of
-<CODE>std::numeric_limits<></CODE> (that is, with (in-class) integral constants).<br>
-The library uses <CODE>std::numeric_limits<T>::is_specialized</CODE> to detect whether
-  the type is builtin or user defined, and <CODE>std::numeric_limits<T>::is_integer,
-  std::numeric_limits<T>::is_signed</CODE>
-  to detect whether the type is integer or floating point; and whether it is signed/unsigned.</P>
-<P>The default Float2IntRounder policies uses unqualified calls to functions <CODE>floor()
-  and ceil()</CODE>; but the standard functions are introduced in scope by a
-  using directive:</P>
-<PRE>using std::floor ; return floor(s); </PRE>
-<P>Therefore, for builtin arithmetic types, the std functions will be used.
-  User defined types should provide overloaded versions of these functions in
-  order to use the default rounder policies. If these overloads are defined within a user namespace
-  argument dependent lookup (ADL) should find them, but if your compiler has a weak ADL
-  you might need to put these functions some place else or write your own rounder policy.</P>
-<P>The default Trunc<> rounder policy needs to determine if the source value
-  is positive or not, and for this it evaluates the expression "s < static_cast<S>(0)".
-  Therefore, user defined types require a visible operator < in order to use
-  the Trunc<> policy (the default).<br>
-</P>
-
-<HR>
-<H2><A NAME="sem"></A>UDT's special semantics</H2>
-
-<p><u>Conversion Traits</u></p>
-<p>If a User Defined Type is involved in a conversion, it is <i>assumed</i> that
-  the UDT has wider range than any built-in
-  type, and consequently the values of some <code>converter_traits<></code>
-  members are hardwired regardless of the reality. The following table summarizes
-  this:</p>
-
-<li>Target=UDT and Source=built-in
-  <blockquote><code>subranged=false</code><br>
-    <code>supertype=Target</code><br>
-    <code>subtype=Source</code></blockquote>
-  </li>
-
-  <li>Target=built-in and Source=UDT
-    <blockquote><code>subranged=true</code><br>
-    <code>supertype=Source</code><br>
-    <code>subtype=Target</code></blockquote>
-  </li>
-
-<li>Target=UDT and Source=UDT
-  <blockquote><code>subranged=false</code><br>
-    <code>supertype=Target</code><br>
-    <code>subtype=Source</code></blockquote>
-  </li>
-<p>The Traits member <code>udt_mixture</code> can be used to detect whether a
-  UDT is involved and to infer the validity of the other members as shown above.</p>
-<p><u>Range Checking</u></p>
-<p>Because User Defined Numeric Types might have peculiar ranges (such as an unbounded
-  range), this library does not attempt to supply a meaningful range checking
-  logic when UDTs are involved in a conversion. Therefore, if either Target or
-  Source are not built-in types, the bundled range checking of the <code>converter<></code>
-  function object is automatically disabled. However, it is possible to supply
-  a user-defined range-checker. See Special Policies</p>
-
-<HR>
-<H2><A NAME="hooks"></A>Special Policies</H2>
-<p>There are two components of the <code>converter<></code> class that might
-  require special behavior if User Defined Numeric Types are involved: the Range
-  Checking and the Raw Conversion.</p>
-<p>When both Target and Source are built-in types, the converter class uses an
-  <i>internal</i> range checking logic which is optimized and customized for the
-  combined properties of the types.<br>
-  However, this internal logic is disabled when either type is User Defined. In
-  this case, the user can specify an <i>external</i> range checking policy which
-  will be used in place of the internal code.
-  See UserRangeChecker policy for details.</p>
-<p>The converter class performs the actual conversion using a Raw Converter policy.
-  The default raw converter simply performs a <code>"static_cast<Target>(source)".</code><br>
-  However, if the a UDT is involved, the static_cast might not work. In this case,
-  the user can implement and pass a different raw converter policy.
-  See RawConverter policy for details </p>
-<HR>
-<P>Back to Numeric Conversion library index</P>
-<HR>
-<P>Revised 23 June 2004</P>
-<p>© Copyright Fernando Luis Cacciola Carballal, 2004</p>
-<p> Use, modification, and distribution are subject to the Boost Software
-License, Version 1.0. (See accompanying file <a href="../../../../LICENSE_1_0.txt">
-LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
-www.boost.org/LICENSE_1_0.txt</a>)</p>
-</BODY>
-</HTML>