Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r80614 - in sandbox/variadic_templates/sandbox: array_dyn slim slim/slim slim/slim/include slim/slim/include/slim slim/slim/include/slim/support slim/slim/include/slim/support/internal slim/test
From: cppljevans_at_[hidden]
Date: 2012-09-21 09:26:33


Author: cppljevans
Date: 2012-09-21 09:26:32 EDT (Fri, 21 Sep 2012)
New Revision: 80614
URL: http://svn.boost.org/trac/boost/changeset/80614

Log:
1) benchmark for slim vector
2) slight mods to slim/include to allow clang compilation
3) slight mod to reduce.axis.cpp test driver

Added:
   sandbox/variadic_templates/sandbox/slim/
   sandbox/variadic_templates/sandbox/slim/slim/
   sandbox/variadic_templates/sandbox/slim/slim/include/
   sandbox/variadic_templates/sandbox/slim/slim/include/slim/
   sandbox/variadic_templates/sandbox/slim/slim/include/slim/support/
   sandbox/variadic_templates/sandbox/slim/slim/include/slim/support/deduce.hpp (contents, props changed)
   sandbox/variadic_templates/sandbox/slim/slim/include/slim/support/internal/
   sandbox/variadic_templates/sandbox/slim/slim/include/slim/support/internal/base.hpp (contents, props changed)
   sandbox/variadic_templates/sandbox/slim/test/
   sandbox/variadic_templates/sandbox/slim/test/Makefile (contents, props changed)
   sandbox/variadic_templates/sandbox/slim/test/compiler_values.txt (contents, props changed)
   sandbox/variadic_templates/sandbox/slim/test/tuple.benchmark.cpp (contents, props changed)
   sandbox/variadic_templates/sandbox/slim/test/tuple.benchmark.time.clangxx.txt (contents, props changed)
   sandbox/variadic_templates/sandbox/slim/test/tuple.benchmark.time.gcc4_8n.txt (contents, props changed)
Text files modified:
   sandbox/variadic_templates/sandbox/array_dyn/reduce_axis.cpp | 2 +-
   1 files changed, 1 insertions(+), 1 deletions(-)

Modified: sandbox/variadic_templates/sandbox/array_dyn/reduce_axis.cpp
==============================================================================
--- sandbox/variadic_templates/sandbox/array_dyn/reduce_axis.cpp (original)
+++ sandbox/variadic_templates/sandbox/array_dyn/reduce_axis.cpp 2012-09-21 09:26:32 EDT (Fri, 21 Sep 2012)
@@ -212,7 +212,7 @@
                     , oper_axis
                     )
                   );
- std::cout<<"arr_reduce=\n";
+ std::cout<<":arr_reduce=\n";
                 std::cout<<arr_reduce<<".\n";
             }
         }//exit for(mean_axis...)

