Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r52945 - in sandbox/numeric_adaptor: boost/numeric_adaptor libs/numeric_adaptor libs/numeric_adaptor/test
From: barend.gehrels_at_[hidden]
Date: 2009-05-12 17:10:49


Author: barendgehrels
Date: 2009-05-12 17:10:44 EDT (Tue, 12 May 2009)
New Revision: 52945
URL: http://svn.boost.org/trac/boost/changeset/52945

Log:
Added "default_policy"
Added string constructor/cast (not working for gcc)
Adapted sample
Added:
   sandbox/numeric_adaptor/boost/numeric_adaptor/default_policy.hpp (contents, props changed)
   sandbox/numeric_adaptor/libs/numeric_adaptor/sample.sln (contents, props changed)
   sandbox/numeric_adaptor/libs/numeric_adaptor/sample.vcproj (contents, props changed)
   sandbox/numeric_adaptor/libs/numeric_adaptor/test/test_heron.sln (contents, props changed)
   sandbox/numeric_adaptor/libs/numeric_adaptor/test/test_heron.vcproj (contents, props changed)
Text files modified:
   sandbox/numeric_adaptor/boost/numeric_adaptor/cln_policy.hpp | 73 +++++++++++++++++++----
   sandbox/numeric_adaptor/boost/numeric_adaptor/gmp_policy.hpp | 19 ++++++
   sandbox/numeric_adaptor/boost/numeric_adaptor/ieee_policy.hpp | 26 +++-----
   sandbox/numeric_adaptor/boost/numeric_adaptor/numeric_adaptor.hpp | 67 +++++++++++++--------
   sandbox/numeric_adaptor/libs/numeric_adaptor/sample.cpp | 123 +++++++++++++++++++++------------------
   5 files changed, 196 insertions(+), 112 deletions(-)

Modified: sandbox/numeric_adaptor/boost/numeric_adaptor/cln_policy.hpp
==============================================================================
--- sandbox/numeric_adaptor/boost/numeric_adaptor/cln_policy.hpp (original)
+++ sandbox/numeric_adaptor/boost/numeric_adaptor/cln_policy.hpp 2009-05-12 17:10:44 EDT (Tue, 12 May 2009)
@@ -1,6 +1,6 @@
 // Numeric Adaptor Library
 //
-// Copyright Barend Gehrels 2009, Geodan Holding B.V. Amsterdam, the Netherlands.
+// Copyright Barend Gehrels 2009, Geodan, Amsterdam
 // Copyright Bruno Lalande 2009
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -10,36 +10,83 @@
 #ifndef NUMERIC_ADAPTOR_CLN_POLICY_HPP_
 #define NUMERIC_ADAPTOR_CLN_POLICY_HPP_
 
+#include <string>
+
+#include <boost/numeric_adaptor/default_policy.hpp>
 
-#include <boost/numeric_adaptor/ieee_policy.hpp>
 #include <cln/cln.h>
 #include <cln/float.h>
 
 
-namespace impl {
 
 
-template <typename ClnType>
-struct cln_policy: ieee_policy<ClnType>
+/*
+ CLN documentation, 3.2:
+ As a user of CLN, you can forget about the differences between the four
+ Floating-point types and just declare all your Foating-point variables
+ as being of type cl_F.
+
+*/
+struct cln_policy : public default_policy<cln::cl_F>
 {
- static inline void sqrt(ClnType& r, const ClnType& a)
+ typedef cln::cl_F type;
+
+ template <typename OtherType>
+ static inline void set(type& value, OtherType const& v)
+ {
+ // Conversions from the C built-in type `double' are provided for the
+ // classes cl_DF, cl_F, cl_R, cl_N and cl_number
+
+ value = cln::cl_float(v, cln::float_format(40));
+ }
+
+ static inline void set(type& value, std::string const& v)
+ {
+ // CLN documentation 4.1.3:
+ value = v.c_str();
+ }
+
+
+ static inline void sqrt(type& r, type const& a)
     {
         r = cln::sqrt(a);
     }
 
-template <typename CT>
- static inline CT big_numeric_cast(const ClnType& b)
+ static inline void cos(type& r, type const& a)
     {
- return cln::double_approx(b);
+ r = cln::cos(a);
+ }
+
+ static inline void sin(type& r, type const& a)
+ {
+ r = cln::sin(a);
     }
-};
 
 
-} // namespace impl
+ template <typename OtherType>
+ static inline OtherType big_numeric_cast(type const& b)
+ {
+ /*
+ Conversions from the classes cl_I, cl_RA, cl_SF, cl_FF,
+ cl_DF, cl_LF, cl_F and cl_R
+ to the C built-in types `float' and `double' are provided
+ through the functions
+
+ float float_approx (type const& x)
+ double double_approx (type const& x)
+
+ Returns an approximation of x of C type ctype. If abs(x) is
+ too close to 0 (underflow),
+ 0 is returned. If abs(x) is too large (overflow),
+ an IEEE infinity is returned.
+ */
+ return OtherType(double_approx(b));
+ }
+
+};
+
 
 
-typedef impl::cln_policy<cln::cl_FF> cln_ff_policy;
-typedef impl::cln_policy<cln::cl_DF> cln_df_policy;
 
 
 #endif

