$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: boost_at_[hidden]
Date: 2008-06-01 04:42:07
Author: matthiasschabel
Date: 2008-06-01 04:42:05 EDT (Sun, 01 Jun 2008)
New Revision: 46011
URL: http://svn.boost.org/trac/boost/changeset/46011
Log:
remove stringstream stuff, minor fixes/updates
Text files modified: 
   sandbox/units/libs/units/example/complex.cpp            |    74 +++-----------------------              
   sandbox/units/libs/units/example/conversion.cpp         |    85 +++++------------------------           
   sandbox/units/libs/units/example/dimension.cpp          |     3                                         
   sandbox/units/libs/units/example/heterogeneous_unit.cpp |    83 ++++++-----------------------           
   sandbox/units/libs/units/example/kitchen_sink.cpp       |    97 +++++++++++++++------------------       
   sandbox/units/libs/units/example/quantity.cpp           |    68 +-----------------------                
   sandbox/units/libs/units/example/quaternion.cpp         |    61 +-------------------                    
   sandbox/units/libs/units/example/radar_beam_height.cpp  |   113 ++++++++------------------------------- 
   sandbox/units/libs/units/example/temperature.cpp        |    71 +-----------------------                
   sandbox/units/libs/units/example/test_system.hpp        |     8 +-                                      
   sandbox/units/libs/units/example/tutorial.cpp           |    12 ++--                                    
   sandbox/units/libs/units/example/unit.cpp               |    51 -----------------                       
   12 files changed, 137 insertions(+), 589 deletions(-)
Modified: sandbox/units/libs/units/example/complex.cpp
==============================================================================
--- sandbox/units/libs/units/example/complex.cpp	(original)
+++ sandbox/units/libs/units/example/complex.cpp	2008-06-01 04:42:05 EDT (Sun, 01 Jun 2008)
@@ -51,8 +51,6 @@
 #include <cmath>
 #include <complex>
 #include <iostream>
-#include <sstream>
-#include <algorithm>
 
 #include <boost/mpl/list.hpp>
 
@@ -98,17 +96,20 @@
             r_ += val;
             return *this;
         }
+        
         this_type& operator-=(const T& val)
         {
             r_ -= val;
             return *this;
         }
+        
         this_type& operator*=(const T& val)
         {
             r_ *= val;
             i_ *= val;
             return *this;
         }
+        
         this_type& operator/=(const T& val)
         {
             r_ /= val;
@@ -122,17 +123,20 @@
             i_ += source.i_;
             return *this;
         }
+        
         this_type& operator-=(const this_type& source)
         {
             r_ -= source.r_;
             i_ -= source.i_;
             return *this;
         }
+        
         this_type& operator*=(const this_type& source)
         {
             *this = *this * source;
             return *this;
         }
+        
         this_type& operator/=(const this_type& source)
         {
             *this = *this / source;
@@ -367,8 +371,6 @@
     using namespace boost::math;
     using namespace boost::units;
     using namespace boost::units::test;
-
-    std::stringstream sstream1, sstream2;
     
     {
     //[complex_snippet_1
@@ -377,7 +379,7 @@
     length_dimension    L(complex<double>(2.0,1.0)*meters);
     //]
     
-    sstream1  << "+L      = " << +L << std::endl
+    std::cout << "+L      = " << +L << std::endl
               << "-L      = " << -L << std::endl
               << "L+L     = " << L+L << std::endl
               << "L-L     = " << L-L << std::endl
@@ -397,7 +399,7 @@
     length_dimension    L(2.0*meters,1.0*meters);
     //]
     
-    sstream1  << "+L      = " << +L << std::endl
+    std::cout << "+L      = " << +L << std::endl
               << "-L      = " << -L << std::endl
               << "L+L     = " << L+L << std::endl
               << "L-L     = " << L-L << std::endl
@@ -410,63 +412,5 @@
               << std::endl;
     }
 
-
-// Expected output:
-
-
-    sstream2 << "+L      = 2 + 1 i m" << std::endl;
-    sstream2 << "-L      = -2 + -1 i m" << std::endl;
-    sstream2 << "L+L     = 4 + 2 i m" << std::endl;
-    sstream2 << "L-L     = 0 + 0 i m" << std::endl;
-    sstream2 << "L*L     = 3 + 4 i m^2" << std::endl;
-    sstream2 << "L/L     = 1 + 0 i dimensionless" << std::endl;
-    sstream2 << "L^3     = 2 + 11 i m^3" << std::endl;
-    sstream2 << "L^(3/2) = 2.56713 + " << 2.14246818967038 << " i m^(3/2)" << std::endl;
-    sstream2 << "3vL     = 1.29207 + 0.201294 i m^(1/3)" << std::endl;
-    sstream2 << "(3/2)vL = " << 1.62893714592218 <<  " + " << 0.520174502304546 << " i m^(2/3)" << std::endl;
-    sstream2 << std::endl;
-    sstream2 << "+L      = 2 m + 1 m i" << std::endl;
-    sstream2 << "-L      = -2 m + -1 m i" << std::endl;
-    sstream2 << "L+L     = 4 m + 2 m i" << std::endl;
-    sstream2 << "L-L     = 0 m + 0 m i" << std::endl;
-    sstream2 << "L*L     = 3 m^2 + 4 m^2 i" << std::endl;
-    sstream2 << "L/L     = 1 dimensionless + 0 dimensionless i" << std::endl;
-    sstream2 << "L^3     = 2 m^3 + 11 m^3 i" << std::endl;
-    sstream2 << "L^(3/2) = 2.56713 m^(3/2) + " << 2.14246818967038 << " m^(3/2) i" << std::endl;
-    sstream2 << "3vL     = 1.29207 m^(1/3) + 0.201294 m^(1/3) i" << std::endl;
-    sstream2 << "(3/2)vL = " << 1.62893714592218 << " m^(2/3) + " << 0.520174502304546 << " m^(2/3) i" << std::endl;
-    sstream2 << std::endl;
-
-    std::string str1(sstream1.str());
-    std::string str2(sstream2.str());
-
-    std::cout << str1;
-    
-    if(str1 == str2) 
-    {
-        return(0);
-    } 
-    else 
-    {
-        std::cout << std::endl << str2 << std::endl;
-        
-        if(str1.size() < str2.size()) 
-        {
-            std::string::iterator iter =
-                std::mismatch(str1.begin(), str1.end(), str2.begin()).first;
-            
-            std::cout << iter - str1.begin() << std::endl;
-            std::cout << std::count(str1.begin(), iter, '\n') << std::endl;
-        } 
-        else 
-        {
-            std::string::iterator iter =
-                std::mismatch(str2.begin(), str2.end(), str1.begin()).first;
-            
-            std::cout << iter - str2.begin() << std::endl;
-            std::cout << std::count(str2.begin(), iter, '\n') << std::endl;
-        }
-        
-        return(-1);
-    }
+    return 0;
 }