Added: sandbox/variadic_templates/sandbox/slim/slim/include/slim/support/deduce.hpp
==============================================================================
--- (empty file)
+++ sandbox/variadic_templates/sandbox/slim/slim/include/slim/support/deduce.hpp 2012-09-21 09:26:32 EDT (Fri, 21 Sep 2012)
@@ -0,0 +1,173 @@
+/*==============================================================================
+ Copyright (c) 2007 Tobias Schwinger
+ Copyright (c) 2009-2011 Christopher Schmidt
+
+ 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)
+==============================================================================*/
+
+#ifndef SLIM_SUPPORT_DEDUCE_HPP
+#define SLIM_SUPPORT_DEDUCE_HPP
+
+#include <slim/support/internal/base.hpp>
+#include <slim/support/internal/result_of.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/and.hpp>
+#ifndef SLIM_NO_RVALUE_REFERENCES
+# include <boost/mpl/not.hpp>
+# include <boost/type_traits/is_array.hpp>
+#endif
+#include <boost/type_traits/is_same.hpp>
+#include <boost/ref.hpp>
+
+namespace slim
+{
+ namespace traits
+ {
+#if BOOST_WORKAROUND(BOOST_MSVC,==1600)
+ template<typename T>
+ struct deduce_stage2
+ {
+ typedef T type;
+ };
+
+ template<typename T>
+ struct deduce
+ : deduce_stage2<T>
+ {};
+#else
+ template<typename T>
+ struct deduce
+ {
+ typedef T type;
+ };
+#endif
+
+ template<typename T>
+ struct deduce<boost::reference_wrapper<T> >
+ {
+ typedef T& type;
+ };
+
+#define SLIM_DEDUCE_CV_REF_SPECIALIZATION(MODIFIER,DEDUCE) \
+ template<typename T> \
+ struct DEDUCE<T MODIFIER> \
+ { \
+ typedef detail::is_po_callable<T MODIFIER> is_po_callable; \
+ \
+ typedef typename \
+ boost::mpl::eval_if_c< \
+ is_po_callable::type::value \
+ , boost::mpl::if_c< \
+ is_po_callable::is_pointer::value \
+ , T \
+ , T MODIFIER \
+ > \
+ , deduce<T> \
+ >::type \
+ type; \
+ }; \
+ \
+ template<typename T> \
+ struct deduce<boost::reference_wrapper<T> MODIFIER> \
+ { \
+ typedef T& type; \
+ };
+
+ SLIM_DEDUCE_CV_REF_SPECIALIZATION(volatile&,deduce)
+ SLIM_DEDUCE_CV_REF_SPECIALIZATION(const volatile&,deduce)
+
+#if BOOST_WORKAROUND(BOOST_MSVC,==1600)
+ SLIM_DEDUCE_CV_REF_SPECIALIZATION(volatile&&,deduce_stage2)
+ SLIM_DEDUCE_CV_REF_SPECIALIZATION(
+ const volatile&&,deduce_stage2)
+
+ SLIM_DEDUCE_CV_REF_SPECIALIZATION(&,deduce)
+ SLIM_DEDUCE_CV_REF_SPECIALIZATION(const&,deduce)
+ SLIM_DEDUCE_CV_REF_SPECIALIZATION(&&,deduce_stage2)
+ SLIM_DEDUCE_CV_REF_SPECIALIZATION(const&&,deduce_stage2)
+#else
+# ifndef SLIM_NO_RVALUE_REFERENCES
+ SLIM_DEDUCE_CV_REF_SPECIALIZATION(volatile&&,deduce)
+ SLIM_DEDUCE_CV_REF_SPECIALIZATION(const volatile&&,deduce)
+# endif
+ SLIM_ALL_CV_REF_COMBINATIONS(
+ SLIM_DEDUCE_CV_REF_SPECIALIZATION,deduce)
+#endif
+
+#undef SLIM_DEDUCE_CV_REF_SPECIALIZATION
+
+#define SLIM_DEDUCE_ARRAY_SPECIALIZATION(MODIFIER1,MODIFIER2,MODIFIER3) \
+ template<typename T, int N> \
+ struct deduce<T MODIFIER1[N]> \
+ { \
+ typedef T MODIFIER2(MODIFIER3 type)[N]; \
+ };
+
+ SLIM_DEDUCE_ARRAY_SPECIALIZATION(BOOST_PP_EMPTY(),const,&)
+ SLIM_DEDUCE_ARRAY_SPECIALIZATION(const,const,&)
+ SLIM_DEDUCE_ARRAY_SPECIALIZATION(volatile,volatile,&)
+ SLIM_DEDUCE_ARRAY_SPECIALIZATION(
+ const volatile,const volatile,&)
+
+ SLIM_DEDUCE_ARRAY_SPECIALIZATION((&),BOOST_PP_EMPTY(),&)
+ SLIM_DEDUCE_ARRAY_SPECIALIZATION(const(&),const,&)
+ SLIM_DEDUCE_ARRAY_SPECIALIZATION(volatile(&),volatile,&)
+ SLIM_DEDUCE_ARRAY_SPECIALIZATION(
+ const volatile(&),const volatile,&)
+
+#ifndef SLIM_NO_RVALUE_REFERENCES
+ SLIM_DEDUCE_ARRAY_SPECIALIZATION((&&),BOOST_PP_EMPTY(),&&)
+ SLIM_DEDUCE_ARRAY_SPECIALIZATION(const(&&),const,&&)
+ SLIM_DEDUCE_ARRAY_SPECIALIZATION(volatile(&&),volatile,&&)
+ SLIM_DEDUCE_ARRAY_SPECIALIZATION(
+ const volatile(&&),const volatile,&&)
+#endif
+ }
+
+ namespace detail
+ {
+ template<typename T>
+ struct deduce_ref
+ {
+ typedef typename traits::deduce<T>::type deduced;
+ typedef
+ boost::mpl::and_<
+ is_lrref<T>
+ , boost::is_same<typename identity<T>::type,deduced>
+ >
+ is_regular_reference;
+
+#ifdef SLIM_NO_RVALUE_REFERENCES
+ typedef typename
+ boost::mpl::if_c<
+ is_regular_reference::value
+ , T
+ , typename add_lref<deduced>::type
+ >::type
+ type;
+#else
+ //8.5.3p5...
+ typedef typename
+ boost::mpl::eval_if_c<
+ is_regular_reference::value
+ , boost::mpl::if_c<
+ boost::mpl::or_<
+ boost::mpl::not_<is_rref<T> >
+ , boost::is_class<deduced>
+ , boost::is_array<deduced>
+ >::value
+ , T
+ , deduced&
+ >
+ , add_lref<deduced>
+ >::type
+ type;
+#endif
+ };
+ }
+}
+
+#endif