Added: sandbox/numeric_adaptor/boost/numeric_adaptor/default_policy.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_adaptor/boost/numeric_adaptor/default_policy.hpp 2009-05-12 17:10:44 EDT (Tue, 12 May 2009)
@@ -0,0 +1,49 @@
+// Numeric Adaptor Library
+
+// Copyright Barend Gehrels 2009, Geodan, Amsterdam
+// Copyright Bruno Lalande 2009
+// Use, modification and distribution is subject to 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)
+
+
+#ifndef NUMERIC_ADAPTOR_DEFAULT_POLICY_HPP_
+#define NUMERIC_ADAPTOR_DEFAULT_POLICY_HPP_
+
+#include <sstream>
+
+template <typename T>
+struct default_policy
+{
+ typedef T type;
+
+ // Default no initialization or pre-destruction is necessary
+ static inline void init(T& value) {}
+ static inline void destruct(T& value) {}
+
+ // Use the default assignment
+ static inline void copy(T const& source, T& dest) { dest = source; }
+
+ // The default policy uses the default operators +, -, *, /
+ static inline void add(type& r, const type& a, const type& b) { r = a + b; }
+ static inline void subtract(type& r, const type& a, const type& b) { r = a - b; }
+ static inline void multiply(type& r, const type& a, const type& b) { r = a * b; }
+ static inline void divide(type& r, const type& a, const type& b) { r = a / b; }
+
+
+ // Default use the comparison operators
+ static inline int compare(T const& a, T const& b)
+ {
+ return a < b ? -1 : a > b ? 1 : 0;
+ }
+
+ static inline std::string as_string(T const& a)
+ {
+ std::ostringstream out;
+ out << a;
+ return out.str();
+ }
+};
+
+
+#endif

Modified: sandbox/numeric_adaptor/boost/numeric_adaptor/gmp_policy.hpp
==============================================================================
--- sandbox/numeric_adaptor/boost/numeric_adaptor/gmp_policy.hpp (original)
+++ sandbox/numeric_adaptor/boost/numeric_adaptor/gmp_policy.hpp 2009-05-12 17:10:44 EDT (Tue, 12 May 2009)
@@ -11,9 +11,13 @@
 #define NUMERIC_ADAPTOR_GMP_POLICY_HPP_
 
 
+#include <string>
+
+
 #include <gmp.h>
 
 
+
 struct gmp_policy
 {
     typedef mpf_t type;
@@ -34,6 +38,12 @@
         mpf_set_d(value, v);
     }
 
+ static inline void set(type& value, const std::string& v)
+ {
+ mpf_set_str(value, v.c_str(), 10);
+ }
+
+
     static inline void copy(const type& source, type& dest)
     {
         mpf_set(dest, source);
@@ -85,6 +95,15 @@
         return mpf_get_d(b);
     }
 