Modified: sandbox/units/libs/units/example/conversion.cpp
==============================================================================
--- sandbox/units/libs/units/example/conversion.cpp	(original)
+++ sandbox/units/libs/units/example/conversion.cpp	2008-06-01 04:42:05 EDT (Sun, 01 Jun 2008)
@@ -35,7 +35,7 @@
 volume (m^3)  = 1 m^3
 
 energy (joules) = 1 J
-energy (ergs)   = 1e+07 cm^2 g s^-2
+energy (ergs)   = 1e+07 erg
 energy (joules) = 1 J
 
 velocity (2 m/s)  = 2 m s^-1
@@ -46,12 +46,11 @@
 **/
 
 #include <iostream>
-#include <sstream>
-#include <algorithm>
 
 #include <boost/units/io.hpp>
 #include <boost/units/pow.hpp>
 #include <boost/units/systems/cgs.hpp>
+#include <boost/units/systems/cgs/io.hpp>
 #include <boost/units/systems/si.hpp>
 #include <boost/units/systems/si/io.hpp>
 
@@ -59,9 +58,6 @@
 
 int main()
 {
-
-    std::stringstream sstream1, sstream2;
-
     // test quantity_cast
     {
     // implicit value_type conversions
@@ -84,7 +80,7 @@
     
     swap(L5,L6);
     
-    sstream1  << "L1 = " << L1 << std::endl
+    std::cout << "L1 = " << L1 << std::endl
               << "L2 = " << L2 << std::endl
               << "L3 = " << L3 << std::endl
               << "L4 = " << L4 << std::endl
@@ -109,71 +105,20 @@
                             v2(2.0*cgs::centimeters/cgs::second);
     //]
     
-    sstream1 << "volume (m^3)  = " << vs << std::endl
-             << "volume (cm^3) = " << vc << std::endl
-             << "volume (m^3)  = " << vs2 << std::endl
-             << std::endl;
+    std::cout << "volume (m^3)  = " << vs << std::endl
+              << "volume (cm^3) = " << vc << std::endl
+              << "volume (m^3)  = " << vs2 << std::endl
+              << std::endl;
             
-    sstream1 << "energy (joules) = " << es << std::endl
-             << "energy (ergs)   = " << ec << std::endl
-             << "energy (joules) = " << es2 << std::endl
-             << std::endl;
+    std::cout << "energy (joules) = " << es << std::endl
+              << "energy (ergs)   = " << ec << std::endl
+              << "energy (joules) = " << es2 << std::endl
+              << std::endl;
             
-    sstream1 << "velocity (2 m/s)  = " << v1 << std::endl
-             << "velocity (2 cm/s) = " << v2 << std::endl
-             << std::endl;
+    std::cout << "velocity (2 m/s)  = " << v1 << std::endl
+              << "velocity (2 cm/s) = " << v2 << std::endl
+              << std::endl;
     }
-    
-    sstream2  << "L1 = 2 m" << std::endl;
-    sstream2  << "L2 = 2 m" << std::endl;
-    sstream2  << "L3 = 2 m" << std::endl;
-    sstream2  << "L4 = 200 cm" << std::endl;
-    sstream2  << "L5 = 5 m" << std::endl;
-    sstream2  << "L6 = 4 m" << std::endl;
-    sstream2  << "L7 = 200 cm" << std::endl;
-    sstream2  << std::endl;
-    sstream2  << "volume (m^3)  = 1 m^3" << std::endl;
-    sstream2  << "volume (cm^3) = " << 1e6 << " cm^3" << std::endl;
-    sstream2  << "volume (m^3)  = 1 m^3" << std::endl;
-    sstream2  << std::endl;
-    sstream2  << "energy (joules) = 1 J" << std::endl;
-    sstream2  << "energy (ergs)   = " << 1e7 << " cm^2 g s^-2" << std::endl;
-    sstream2  << "energy (joules) = 1 J" << std::endl;
-    sstream2  << std::endl;
-    sstream2  << "velocity (2 m/s)  = 2 m s^-1" << std::endl;
-    sstream2  << "velocity (2 cm/s) = 0.02 m s^-1" << std::endl;
-    sstream2  << std::endl;
-
-    std::string str1(sstream1.str());
-    std::string str2(sstream2.str());
 
-    std::cout << str1;
-    
-    if(str1 == str2) 
-    {
-        return(0);
-    } 
-    else 
-    {
-        std::cout << std::endl << str2 << std::endl;
-        
-        if(str1.size() < str2.size()) 
-        {
-            std::string::iterator iter =
-                std::mismatch(str1.begin(), str1.end(), str2.begin()).first;
-            
-            std::cout << iter - str1.begin() << std::endl;
-            std::cout << std::count(str1.begin(), iter, '\n') << std::endl;
-        } 
-        else 
-        {
-            std::string::iterator iter =
-                std::mismatch(str2.begin(), str2.end(), str1.begin()).first;
-            
-            std::cout << iter - str2.begin() << std::endl;
-            std::cout << std::count(str2.begin(), iter, '\n') << std::endl;
-        }
-        
-        return(-1);
-    }
+    return 0;
 }
Modified: sandbox/units/libs/units/example/dimension.cpp
==============================================================================
--- sandbox/units/libs/units/example/dimension.cpp	(original)
+++ sandbox/units/libs/units/example/dimension.cpp	2008-06-01 04:42:05 EDT (Sun, 01 Jun 2008)
@@ -35,7 +35,6 @@
 // undefine this if you don't want to demangle symbols
 // need to link with libboost_regex to get demangling functionality
 #define MCS_USE_DEMANGLING
-//#define MCS_USE_BOOST_REGEX_DEMANGLING
 
 #include <boost/type_traits/is_same.hpp>
 