Added: sandbox/variadic_templates/sandbox/slim/slim/include/slim/support/internal/base.hpp
==============================================================================
--- (empty file)
+++ sandbox/variadic_templates/sandbox/slim/slim/include/slim/support/internal/base.hpp 2012-09-21 09:26:32 EDT (Fri, 21 Sep 2012)
@@ -0,0 +1,28 @@
+/*==============================================================================
+ Copyright (c) 2010-2011 Christopher Schmidt
+
+ 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)
+==============================================================================*/
+
+#ifndef SLIM_SUPPORT_INTERNAL_BASE_HPP
+#define SLIM_SUPPORT_INTERNAL_BASE_HPP
+
+#define SLIM_V3
+
+#include <boost/config.hpp>
+#include <boost/detail/workaround.hpp>
+
+#ifdef BOOST_NO_RVALUE_REFERENCES
+# define SLIM_NO_RVALUE_REFERENCES
+#elif !defined(SLIM_NO_RVALUE_REFERENCES) && \
+ BOOST_WORKAROUND(__GNUC__,==4)&& \
+ BOOST_WORKAROUND(__GNUC_MINOR__,<6) && !defined(__clang__)
+# error The C++11 extension of your compiler is not supported!
+#endif
+
+#include <slim/support/internal/base/config.hpp>
+#include <slim/support/internal/base/ref.hpp>
+#include <slim/support/internal/base/assert.hpp>
+
+#endif

Added: sandbox/variadic_templates/sandbox/slim/test/Makefile
==============================================================================
--- (empty file)
+++ sandbox/variadic_templates/sandbox/slim/test/Makefile 2012-09-21 09:26:32 EDT (Fri, 21 Sep 2012)
@@ -0,0 +1,87 @@
+MAIN=test
+MAIN=tuple.benchmark
+
+DIR.root := $(shell dirup_dir_file.pl $(PWD) root.imk)
+
+HOW=gcc4_8n
+HOW=clangxx
+
+HOWS=gcc4_8n clangxx
+
+include $(DIR.root)/root.imk
+
+SLIM_DIR=../slim/include
+INCS:= -I$(SLIM_DIR) $(INCS)
+
+.PHONY: tuple.benchmark.report
+tuple.benchmark.report: tuple.benchmark.time.$(HOW)
+ echo "DATE:" `date` >$@
+ python time-report_tbl.py $(HOW) < $< >> $@
+
+.PHONY: tuple.benchmark.time.how
+tuple.benchmark.time.how: tuple.benchmark.time.$(HOW)
+
+TIME_FORMAT="user:%U\nsystem:%S\nelapsed:%e"
+TUPLE_MAX_SIZE=16
+TUPLE_MIN_SIZE=4
+TUPLE_DEL_SIZE=4
+TUPLE_SIZES=$(TUPLE_MAX_SIZE)
+
+tuple.benchmark.time.$(HOW).txt: tuple.benchmark.cpp
+ -rm $@
+ echo -n "COMPILER_VERSION:" >>$@ ; \
+ echo $(HOW) >>$@ ; \
+ for VALU_AT in -DVALU_AT ; do \
+ echo "VALU_AT:"$$VALU_AT >>$@ ; \
+ for TUPLE_TEST_IMPL in 0 1 ; do \
+ echo "TUPLE_TEST_IMPL:"$$TUPLE_TEST_IMPL >>$@ ; \
+ for TUPLE_SIZE in $(TUPLE_SIZES) ; do \
+ echo "TUPLE_SIZE:"$$TUPLE_SIZE >>$@ ; \
+ for LAST_LESS in `python ./first_to_last_ints.py $(TUPLE_MIN_SIZE) $(TUPLE_DEL_SIZE) $$TUPLE_SIZE ` ; do \
+ echo "LAST_LESS:"$$LAST_LESS >>$@ ; \
+ time --format $(TIME_FORMAT) $(COMPILE.$(HOW)) \
+ $(INCS) \
+ -DTUPLE_TEST_IMPL=$$TUPLE_TEST_IMPL \
+ -DTUPLE_SIZE=$$TUPLE_SIZE \
+ -DLAST_LESS=$$LAST_LESS \
+ $$VALU_AT tuple.benchmark.cpp 2>>$@ ; \
+ done \
+ done \
+ done \
+ done \
+ #
+
+.PHONY: tuple.benchmark.time
+tuple.benchmark.time:
+ for COMPILE_HOW in $(HOWS) ; do \
+ make -Wtuple.benchmark.cpp HOW=$$COMPILE_HOW tuple.benchmark.time.$$COMPILE_HOW ; \
+ done
+
+.PHONY: compiler_value.txt
+compiler_value.txt:
+ echo $(HOW)":" >>compiler_values.txt
+ echo -n " * version=" >>compiler_values.txt
+ $(COMPILE.$(HOW)) --version >>compiler_values.txt
+ echo " * command="$(COMPILE.$(HOW)) >>compiler_values.txt
+
+.PHONY: compiler_values.txt
+compiler_values.txt:
+ echo "INCS:"$(INCS) >$@
+ for COMPILE_HOW in $(HOWS) ; do \
+ make compiler_value.txt HOW=$$COMPILE_HOW ; \
+ done \
+ #
+
+.PHONY: nest_loop
+nest_loop:
+ for TUPLE_SIZE in $(TUPLE_SIZES) ; do \
+ echo "TUPLE_SIZE:"$$TUPLE_SIZE ; \
+ for LAST_LESS in `python ./first_to_last_ints.py $(TUPLE_MIN_SIZE) 2 $$TUPLE_SIZE ` ; do \
+ echo " LAST_LESS:"$$LAST_LESS ; \
+ done \
+ done \
+ #
+
+.PHONY: echo
+echo:
+ echo $(COMPILE)