+
+ static inline std::string as_string(type const& a)
+ {
+ mp_exp_t bexp;
+ std::string out = mpf_get_str (0, &bexp, 10, 0, a);
+ return out;
+ }
+
+
     static inline int compare(const type& a, const type& b)
     {
         return mpf_cmp(a, b);

Modified: sandbox/numeric_adaptor/boost/numeric_adaptor/ieee_policy.hpp
==============================================================================
--- sandbox/numeric_adaptor/boost/numeric_adaptor/ieee_policy.hpp (original)
+++ sandbox/numeric_adaptor/boost/numeric_adaptor/ieee_policy.hpp 2009-05-12 17:10:44 EDT (Tue, 12 May 2009)
@@ -12,26 +12,25 @@
 
 
 #include <cmath>
+
+#include <string>
+
+#include <boost/numeric_adaptor/default_policy.hpp>
+
+
 #include <boost/numeric/conversion/cast.hpp>
+#include <boost/lexical_cast.hpp>
 
 
 template <typename T>
-struct ieee_policy
+struct ieee_policy : public default_policy<T>
 {
     typedef T type;
 
- static inline void init(type& value) {}
- static inline void destruct(type& value) {}
-
     template <typename OtherType>
- static inline void set (type& value, const OtherType& v) { value = boost::numeric_cast<T>(v); }
+ static inline void set(type& value, const OtherType& v) { value = boost::numeric_cast<T>(v); }
 
- static inline void copy(const type& source, type& dest) { dest = source; }
-
- static inline void add(type& r, const type& a, const type& b) { r = a + b; }
- static inline void subtract(type& r, const type& a, const type& b) { r = a - b; }
- static inline void multiply(type& r, const type& a, const type& b) { r = a * b; }
- static inline void divide(type& r, const type& a, const type& b) { r = a / b; }
+ static inline void set(type& value, const std::string& v) { value = boost::lexical_cast<T>(v); }
 
     static inline void sqrt(type& r, const type& a) { r = std::sqrt(a); }
     static inline void cos(type& r, const type& a) { r = std::cos(a); }
@@ -42,11 +41,6 @@
     {
         return boost::numeric_cast<OtherType>(v);
     }
-
- static inline int compare(const type& a, const type& b)
- {
- return a < b ? -1 : a > b ? 1 : 0;
- }
 };
 
 

Modified: sandbox/numeric_adaptor/boost/numeric_adaptor/numeric_adaptor.hpp
==============================================================================
--- sandbox/numeric_adaptor/boost/numeric_adaptor/numeric_adaptor.hpp (original)
+++ sandbox/numeric_adaptor/boost/numeric_adaptor/numeric_adaptor.hpp 2009-05-12 17:10:44 EDT (Tue, 12 May 2009)
@@ -20,68 +20,83 @@
     }
 
     // Copy constructor
- inline numeric_adaptor(const numeric_adaptor<Policy>& v)
+ inline numeric_adaptor(numeric_adaptor<Policy> const& v)
     {
         Policy::init(value);
         Policy::copy(v.value, value);
     }
 
+ // Constructor from a string
+ inline numeric_adaptor(std::string const& v)
+ {
+ Policy::init(value);
+ Policy::set(value, v);
+ }
+
+
     // Constructor with a normal IEEE type
- template <typename T>
- inline numeric_adaptor(const T& v)
+ template <typename FromType>
+ inline numeric_adaptor(FromType const& v)
     {
         Policy::init(value);
- Policy::template set<T>(value, v);
+ Policy::template set<FromType>(value, v);
     }
 
+
     virtual ~numeric_adaptor()
     {
         Policy::destruct(value);
     }
 
     // Assignment from other value
- inline numeric_adaptor<Policy> operator=(const numeric_adaptor<Policy>& v)
+ inline numeric_adaptor<Policy> operator=(numeric_adaptor<Policy> const& v)
     {
         Policy::copy(v.value, this->value);
         return *this;
     }
 
     // Assignment from normal IEEE type
- template <typename T>
- inline numeric_adaptor<Policy> operator=(const T& v)
+ template <typename FromType>
+ inline numeric_adaptor<Policy> operator=(FromType const& v)
     {
- Policy::template set<T>(this->value, v);
+ Policy::template set<FromType>(this->value, v);
         return *this;
     }
 
     // Cast to normal IEEE type
- template <typename T>
- inline operator T() const
+ template <typename ToType>
+ inline operator ToType() const
+ {
+ return Policy::template big_numeric_cast<ToType>(value);
+ }
+
+ // Overload for cast to string
+ inline operator std::string() const
     {
- return Policy::template big_numeric_cast<T>(value);
+ return Policy::as_string(value);
     }
 
 
     // Comparisons