@@ -82,7 +81,7 @@
               << simplify_typename(time_dimension()) << std::endl
               << "energy_dimension  = "
               << simplify_typename(energy_dimension()) << std::endl;
-    
+                  
     //[dimension_snippet_1
     typedef mpl::times<length_dimension,mass_dimension>::type   LM_type;
     typedef mpl::divides<length_dimension,time_dimension>::type L_T_type;
Modified: sandbox/units/libs/units/example/heterogeneous_unit.cpp
==============================================================================
--- sandbox/units/libs/units/example/heterogeneous_unit.cpp	(original)
+++ sandbox/units/libs/units/example/heterogeneous_unit.cpp	2008-06-01 04:42:05 EDT (Sun, 01 Jun 2008)
@@ -33,6 +33,7 @@
 //]
 
 //[heterogeneous_unit_output_2
+1.5 cm m
 0.015 m^2
 //]
 
@@ -43,8 +44,6 @@
 //#define MCS_USE_BOOST_REGEX_DEMANGLING
 
 #include <iostream>
-#include <sstream>
-#include <algorithm>
 
 #include <boost/units/io.hpp>
 #include <boost/units/pow.hpp>
@@ -57,78 +56,32 @@
 
 int main()
 {
-    std::stringstream sstream1, sstream2;
-
     //[heterogeneous_unit_snippet_1
     quantity<si::length>        L(1.5*si::meter);
     quantity<cgs::mass>         M(1.0*cgs::gram);
     
-    sstream1 << L << std::endl
-             << M << std::endl
-             << L*M << std::endl
-             << L/M << std::endl
-             << std::endl;
+    std::cout << L << std::endl
+              << M << std::endl
+              << L*M << std::endl
+              << L/M << std::endl
+              << std::endl;
               
-    sstream1 << 1.0*si::meter*si::kilogram/pow<2>(si::second) << std::endl
-             << 1.0*si::meter*si::kilogram/pow<2>(si::second)/si::meter
-             << std::endl << std::endl;
-
-    sstream1 << 1.0*cgs::centimeter*si::kilogram/pow<2>(si::second) << std::endl
-             << 1.0*cgs::centimeter*si::kilogram/pow<2>(si::second)/si::meter
-             << std::endl << std::endl;
+    std::cout << 1.0*si::meter*si::kilogram/pow<2>(si::second) << std::endl
+              << 1.0*si::meter*si::kilogram/pow<2>(si::second)/si::meter
+              << std::endl << std::endl;
+
+    std::cout << 1.0*cgs::centimeter*si::kilogram/pow<2>(si::second) << std::endl
+              << 1.0*cgs::centimeter*si::kilogram/pow<2>(si::second)/si::meter
+              << std::endl << std::endl;
     //]
     
-    //heterogeneous_unit_snippet_2
+    //[heterogeneous_unit_snippet_2
     quantity<si::area>      A(1.5*si::meter*cgs::centimeter);
     
-    sstream1 << A << std::endl
-             << std::endl;
+    std::cout << 1.5*si::meter*cgs::centimeter << std::endl
+              << A << std::endl
+              << std::endl;
     //]
 
-    sstream2 << "1.5 m" << std::endl
-             << "1 g" << std::endl
-             << "1.5 m g" << std::endl
-             << "1.5 m g^-1" << std::endl
-             << std::endl
-             << "1 N" << std::endl
-             << "1 kg s^-2" << std::endl
-             << std::endl
-             << "1 cm kg s^-2" << std::endl
-             << "1 cm m^-1 kg s^-2" << std::endl
-             << std::endl
-             << "0.015 m^2" << std::endl
-             << std::endl;
-            
-    std::string str1(sstream1.str());
-    std::string str2(sstream2.str());
-
-    std::cout << str1;
-    
-    if(str1 == str2) 
-    {
-        return(0);
-    } 
-    else 
-    {
-        std::cout << std::endl << str2 << std::endl;
-        
-        if(str1.size() < str2.size()) 
-        {
-            std::string::iterator iter =
-                std::mismatch(str1.begin(), str1.end(), str2.begin()).first;
-            
-            std::cout << iter - str1.begin() << std::endl;
-            std::cout << std::count(str1.begin(), iter, '\n') << std::endl;
-        } 
-        else 
-        {
-            std::string::iterator iter =
-                std::mismatch(str2.begin(), str2.end(), str1.begin()).first;
-            
-            std::cout << iter - str2.begin() << std::endl;
-            std::cout << std::count(str2.begin(), iter, '\n') << std::endl;
-        }
-        
-        return(-1);
-    }
+    return 0;
 }
Modified: sandbox/units/libs/units/example/kitchen_sink.cpp
==============================================================================
--- sandbox/units/libs/units/example/kitchen_sink.cpp	(original)
+++ sandbox/units/libs/units/example/kitchen_sink.cpp	2008-06-01 04:42:05 EDT (Sun, 01 Jun 2008)
@@ -133,17 +133,12 @@
 //]
 
 //[kitchen_sink_output_15
-m^2 kg s^-1 rad^-1
-dimensionless
-m^2 kg s^-2 rad^-1
-dimensionless
-J
+I*w   = m^2 kg s^-1 rad^-1
+I*w/L = dimensionless
+I*w^2 = J
 //]
 
 //[kitchen_sink_output_16
-//]
-
-//[kitchen_sink_output_17
 1 F
 1 kat
 1 S
@@ -159,7 +154,7 @@
 1 T
 1 W
 1 Pa
-1 Ω
+1 Ohm
 //]
 
 //[kitchen_sink_output_18
@@ -187,8 +182,6 @@
 #include <cmath>
 #include <complex>
 #include <iostream>
-#include <algorithm>
-#include <sstream>
 
 #include <boost/typeof/std/complex.hpp>
 
@@ -453,58 +446,56 @@
               << std::endl << std::endl;
     }
     
-	/// check angular units
+	/// check moment of inertia/angular momentum/rotational energy
         
         //[kitchen_sink_snippet_9
         std::cout << symbol_format