Added: sandbox/variadic_templates/sandbox/slim/test/compiler_values.txt
==============================================================================
--- (empty file)
+++ sandbox/variadic_templates/sandbox/slim/test/compiler_values.txt 2012-09-21 09:26:32 EDT (Fri, 21 Sep 2012)
@@ -0,0 +1,13 @@
+INCS:-I../slim/include -I/home/evansl/prog_dev/boost-svn/ro/boost_1_49_0
+gcc4_8n:
+ * version=g++ (GCC) 4.8.0 20120624 (experimental)
+Copyright (C) 2012 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ * command=/home/evansl/download/gcc/4.8-20120624/install/bin/g++ -c -Wall -Wstrict-overflow -ftemplate-depth-300 -ftemplate-backtrace-limit=0 -std=gnu++11
+clangxx:
+ * version=clang version 3.1 (trunk 150294)
+Target: x86_64-unknown-linux-gnu
+Thread model: posix
+ * command=/home/evansl/download/llvm/svn/build/Debug+Asserts/bin/clang -c -cxx-isystem /home/evansl/download/llvm/svn/llvm/projects/libcxx/include -std=c++11

Added: sandbox/variadic_templates/sandbox/slim/test/tuple.benchmark.cpp
==============================================================================
--- (empty file)
+++ sandbox/variadic_templates/sandbox/slim/test/tuple.benchmark.cpp 2012-09-21 09:26:32 EDT (Fri, 21 Sep 2012)
@@ -0,0 +1,207 @@
+#include "tuple_test_impl_macros.hpp"
+
+#if !defined(TUPLE_SIZE)
+ //This only used when not running several benchmarks where
+ //macro values are set on command line with -DMACRO=VALUE.
+ //See tuple.benchmark.mk.
+ #define TUPLE_TEST_IMPL TUPLE_TEST_HORIZONTAL
+ //TUPLE_TEST_IMPL selects the tuple implementation method.
+ //TUPLE_TEST_VERTICAL selects the preprocessor generated
+ // tuples.
+ //TUPLE_TEST_HORIZONTAL selects the variadic template generated
+ // tuples (using a multiple inheritance method similar to
+ // that mentioned here:
+ // https://groups.google.com/forum/?fromgroups=#!msg/comp.std.c++/_-6X_xZlKlA/3Fw9_QnZSWQJ
+ // with subject:
+ // Variadic Templates in C++0x need some additional features to come closer to fulfilling their promise
+ // and date:
+ // 01/12/2009
+ // )
+ #define TUPLE_SIZE 16
+ //^size of the tuple used.
+ //Also, the number of at_test calls in test_row<I,J>::exec.
+ #define LAST_LESS 16
+ //^determines number of instantiations of test_col and test_row.
+ #define VALU_AT
+ //^Decides whether value of tuple elements is retrieved
+ //or some dummy value is used
+ //in test_row<I,J>::at_test.
+ //#define TRACE_BENCHMARK
+ #ifdef TRACE_BENCHMARK
+ #define USE_DEMANGLER
+ #ifdef USE_DEMANGLER
+ #include <boost/utility/demangled_type_name.hpp>
+ #endif
+ #endif
+#endif
+ //#define VERT_AMORT
+ //Purpose:
+ // Account for the amortized cost of
+ // amortized::make_indexes
+ //Use something less than TUPLE_SIZE as LAST_LESS
+ //if compile times become too large.
+#define LAST_RC ((LAST_LESS>TUPLE_SIZE)?TUPLE_SIZE:LAST_LESS)
+#define LAST_ROW LAST_RC
+#define LAST_COL LAST_RC
+ //test_row<I,J>::exec for I=0...LAST_ROW-1, for J=0...LAST_COL-1
+ //is called.
+
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
+
+//OriginalVersion:
+// On 2009-09-27, downloaded from attachment to:
+// http://article.gmane.org/gmane.comp.lib.boost.devel/194407
+//Purpose:
+// Timing benchmark for 2 methods of tuple implmentation.
+// The method used is dependent on macro, TUPLE_TEST_IMPL:
+// when TUPLE_TEST_IMPL == TUPLE_TEST_VERTICAL:
+// This method uses the boost preprocessor to generate
+// member variables for the tuple elements:
+// HI tI;
+// where I=0...N-1, where N is the size of the tuple.
+// when TUPLE_TEST_IMPL == TUPLE_TEST_HORIZONTAL:
+// This method uses multiple inheritance of the
+// tuple elements "paired" with a key in a
+// superclass:
+// element<int_key<I>,HI>
+// where I is as for the 'TUPLE_TEST_IMPL == TUPLE_TEST_VERTICAL' method and
+// where the member variable is:
+// HI element<int_key<I>,HI>::a;
+//
+
+#if TUPLE_TEST_IMPL == TUPLE_TEST_HORIZONTAL
+ #define SLIM_TAGGED_VECTOR
+#else
+#endif
+
+//#include <slim/container/vector/detail/pp/vector_n.hpp>
+#include <slim/container/vector.hpp>
+
+template<int Value>
+struct int_value //values stored in tuple
+{
+ int_value(void)
+ : value(Value)
+ {}
+ int const value;
+};
+
+template<int I,int J, int Max, typename... Args>
+struct make_tuple:
+ make_tuple<I,J,Max-1,int_value<I*TUPLE_SIZE*TUPLE_SIZE+J*TUPLE_SIZE+Max>,Args...>
+{};
+template<int I,int J, typename... Args>
+struct make_tuple<I,J,0, Args...>
+{
+ typedef slim::vector<Args...> type;
+};
+
+#include <iostream>
+
+template<int I,int J=0>
+struct test_row
+{
+ private:
+ typedef typename make_tuple<I, J, TUPLE_SIZE>::type tuple_type;
+
+ template<int K>
+ static int at_test(tuple_type& t,boost::mpl::int_<K> key)
+ {
+ int const value=
+#ifdef VALU_AT
+ #if TUPLE_TEST_IMPL == TUPLE_TEST_HORIZONTAL
+ slim::detail::at_helper<K>(t)
+ #else
+ t.at_impl(key)
+ #endif
+ .value
+#else
+ K
+#endif
+ ;
+ #ifdef TRACE_BENCHMARK
+ std::cout<<"at_test:K="<<K<<"\n";
+ #endif
+ return value+at_test(t,boost::mpl::int_<K+1>());
+ }
+ static int at_test(tuple_type&,boost::mpl::int_<TUPLE_SIZE>)
+ {
+ #ifdef TRACE_BENCHMARK
+ std::cout<<"at_test:TUPLE_SIZE="<<TUPLE_SIZE<<"\n";
+ #endif
+ return 0;
+ }
+ public:
+ static int exec()
+ {
+ #ifdef TRACE_BENCHMARK
+ std::cout<<"test_row<I="<<I<<",J="<<J<<">:\n";
+ #ifdef USE_DEMANGLER
+ std::cout<<"tuple_type="<<utility::demangled_type_name<tuple_type>()<<"\n";
+ #endif
+ #endif
+ tuple_type t;
+ int const value=at_test(t,boost::mpl::int_<0>());
+ //The combination of the above at_test specialized function
+ //and the at_test general function means the above call
+ //actually calls:
+ // at_test'<K>
+ //for k=0...J%TUPLE_SIZE-1
+ //where at_test' is just at_test without the
+ //recursive call to at_test<K+1>(...).
+ return value+test_row<I,J+1>::exec();
+ }
+};
+template<int I>
+struct test_row<I,LAST_ROW>
+{
+ static int exec()
+ {
+ return 0;
+ }
+};
+
+//The combination of the above test_row special and the preceding general
+//templates means the call:
+// test_row<I>::exec()
+//executes:
+// test_row<I,J>::exec'()
+//for J=0...LAST_ROW
+//where exec' is exec without the recursive call to test_row<I,J+1>::exec().
+
+template<int I=0>
+struct test_col
+{
+ static int exec()
+ {
+ int const value=test_row<I>::exec();
+ return value+test_col<I+1>::exec();
+ }
+};
+
+template<>
+struct test_col<LAST_COL>
+{
+ static int exec()
+ {
+ return 0;
+ }
+};
+
+int main()
+{
+ std::cout<<"TUPLE_SIZE="<<TUPLE_SIZE<<"\n";
+ std::cout<<"LAST_ROW="<<LAST_ROW<<"\n";
+ int const value=test_col<>::exec();
+ //The combination of the test_col general and special templates
+ //means the above call executes:
+ // test_row<I>::exec()
+ //for I=0...LAST_COL
+ std::cout<<"value="<<value<<"\n";
+ return value==0;
+}