- inline bool operator<(const numeric_adaptor<Policy>& other) const
+ inline bool operator<(numeric_adaptor<Policy> const& other) const
     {
         return Policy::compare(value, other.value) < 0;
     }
 
- inline bool operator>(const numeric_adaptor<Policy>& other) const
+ inline bool operator>(numeric_adaptor<Policy> const& other) const
     {
         return Policy::compare(value, other.value) > 0;
     }
 
- inline bool operator==(const numeric_adaptor<Policy>& other) const
+ inline bool operator==(numeric_adaptor<Policy> const& other) const
     {
         return Policy::compare(value, other.value) == 0;
     }
 
     // Operators
     friend inline numeric_adaptor<Policy> operator+(
- const numeric_adaptor<Policy>& a,
- const numeric_adaptor<Policy>& b)
+ numeric_adaptor<Policy> const& a,
+ numeric_adaptor<Policy> const& b)
     {
         typename Policy::type r;
         Policy::init(r);
@@ -90,8 +105,8 @@
     }
 
     friend inline numeric_adaptor<Policy> operator*(
- const numeric_adaptor<Policy>& a,
- const numeric_adaptor<Policy>& b)
+ numeric_adaptor<Policy> const& a,
+ numeric_adaptor<Policy> const& b)
     {
         typename Policy::type r;
         Policy::init(r);
@@ -100,8 +115,8 @@
     }
 
     friend inline numeric_adaptor<Policy> operator-(
- const numeric_adaptor<Policy>& a,
- const numeric_adaptor<Policy>& b)
+ numeric_adaptor<Policy> const& a,
+ numeric_adaptor<Policy> const& b)
     {
         typename Policy::type r;
         Policy::init(r);
@@ -110,8 +125,8 @@
     }
 
     friend inline numeric_adaptor<Policy> operator/(
- const numeric_adaptor<Policy>& a,
- const numeric_adaptor<Policy>& b)
+ numeric_adaptor<Policy> const& a,
+ numeric_adaptor<Policy> const& b)
     {
         typename Policy::type r;
         Policy::init(r);
@@ -120,7 +135,7 @@
     }
 
     // Functions
- static inline numeric_adaptor<Policy> sqrt(const numeric_adaptor<Policy>& v)
+ static inline numeric_adaptor<Policy> sqrt(numeric_adaptor<Policy> const& v)
     {
         typename Policy::type r;
         Policy::init(r);
@@ -128,7 +143,7 @@
         return numeric_adaptor<Policy>(r, true);
     }
 
- static inline numeric_adaptor<Policy> cos(const numeric_adaptor<Policy>& v)
+ static inline numeric_adaptor<Policy> cos(numeric_adaptor<Policy> const& v)
     {
         typename Policy::type r;
         Policy::init(r);
@@ -136,7 +151,7 @@
         return numeric_adaptor<Policy>(r, true);
     }
 