-	          << moment_of_inertia()*angular_velocity() << std::endl
-	          << moment_of_inertia()*angular_velocity()/angular_momentum() << std::endl
-	          << moment_of_inertia()*angular_velocity()/seconds << std::endl
-              << moment_of_inertia()*angular_velocity()/(torque()*seconds) << std::endl
-              << moment_of_inertia()*pow<2>(angular_velocity()) << std::endl
+	          << "I*w   = " << moment_of_inertia()*angular_velocity() << std::endl
+	          << "I*w/L = " << moment_of_inertia()*angular_velocity()/angular_momentum() << std::endl
+	          << "I*w^2 = " << moment_of_inertia()*pow<2>(angular_velocity()) << std::endl
               << std::endl;
         //]
         
         //[kitchen_sink_snippet_10
-    std::cout << typename_format 
-              << quantity<capacitance>(1.0*farad) << std::endl
-              << quantity<catalytic_activity>(1.0*katal) << std::endl
-              << quantity<conductance>(1.0*siemen) << std::endl
-              << quantity<electric_charge>(1.0*coulomb) << std::endl
-              << quantity<electric_potential>(1.0*volt) << std::endl
-              << quantity<energy>(1.0*joule) << std::endl
-              << quantity<force>(1.0*newton) << std::endl
-              << quantity<frequency>(1.0*hertz) << std::endl
-              << quantity<illuminance>(1.0*lux) << std::endl
-              << quantity<inductance>(1.0*henry) << std::endl
-              << quantity<luminous_flux>(1.0*lumen) << std::endl
-              << quantity<magnetic_flux>(1.0*weber) << std::endl
-              << quantity<magnetic_flux_density>(1.0*tesla) << std::endl
-              << quantity<power>(1.0*watt) << std::endl
-              << quantity<pressure>(1.0*pascals) << std::endl
-              << quantity<resistance>(1.0*ohm) << std::endl
-              << std::endl;
+//    std::cout << typename_format 
+//              << quantity<capacitance>(1.0*farad) << std::endl
+//              << quantity<catalytic_activity>(1.0*katal) << std::endl
+//              << quantity<conductance>(1.0*siemen) << std::endl
+//              << quantity<electric_charge>(1.0*coulomb) << std::endl
+//              << quantity<electric_potential>(1.0*volt) << std::endl
+//              << quantity<energy>(1.0*joule) << std::endl
+//              << quantity<force>(1.0*newton) << std::endl
+//              << quantity<frequency>(1.0*hertz) << std::endl
+//              << quantity<illuminance>(1.0*lux) << std::endl
+//              << quantity<inductance>(1.0*henry) << std::endl
+//              << quantity<luminous_flux>(1.0*lumen) << std::endl
+//              << quantity<magnetic_flux>(1.0*weber) << std::endl
+//              << quantity<magnetic_flux_density>(1.0*tesla) << std::endl
+//              << quantity<power>(1.0*watt) << std::endl
+//              << quantity<pressure>(1.0*pascals) << std::endl
+//              << quantity<resistance>(1.0*ohm) << std::endl
+//              << std::endl;
     //]
         
         //[kitchen_sink_snippet_11
-    std::cout << raw_format 
-              << quantity<capacitance>(1.0*farad) << std::endl
-              << quantity<catalytic_activity>(1.0*katal) << std::endl
-              << quantity<conductance>(1.0*siemen) << std::endl
-              << quantity<electric_charge>(1.0*coulomb) << std::endl
-              << quantity<electric_potential>(1.0*volt) << std::endl
-              << quantity<energy>(1.0*joule) << std::endl
-              << quantity<force>(1.0*newton) << std::endl
-              << quantity<frequency>(1.0*hertz) << std::endl
-              << quantity<illuminance>(1.0*lux) << std::endl
-              << quantity<inductance>(1.0*henry) << std::endl
-              << quantity<luminous_flux>(1.0*lumen) << std::endl
-              << quantity<magnetic_flux>(1.0*weber) << std::endl
-              << quantity<magnetic_flux_density>(1.0*tesla) << std::endl
-              << quantity<power>(1.0*watt) << std::endl
-              << quantity<pressure>(1.0*pascals) << std::endl
-              << quantity<resistance>(1.0*ohm) << std::endl
-              << std::endl;
+//    std::cout << raw_format 
+//              << quantity<capacitance>(1.0*farad) << std::endl
+//              << quantity<catalytic_activity>(1.0*katal) << std::endl
+//              << quantity<conductance>(1.0*siemen) << std::endl
+//              << quantity<electric_charge>(1.0*coulomb) << std::endl
+//              << quantity<electric_potential>(1.0*volt) << std::endl
+//              << quantity<energy>(1.0*joule) << std::endl
+//              << quantity<force>(1.0*newton) << std::endl
+//              << quantity<frequency>(1.0*hertz) << std::endl
+//              << quantity<illuminance>(1.0*lux) << std::endl
+//              << quantity<inductance>(1.0*henry) << std::endl
+//              << quantity<luminous_flux>(1.0*lumen) << std::endl
+//              << quantity<magnetic_flux>(1.0*weber) << std::endl
+//              << quantity<magnetic_flux_density>(1.0*tesla) << std::endl
+//              << quantity<power>(1.0*watt) << std::endl
+//              << quantity<pressure>(1.0*pascals) << std::endl
+//              << quantity<resistance>(1.0*ohm) << std::endl
+//              << std::endl;
     //]
         
         //[kitchen_sink_snippet_12
Modified: sandbox/units/libs/units/example/quantity.cpp
==============================================================================
--- sandbox/units/libs/units/example/quantity.cpp	(original)
+++ sandbox/units/libs/units/example/quantity.cpp	2008-06-01 04:42:05 EDT (Sun, 01 Jun 2008)
@@ -54,8 +54,6 @@
 
 #include <complex>
 #include <iostream>
-#include <sstream>
-#include <algorithm>
 
 #include <boost/mpl/list.hpp>
 
@@ -72,15 +70,13 @@
     using namespace boost::units;
     using namespace boost::units::test;
 
-    std::stringstream sstream1, sstream2;
-    
     {
     //[quantity_snippet_1
     quantity<length> L = 2.0*meters;                     // quantity of length
     quantity<energy> E = kilograms*pow<2>(L/seconds);    // quantity of energy
     //]
     
-    sstream1  << "L                                 = " << L << std::endl
+    std::cout << "L                                 = " << L << std::endl
               << "L+L                               = " << L+L << std::endl
               << "L-L                               = " << L-L << std::endl
               << "L*L                               = " << L*L << std::endl
@@ -107,7 +103,7 @@
     quantity<energy,std::complex<double> > E(kilograms*pow<2>(L/seconds));
     //]
     
-    sstream1  << "L                                 = " << L << std::endl
+    std::cout << "L                                 = " << L << std::endl
               << "L+L                               = " << L+L << std::endl
               << "L-L                               = " << L-L << std::endl
               << "L*L                               = " << L*L << std::endl
@@ -128,63 +124,5 @@
               << std::endl;
     }
 