Added: sandbox/variadic_templates/sandbox/slim/test/tuple.benchmark.time.clangxx.txt
==============================================================================
--- (empty file)
+++ sandbox/variadic_templates/sandbox/slim/test/tuple.benchmark.time.clangxx.txt 2012-09-21 09:26:32 EDT (Fri, 21 Sep 2012)
@@ -0,0 +1,38 @@
+COMPILER_VERSION:clangxx
+VALU_AT:-DVALU_AT
+TUPLE_TEST_IMPL:0
+TUPLE_SIZE:16
+LAST_LESS:4
+user:19.56
+system:0.29
+elapsed:20.19
+LAST_LESS:8
+user:37.36
+system:0.64
+elapsed:37.99
+LAST_LESS:12
+user:67.29
+system:0.63
+elapsed:67.90
+LAST_LESS:16
+user:109.71
+system:1.35
+elapsed:111.07
+TUPLE_TEST_IMPL:1
+TUPLE_SIZE:16
+LAST_LESS:4
+user:19.84
+system:0.21
+elapsed:20.03
+LAST_LESS:8
+user:37.53
+system:0.39
+elapsed:37.90
+LAST_LESS:12
+user:67.42
+system:0.95
+elapsed:68.36
+LAST_LESS:16
+user:109.79
+system:0.82
+elapsed:110.60