- static inline numeric_adaptor<Policy> sin(const numeric_adaptor<Policy>& v)
+ static inline numeric_adaptor<Policy> sin(numeric_adaptor<Policy> const& v)
     {
         typename Policy::type r;
         Policy::init(r);
@@ -150,7 +165,7 @@
 
     // Constructor with a type. Bool (or any other signature changing parameter)
     // is necessary for cases where type == OtherType
- inline numeric_adaptor<Policy>(const typename Policy::type& v, bool)
+ inline numeric_adaptor<Policy>(typename Policy::type const& v, bool)
     {
         Policy::init(value);
         Policy::copy(v, value);

Modified: sandbox/numeric_adaptor/libs/numeric_adaptor/sample.cpp
==============================================================================
--- sandbox/numeric_adaptor/libs/numeric_adaptor/sample.cpp (original)
+++ sandbox/numeric_adaptor/libs/numeric_adaptor/sample.cpp 2009-05-12 17:10:44 EDT (Tue, 12 May 2009)
@@ -12,70 +12,79 @@
 #include <string>
 #include <boost/numeric_adaptor/numeric_adaptor.hpp>
 #include <boost/numeric_adaptor/ieee_policy.hpp>
-#include <boost/numeric_adaptor/gmp_policy.hpp>
 
+#if ! defined(_MSC_VER)
+# include <boost/numeric_adaptor/gmp_policy.hpp>
+# include <boost/numeric_adaptor/cln_policy.hpp>
+#endif
 
-template <typename T, typename NUM>
-void sample(const std::string& header, T c1, T c2, T c4, T ta, T tb, T tc)
+
+template <typename T, typename Num>
+void sample(const std::string& header, T c1, T c2, T c4)
 {
- std::cout << std::endl << "---" << header << std::endl;
- NUM v1 = c1;
- NUM v2 = c2;
- NUM v3 = v1 + v2;
- std::cout << T(v3) << std::endl;
-
- NUM v4 = c4;
- NUM v5 = (v1 + v2) * v4;
- std::cout << T(v5) << std::endl;
- v5 = v1 + v2 * v4;
- std::cout << T(v5) << std::endl;
-
- NUM v6 = NUM::sqrt(v3);
- std::cout << T(v6) << std::endl;
-
- v6 = 4;
- std::cout << T(v6) << std::endl;
-
- v6 = v2;
- std::cout << T(v6) << std::endl;
- std::cout << std::endl;
-
- if (v1 > v2)
- {
- std::cout << "v1 > v2" << std::endl;
- }
- if (v1 < v2)
- {
- std::cout << "v1 < v2" << std::endl;
- }
- if (v1 == v2)
- {
- std::cout << "v1 == v2" << std::endl;
- }
-
- // Test Heron formule
- {
- NUM a = ta;
- NUM b = tb;
- NUM c = tc;
- NUM s((a + b + c) / NUM(2.0));
- NUM area = NUM::sqrt(s * (s - a) * (s - b) * (s - c));
- std::cout << "area: " << T(area) << std::endl;
- }
+ std::cout << std::endl << "---" << header << std::endl;
+ Num v1 = c1;
+ Num v2 = c2;
+ Num v3 = v1 + v2;
+ std::cout << T(v3);
+
+ Num v4 = c4;
+ Num v5 = (v1 + v2) * v4;
+ std::cout << " " << T(v5);
+ v5 = v1 + v2 * v4;
+ std::cout << " " << T(v5);
+
+ Num v6 = Num::sqrt(v3);
+ std::cout << " " << T(v6) << std::endl;
+
+ // Conversion from int
+ v6 = 4;
+ std::cout << T(v6);
+
+ // Assignment from T
+ v6 = v2;
+ std::cout << " " << T(v6) << std::endl;
+
+ if (v1 > v2)
+ {
+ std::cout << "v1 > v2" << std::endl;
+ }
+ if (v1 < v2)
+ {
+ std::cout << "v1 < v2" << std::endl;
+ }
+ if (v1 == v2)
+ {
+ std::cout << "v1 == v2" << std::endl;
+ }
+
+ Num v7 = Num::cos(v3);
+ std::cout << "cos: " << T(v7) << std::endl;
+ v7 = Num::sin(v3);
+ std::cout << "sin: " << T(v7) << std::endl;
 
 }
 
 
 int main()
 {
- std::cout << std::setprecision(12);
- double a = 31622.77662;
- double b = 0.000023;
- double c = 31622.77661;
-
- sample<float, numeric_adaptor<ieee_policy<float> > >("use float, calculate with float", 2.0, 3.0, 5.0, a, b, c);
- sample<float, numeric_adaptor<ieee_policy<double> > >("use float, calculate with double", 2.0, 3.0, 5.0, a, b, c);
- sample<double, numeric_adaptor<ieee_policy<long double> > >("use double, calculate with long double", 2.0, 3.0, 5.0, a, b, c);
- sample<double, numeric_adaptor<gmp_policy> >("use double, calculate with gmp", 2.0, 3.0, 5.0, a, b, c);
- return 0;
+ std::cout << std::setprecision(12);
+
+ double a = 2.000000000002;
+ double b = 3.000000000003;
+ double c = 5.000000000005;
+
+ sample<float, numeric_adaptor<ieee_policy<float> > >("use float, calculate with float", a, b, c);
+ sample<float, numeric_adaptor<ieee_policy<double> > >("use float, calculate with double", a, b, c);
+
+ sample<double, numeric_adaptor<ieee_policy<double> > >("use double, calculate with double", a, b, c);
+
+#if ! defined(_MSC_VER)
+ sample<double, numeric_adaptor<gmp_policy> >("use double, calculate with gmp", a, b, c);
+ sample<double, numeric_adaptor<cln_policy> >("use double, calculate with CLN", a, b, c);
+#endif
+
+ sample<std::string, numeric_adaptor<ieee_policy<double> > >("use string, calculate with gmp","2.000000000002", "3.000000000003", "5.000000000005");
+
+ return 0;
 }

Added: sandbox/numeric_adaptor/libs/numeric_adaptor/sample.sln
==============================================================================
--- (empty file)
+++ sandbox/numeric_adaptor/libs/numeric_adaptor/sample.sln 2009-05-12 17:10:44 EDT (Tue, 12 May 2009)
@@ -0,0 +1,19 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual C++ Express 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sample", "sample.vcproj", "{D61419DF-8BE9-4B3B-B541-FD5F17F47E5E}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D61419DF-8BE9-4B3B-B541-FD5F17F47E5E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D61419DF-8BE9-4B3B-B541-FD5F17F47E5E}.Debug|Win32.Build.0 = Debug|Win32
+ {D61419DF-8BE9-4B3B-B541-FD5F17F47E5E}.Release|Win32.ActiveCfg = Release|Win32
+ {D61419DF-8BE9-4B3B-B541-FD5F17F47E5E}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal

Added: sandbox/numeric_adaptor/libs/numeric_adaptor/sample.vcproj
==============================================================================
--- (empty file)
+++ sandbox/numeric_adaptor/libs/numeric_adaptor/sample.vcproj 2009-05-12 17:10:44 EDT (Tue, 12 May 2009)
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="sample"
+ ProjectGUID="{D61419DF-8BE9-4B3B-B541-FD5F17F47E5E}"
+ RootNamespace="sample"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)/sample"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../..;.;&quot;c:\data\research\unbackupped\gmp\gmp-4.1&quot;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;NO_CLN"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="0"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="gmpDebug.lib"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="c:\data\research\unbackupped\gmp\lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)/sample"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../..;.;&quot;c:\data\research\unbackupped\gmp\gmp-4.1&quot;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;NO_CLN"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="0"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="kernel32.lib gmp.lib"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="c:\data\research\unbackupped\gmp\lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\sample.cpp"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>