-    sstream2  << "L                                 = 2 m\n"
-              << "L+L                               = 4 m\n"
-              << "L-L                               = 0 m\n"
-              << "L*L                               = 4 m^2\n"
-              << "L/L                               = 1 dimensionless\n"
-              << "L*meter                           = 2 m^2\n"
-              << "kilograms*(L/seconds)*(L/seconds) = 4 m^2 kg s^-2\n"
-              << "kilograms*(L/seconds)^2           = 4 m^2 kg s^-2\n"
-              << "L^3                               = 8 m^3\n"
-              << "L^(3/2)                           = " << 2.82842712474619 << " m^(3/2)\n"
-              << "2vL                               = " << 1.4142135623731 << " m^(1/2)\n"
-              << "(3/2)vL                           = " << 1.5874010519682 << " m^(2/3)\n"
-              << std::endl
-              << "L                                 = (3,4) m\n"
-              << "L+L                               = (6,8) m\n"
-              << "L-L                               = (0,0) m\n"
-              << "L*L                               = (-7,24) m^2\n"
-              << "L/L                               = (1,0) dimensionless\n"
-              << "L*meter                           = (3,4) m^2\n"
-              << "kilograms*(L/seconds)*(L/seconds) = (-7,24) m^2 kg s^-2\n"
-              << "kilograms*(L/seconds)^2           = (-7,24) m^2 kg s^-2\n"
-              << "L^3                               = (-117,44) m^3\n"
-              << "L^(3/2)                           = (2,11) m^(3/2)\n"
-              << "2vL                               = (2,1) m^(1/2)\n"
-              << "(3/2)vL                           = (" << 2.3828547125173 << "," << 1.69466313833091 << ") m^(2/3)\n"
-              << std::endl;
-
-    std::string str1(sstream1.str());
-    std::string str2(sstream2.str());
-
-    std::cout << str1;
-    
-    if(str1 == str2) 
-    {
-        return(0);
-    } 
-    else 
-    {
-        std::cout << std::endl << str2 << std::endl;
-        
-        if(str1.size() < str2.size()) 
-        {
-            std::string::iterator iter =
-                std::mismatch(str1.begin(), str1.end(), str2.begin()).first;
-            
-            std::cout << iter - str1.begin() << std::endl;
-            std::cout << std::count(str1.begin(), iter, '\n') << std::endl;
-        } 
-        else 
-        {
-            std::string::iterator iter =
-                std::mismatch(str2.begin(), str2.end(), str1.begin()).first;
-            
-            std::cout << iter - str2.begin() << std::endl;
-            std::cout << std::count(str2.begin(), iter, '\n') << std::endl;
-        }
-        
-        return(-1);
-    }
+    return 0;
 }
Modified: sandbox/units/libs/units/example/quaternion.cpp
==============================================================================
--- sandbox/units/libs/units/example/quaternion.cpp	(original)
+++ sandbox/units/libs/units/example/quaternion.cpp	2008-06-01 04:42:05 EDT (Sun, 01 Jun 2008)
@@ -41,8 +41,6 @@
 **/
 
 #include <iostream>
-#include <sstream>
-#include <algorithm>
 
 #include <boost/math/quaternion.hpp>
 #include <boost/mpl/list.hpp>
@@ -53,7 +51,6 @@
 
 #include "test_system.hpp"
 
-
 #if BOOST_UNITS_HAS_BOOST_TYPEOF
 
 #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
@@ -184,8 +181,6 @@
     using namespace boost::units;
     using namespace boost::units::test;
     using boost::units::pow;
-
-    std::stringstream sstream1, sstream2;
     
     {
     //[quaternion_snippet_1
@@ -194,13 +189,13 @@
     length_dimension    L(quaternion<double>(4.0,3.0,2.0,1.0)*meters);
     //]
     
-    sstream1  << "+L      = " << +L << std::endl
+    std::cout << "+L      = " << +L << std::endl
               << "-L      = " << -L << std::endl
               << "L+L     = " << L+L << std::endl
               << "L-L     = " << L-L << std::endl
               << "L*L     = " << L*L << std::endl
               << "L/L     = " << L/L << std::endl
-              << "L^3     = " << boost::units::pow<3>(L) << std::endl
+              << "L^3     = " << pow<3>(L) << std::endl
 //              << "L^(3/2) = " << pow< static_rational<3,2> >(L) << std::endl
 //              << "3vL     = " << root<3>(L) << std::endl
 //              << "(3/2)vL = " << root< static_rational<3,2> >(L) << std::endl
@@ -214,64 +209,18 @@
     length_dimension    L(4.0*meters,3.0*meters,2.0*meters,1.0*meters);
     //]
     
-    sstream1  << "+L      = " << +L << std::endl
+    std::cout << "+L      = " << +L << std::endl
               << "-L      = " << -L << std::endl
               << "L+L     = " << L+L << std::endl
               << "L-L     = " << L-L << std::endl
 //              << "L*L     = " << L*L << std::endl
 //              << "L/L     = " << L/L << std::endl
-              << "L^3     = " << boost::units::pow<3>(L) << std::endl
+              << "L^3     = " << pow<3>(L) << std::endl
 //              << "L^(3/2) = " << pow< static_rational<3,2> >(L) << std::endl
 //              << "3vL     = " << root<3>(L) << std::endl
 //              << "(3/2)vL = " << root< static_rational<3,2> >(L) << std::endl
               << std::endl;
     }
 