Added: sandbox/variadic_templates/sandbox/slim/test/tuple.benchmark.time.gcc4_8n.txt
==============================================================================
--- (empty file)
+++ sandbox/variadic_templates/sandbox/slim/test/tuple.benchmark.time.gcc4_8n.txt 2012-09-21 09:26:32 EDT (Fri, 21 Sep 2012)
@@ -0,0 +1,38 @@
+COMPILER_VERSION:gcc4_8n
+VALU_AT:-DVALU_AT
+TUPLE_TEST_IMPL:0
+TUPLE_SIZE:16
+LAST_LESS:4
+user:5.01
+system:0.30
+elapsed:5.30
+LAST_LESS:8
+user:18.52
+system:0.77
+elapsed:19.30
+LAST_LESS:12
+user:73.32
+system:1.31
+elapsed:74.63
+LAST_LESS:16
+user:293.12
+system:3.09
+elapsed:296.24
+TUPLE_TEST_IMPL:1
+TUPLE_SIZE:16
+LAST_LESS:4
+user:4.50
+system:0.33
+elapsed:4.81
+LAST_LESS:8
+user:12.78
+system:0.59
+elapsed:13.35
+LAST_LESS:12
+user:32.84
+system:1.13
+elapsed:33.96
+LAST_LESS:16
+user:70.90
+system:1.86
+elapsed:72.75


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