Added: sandbox/numeric_adaptor/libs/numeric_adaptor/test/test_heron.sln
==============================================================================
--- (empty file)
+++ sandbox/numeric_adaptor/libs/numeric_adaptor/test/test_heron.sln 2009-05-12 17:10:44 EDT (Tue, 12 May 2009)
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C++ Express 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_heron", "test_heron.vcproj", "{D61419DF-8BE9-4B3B-B541-FD5F17F47E5E}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D61419DF-8BE9-4B3B-B541-FD5F17F47E5E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D61419DF-8BE9-4B3B-B541-FD5F17F47E5E}.Debug|Win32.Build.0 = Debug|Win32
+ {D61419DF-8BE9-4B3B-B541-FD5F17F47E5E}.Release|Win32.ActiveCfg = Release|Win32
+ {D61419DF-8BE9-4B3B-B541-FD5F17F47E5E}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal

Added: sandbox/numeric_adaptor/libs/numeric_adaptor/test/test_heron.vcproj
==============================================================================
--- (empty file)
+++ sandbox/numeric_adaptor/libs/numeric_adaptor/test/test_heron.vcproj 2009-05-12 17:10:44 EDT (Tue, 12 May 2009)
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="test_heron"
+ ProjectGUID="{D61419DF-8BE9-4B3B-B541-FD5F17F47E5E}"
+ RootNamespace="test_heron"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)/test_heron"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../..;.;&quot;c:\data\research\unbackupped\gmp\gmp-dynamic&quot;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;NO_CLN"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="0"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="gmpDebug.lib"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="c:\data\research\unbackupped\gmp\lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)/test_heron"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../..;.;&quot;c:\data\research\unbackupped\gmp\gmp-4.1&quot;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;NO_CLN"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="0"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="kernel32.lib gmp.lib"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="c:\data\research\unbackupped\gmp\lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_heron.cpp"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>


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