-    sstream2 << "+L      = (4,3,2,1) m" << std::endl;
-    sstream2 << "-L      = (-4,-3,-2,-1) m" << std::endl;
-    sstream2 << "L+L     = (8,6,4,2) m" << std::endl;
-    sstream2 << "L-L     = (0,0,0,0) m" << std::endl;
-    sstream2 << "L*L     = (2,24,16,8) m^2" << std::endl;
-    sstream2 << "L/L     = (1,0,0,0) dimensionless" << std::endl;
-    sstream2 << "L^3     = (-104,102,68,34) m^3" << std::endl;
-    sstream2 << std::endl;
-    sstream2 << "+L      = (4 m,3 m,2 m,1 m)" << std::endl;
-    sstream2 << "-L      = (-4 m,-3 m,-2 m,-1 m)" << std::endl;
-    sstream2 << "L+L     = (8 m,6 m,4 m,2 m)" << std::endl;
-    sstream2 << "L-L     = (0 m,0 m,0 m,0 m)" << std::endl;
-    sstream2 << "L^3     = (-104 m^3,102 m^3,68 m^3,34 m^3)" << std::endl;
-    sstream2 << std::endl;
-
-    std::string str1(sstream1.str());
-    std::string str2(sstream2.str());
-
-    std::cout << str1;
-    
-    if(str1 == str2) 
-    {
-        return(0);
-    } 
-    else 
-    {
-        std::cout << std::endl << str2 << std::endl;
-        
-        if(str1.size() < str2.size()) 
-        {
-            std::string::iterator iter =
-                std::mismatch(str1.begin(), str1.end(), str2.begin()).first;
-            
-            std::cout << iter - str1.begin() << std::endl;
-            std::cout << std::count(str1.begin(), iter, '\n') << std::endl;
-        } 
-        else 
-        {
-            std::string::iterator iter =
-                std::mismatch(str2.begin(), str2.end(), str1.begin()).first;
-            
-            std::cout << iter - str2.begin() << std::endl;
-            std::cout << std::count(str2.begin(), iter, '\n') << std::endl;
-        }
-        
-        return(-1);
-    }
+    return 0;
 }
Modified: sandbox/units/libs/units/example/radar_beam_height.cpp
==============================================================================
--- sandbox/units/libs/units/example/radar_beam_height.cpp	(original)
+++ sandbox/units/libs/units/example/radar_beam_height.cpp	2008-06-01 04:42:05 EDT (Sun, 01 Jun 2008)
@@ -34,8 +34,6 @@
 **/
 
 #include <iostream>
-#include <sstream>
-#include <algorithm>
 
 #include <boost/units/conversion.hpp>
 #include <boost/units/io.hpp>
@@ -43,86 +41,72 @@
 #include <boost/units/systems/si.hpp>
 #include <boost/units/systems/si/prefixes.hpp>
 
-namespace boost {
-
-namespace units {
+using boost::units::length_dimension;
+using boost::units::pow;
+using boost::units::root;
+using boost::units::quantity;
+using boost::units::unit;
 
 //[radar_beam_height_class_snippet_1
 namespace nautical {
 
-struct length_base_unit : base_unit<length_base_unit, length_dimension, 1>
+struct length_base_unit : 
+    boost::units::base_unit<length_base_unit, length_dimension, 1>
 {
     static std::string name()       { return "nautical mile"; }
     static std::string symbol()     { return "nmi"; }
 };
 
-typedef make_system<length_base_unit>::type system;
+typedef boost::units::make_system<length_base_unit>::type system;
 
 /// unit typedefs
-typedef unit<length_dimension,system>            length;
+typedef unit<length_dimension,system>    length;
 
 static const length mile,miles;
 
 } // namespace nautical
 
 // helper for conversions between nautical length and si length
-
-} // namespace units
-
-} // namespace boost
-
-BOOST_UNITS_DEFINE_CONVERSION_FACTOR(boost::units::nautical::length_base_unit,
+BOOST_UNITS_DEFINE_CONVERSION_FACTOR(nautical::length_base_unit,
                                      boost::units::si::meter_base_unit,
                                      double, 1.852e3);
-
-namespace boost {
-
-namespace units {
-
 //]
 
 //[radar_beam_height_class_snippet_2
 namespace imperial {
 
-struct length_base_unit : base_unit<length_base_unit, length_dimension, 2>
+struct length_base_unit : 
+    boost::units::base_unit<length_base_unit, length_dimension, 2>
 {
     static std::string name()       { return "foot"; }
     static std::string symbol()     { return "ft"; }
 };
 
-typedef make_system<length_base_unit>::type system;
+typedef boost::units::make_system<length_base_unit>::type system;
 
 /// unit typedefs
-typedef unit<length_dimension,system>            length;
+typedef unit<length_dimension,system>    length;
 
 static const length foot,feet;
 
 } // imperial
 
-} // namespace units
-
-} // namespace boost
-
-BOOST_UNITS_DEFINE_CONVERSION_FACTOR(boost::units::imperial::length_base_unit,
+// helper for conversions between imperial length and si length
+BOOST_UNITS_DEFINE_CONVERSION_FACTOR(imperial::length_base_unit,
                                      boost::units::si::meter_base_unit,
                                      double, 1.0/3.28083989501312);
-
-namespace boost {
-
-namespace units {
-
 //]
 
 // radar beam height functions
 //[radar_beam_height_function_snippet_1
 template<class System,typename T>
-quantity<unit<length_dimension,System>,T>
+quantity<unit<boost::units::length_dimension,System>,T>
 radar_beam_height(const quantity<unit<length_dimension,System>,T>& radar_range,
                   const quantity<unit<length_dimension,System>,T>& earth_radius,
                   T k = 4.0/3.0)
 {
-    return quantity<unit<length_dimension,System>,T>(
-        pow<2>(radar_range)/(2.0*k*earth_radius));
+    return quantity<unit<length_dimension,System>,T>
+        (pow<2>(radar_range)/(2.0*k*earth_radius));
 }
 //]
 
@@ -130,7 +114,7 @@
 template<class return_type,class System1,class System2,typename T>
 return_type
 radar_beam_height(const quantity<unit<length_dimension,System1>,T>& radar_range,
-                 const quantity<unit<length_dimension,System2>,T>& earth_radius,
+                  const quantity<unit<length_dimension,System2>,T>& earth_radius,
                   T k = 4.0/3.0)
 {
     // need to decide which system to use for calculation
@@ -145,23 +129,17 @@
 quantity<imperial::length>
 radar_beam_height(const quantity<nautical::length>& range)
 {
-    return quantity<imperial::length>(
-        pow<2>(range/(1.23*nautical::miles/root<2>(imperial::feet))));
+    return quantity<imperial::length>
+        (pow<2>(range/(1.23*nautical::miles/root<2>(imperial::feet))));
 }
 //]
 
-} // namespace units
-
-} // namespace boost
-
 int main(void)
 {
     using namespace boost::units;
     using namespace boost::units::si;
-    using namespace boost::units::nautical;
+    using namespace nautical;
 
-    std::stringstream sstream1, sstream2;
-    
     //[radar_beam_height_snippet_1
     const quantity<nautical::length> radar_range(300.0*miles);
     const quantity<si::length>       earth_radius(6371.0087714*kilo*meters);
@@ -172,7 +150,7 @@
     const quantity<nautical::length> beam_height_4(radar_beam_height< quantity<nautical::length> >(radar_range,earth_radius));
     //]
     
-    sstream1  << "radar range        : " << radar_range << std::endl
+    std::cout << "radar range        : " << radar_range << std::endl
               << "earth radius       : " << earth_radius << std::endl
               << "beam height 1      : " << beam_height_1 << std::endl
               << "beam height 2      : " << beam_height_2 << std::endl
@@ -183,47 +161,6 @@
               << "beam height approx : "
               << quantity<si::length>(radar_beam_height(radar_range))
               << std::endl << std::endl;
-    
-    sstream2 << "radar range        : 300 nmi" << std::endl;
-    sstream2 << "earth radius       : " << 6371008.7714 << " m" << std::endl;
-    sstream2 << "beam height 1      : " << 18169.690884692 << " m" << std::endl;
-    sstream2 << "beam height 2      : " << 9.81084820987694 << " nmi" << std::endl;
-    sstream2 << "beam height 3      : " << 18169.6908846921 << " m" << std::endl;
-    sstream2 << "beam height 4      : " << 9.81084820987694 << " nmi" << std::endl;
-    sstream2 << "beam height approx : " << 59488.3997620464 << " ft" << std::endl;
-    sstream2 << "beam height approx : " << 18132.0642474718 << " m" << std::endl;
-    sstream2 << std::endl;
 
-    std::string str1(sstream1.str());
-    std::string str2(sstream2.str());
-
-    std::cout << str1;
-    
-    if(str1 == str2) 
-    {
-        return(0);
-    } 
-    else 
-    {
-        std::cout << std::endl << str2 << std::endl;
-        
-        if(str1.size() < str2.size()) 
-        {
-            std::string::iterator iter =
-                std::mismatch(str1.begin(), str1.end(), str2.begin()).first;
-            
-            std::cout << iter - str1.begin() << std::endl;
-            std::cout << std::count(str1.begin(), iter, '\n') << std::endl;
-        } 
-        else 
-        {
-            std::string::iterator iter =
-                std::mismatch(str2.begin(), str2.end(), str1.begin()).first;
-            
-            std::cout << iter - str2.begin() << std::endl;
-            std::cout << std::count(str2.begin(), iter, '\n') << std::endl;
-        }
-        
-        return(-1);
-    }
+    return 0;
 }
Modified: sandbox/units/libs/units/example/temperature.cpp
==============================================================================
--- sandbox/units/libs/units/example/temperature.cpp	(original)
+++ sandbox/units/libs/units/example/temperature.cpp	2008-06-01 04:42:05 EDT (Sun, 01 Jun 2008)
@@ -20,6 +20,7 @@
 Output:
 @verbatim
 
+//[ temperature_output_1
 { 32 } °F
 { 273.15 } K
 { 273.15 } K
@@ -28,14 +29,13 @@
 [ 17.7778 ] K
 [ 17.7778 ] K
 [ 17.7778 ] K
+//]
 
 @endverbatim
 **/
 
-#include <algorithm>
 #include <iomanip>
 #include <iostream>
-#include <sstream>
 
 #include <boost/units/absolute.hpp>
 #include <boost/units/get_system.hpp>
@@ -56,13 +56,8 @@
 namespace fahrenheit {
 
 //[temperature_snippet_1
-// direct method
-//typedef make_system<temperature::fahrenheit_base_unit>::type  system;
-//typedef unit<temperature_dimension,system>                    temperature;
-
-// simpler method for single-unit systems
 typedef temperature::fahrenheit_base_unit::unit_type    temperature;
-typedef get_system<temperature>::type                    system;
+typedef get_system<temperature>::type                   system;
 
 BOOST_UNITS_STATIC_CONSTANT(degree,temperature);
 BOOST_UNITS_STATIC_CONSTANT(degrees,temperature);
@@ -70,19 +65,6 @@
 
 } // fahrenheit
 
-//template<>
-//struct is_implicitly_convertible<unit<temperature_dimension,fahrenheit::system>,
-//                                 unit<temperature_dimension,si::system> > : 
-//    public mpl::true_
-//{ };
-
-//template<>
-//struct is_implicitly_convertible<
-//    absolute< unit<temperature_dimension,fahrenheit::system> >,
-//    absolute< unit<temperature_dimension,si::system> > > : 
-//    public mpl::true_
-//{ };
-
 //[temperature_snippet_2
 template<>
 struct is_implicitly_convertible< 
@@ -101,8 +83,6 @@
 
 int main()
 {
-    std::stringstream sstream1, sstream2;
-    
     //[temperature_snippet_3
     quantity<absolute<fahrenheit::temperature> >    T1p(
         32.0*absolute<fahrenheit::temperature>());
@@ -122,7 +102,7 @@
         quantity<fahrenheit::temperature>,
         quantity<si::temperature> >                     relative_conv_type;
     
-    sstream1  << T1p << std::endl
+    std::cout << T1p << std::endl
               << absolute_conv_type::convert(T1p) << std::endl
               << T2p << std::endl
               << T3p << std::endl
@@ -131,47 +111,6 @@
               << T2v << std::endl
               << T3v << std::endl
               << std::endl;
-    
-    sstream2  << "32 absolute °F" << std::endl
-              << "273.15 absolute K" << std::endl
-              << "273.15 absolute K" << std::endl
-              << "273.15 absolute K" << std::endl
-              << "32 °F" << std::endl
-              << 17.77777777777 << " K" << std::endl
-              << 17.77777777777 << " K" << std::endl
-              << 17.77777777777 << " K" << std::endl
-              << std::endl;
-    
-    std::string str1(sstream1.str());
-    std::string str2(sstream2.str());
 
-    std::cout << str1;
-    
-    if(str1 == str2) 
-    {
-        return(0);
-    } 
-    else 
-    {
-        std::cout << std::endl << str2 << std::endl;
-        
-        if(str1.size() < str2.size()) 
-        {
-            std::string::iterator iter =
-                std::mismatch(str1.begin(), str1.end(), str2.begin()).first;
-            
-            std::cout << iter - str1.begin() << std::endl;
-            std::cout << std::count(str1.begin(), iter, '\n') << std::endl;
-        } 
-        else 
-        {
-            std::string::iterator iter =
-                std::mismatch(str2.begin(), str2.end(), str1.begin()).first;
-            
-            std::cout << iter - str2.begin() << std::endl;
-            std::cout << std::count(str2.begin(), iter, '\n') << std::endl;
-        }
-        
-        return(-1);
-    }
+    return 0;
 }
Modified: sandbox/units/libs/units/example/test_system.hpp
==============================================================================
--- sandbox/units/libs/units/example/test_system.hpp	(original)
+++ sandbox/units/libs/units/example/test_system.hpp	2008-06-01 04:42:05 EDT (Sun, 01 Jun 2008)
@@ -89,9 +89,9 @@
 
 //[test_system_snippet_6
 
-struct meter_base_unit : base_unit<meter_base_unit, length_dimension, 1> {};
-struct kilogram_base_unit : base_unit<kilogram_base_unit, mass_dimension, 2> {};
-struct second_base_unit : base_unit<second_base_unit, time_dimension, 3> {};
+struct meter_base_unit : base_unit<meter_base_unit, length_dimension, 1> { };
+struct kilogram_base_unit : base_unit<kilogram_base_unit, mass_dimension, 2> { };
+struct second_base_unit : base_unit<second_base_unit, time_dimension, 3> { };
 
 typedef make_system<
     meter_base_unit,
@@ -99,7 +99,7 @@
     second_base_unit>::type mks_system;
 
 /// unit typedefs
-typedef unit<dimensionless_type,mks_system>   dimensionless;
+typedef unit<dimensionless_type,mks_system>      dimensionless;
 
 typedef unit<length_dimension,mks_system>        length;
 typedef unit<mass_dimension,mks_system>          mass;
Modified: sandbox/units/libs/units/example/tutorial.cpp
==============================================================================
--- sandbox/units/libs/units/example/tutorial.cpp	(original)
+++ sandbox/units/libs/units/example/tutorial.cpp	2008-06-01 04:42:05 EDT (Sun, 01 Jun 2008)
@@ -20,14 +20,14 @@
 @verbatim
 
 //[tutorial_output
-F  = 2 m kg s^(-2)
+F  = 2 N
 dx = 2 m
-E  = 4 m^2 kg s^(-2)
+E  = 4 J
 
-V   = (12.5,0) m^2 kg s^(-3) A^(-1)
+V   = (12.5,0) V
 I   = (3,4) A
-Z   = (1.5,-2) m^2 kg s^(-3) A^(-2)
-I*Z = (12.5,0) m^2 kg s^(-3) A^(-1)
+Z   = (1.5,-2) Ohm
+I*Z = (12.5,0) V
 I*Z == V? true
 //]
 
@@ -40,13 +40,13 @@
 
 #include <boost/typeof/std/complex.hpp>
 
-#include <boost/units/io.hpp>
 #include <boost/units/systems/si/energy.hpp>
 #include <boost/units/systems/si/force.hpp>
 #include <boost/units/systems/si/length.hpp>
 #include <boost/units/systems/si/electric_potential.hpp>
 #include <boost/units/systems/si/current.hpp>
 #include <boost/units/systems/si/resistance.hpp>
+#include <boost/units/systems/si/io.hpp>
 
 using namespace boost::units;
 using namespace boost::units::si;
Modified: sandbox/units/libs/units/example/unit.cpp
==============================================================================
--- sandbox/units/libs/units/example/unit.cpp	(original)
+++ sandbox/units/libs/units/example/unit.cpp	2008-06-01 04:42:05 EDT (Sun, 01 Jun 2008)
@@ -37,8 +37,6 @@
 **/
 
 #include <iostream>
-#include <sstream>
-#include <algorithm>
 
 #include "test_system.hpp"
 
@@ -57,9 +55,7 @@
     const energy                    E;
     //]
     
-    std::stringstream sstream1, sstream2;
-    
-    sstream1  << "L             = " << L << std::endl
+    std::cout << "L             = " << L << std::endl
               << "L+L           = " << L+L << std::endl
               << "L-L           = " << L-L << std::endl
               << "L/L           = " << L/L << std::endl
@@ -73,48 +69,5 @@
               << "(3/2)vM       = " << root<static_rational<3,2> >(M)
               << std::endl;
 
-    sstream2  << "L             = m" << std::endl
-              << "L+L           = m" << std::endl
-              << "L-L           = m" << std::endl
-              << "L/L           = dimensionless" << std::endl
-              << "meter*meter   = m^2" << std::endl
-              << "M*(L/T)*(L/T) = m^2 kg s^-2" << std::endl
-              << "M*(L/T)^2     = m^2 kg s^-2" << std::endl
-              << "L^3           = m^3" << std::endl
-              << "L^(3/2)       = m^(3/2)" << std::endl
-              << "2vM           = kg^(1/2)" << std::endl
-              << "(3/2)vM       = kg^(2/3)" << std::endl;
-
-    std::string str1(sstream1.str());
-    std::string str2(sstream2.str());
-
-    std::cout << str1;
-    
-    if(str1 == str2) 
-    {
-        return(0);
-    } 
-    else 
-    {
-        std::cout << std::endl << str2 << std::endl;
-        
-        if(str1.size() < str2.size()) 
-        {
-            std::string::iterator iter =
-                std::mismatch(str1.begin(), str1.end(), str2.begin()).first;
-            
-            std::cout << iter - str1.begin() << std::endl;
-            std::cout << std::count(str1.begin(), iter, '\n') << std::endl;
-        } 
-        else 
-        {
-            std::string::iterator iter =
-                std::mismatch(str2.begin(), str2.end(), str1.begin()).first;
-            
-            std::cout << iter - str2.begin() << std::endl;
-            std::cout << std::count(str2.begin(), iter, '\n') << std::endl;
-        }
-        
-        return(-1);
-    }
+    return 0;
 }