diff --git a/bench/btl/actions/action_atv_product.hh b/bench/btl/actions/action_atv_product.hh
index 9041885..b46bb6d 100644
--- a/bench/btl/actions/action_atv_product.hh
+++ b/bench/btl/actions/action_atv_product.hh
@@ -85,8 +85,10 @@
     Interface::copy_vector(X_ref,X,_size);
   }
 
-  inline void calculate( void ) {
-      Interface::atv_product(A,B,X,_size);
+  BTL_DONT_INLINE void calculate( void ) {
+    asm("#begin atv");
+    Interface::atv_product(A,B,X,_size);
+    asm("#end atv");
   }
 
   void check_result( void )
diff --git a/bench/btl/actions/action_matrix_vector_product.hh b/bench/btl/actions/action_matrix_vector_product.hh
index 7e490ab..3a172f2 100644
--- a/bench/btl/actions/action_matrix_vector_product.hh
+++ b/bench/btl/actions/action_matrix_vector_product.hh
@@ -88,7 +88,7 @@
 
   static inline std::string name( void )
   {
-    return "matrix_vector_"+Interface::name();
+    return "matrix_vector_" + Interface::name();
   }
 
   double nb_op_base( void ){
diff --git a/bench/btl/data/CMakeLists.txt b/bench/btl/data/CMakeLists.txt
index 0057614..daa65fe 100644
--- a/bench/btl/data/CMakeLists.txt
+++ b/bench/btl/data/CMakeLists.txt
@@ -1,7 +1,7 @@
 
 ADD_CUSTOM_TARGET(copy_scripts)
 
-SET(script_files go_mean aat.hh ata.hh axpy.hh order_lib mk_mean_script.sh mk_new_gnuplot.sh mk_gnuplot_script.sh matrix_matrix.hh matrix_vector.hh atv.hh)
+SET(script_files go_mean aat.hh ata.hh axpy.hh order_lib mk_mean_script.sh mk_new_gnuplot.sh mk_gnuplot_script.sh matrix_matrix.hh matrix_vector.hh atv.hh header.html footer.html perlib_plot_settings.txt gnuplot_common_settings.hh )
 
 FOREACH(script_file ${script_files})
 ADD_CUSTOM_COMMAND(
@@ -12,6 +12,19 @@
 )
 ENDFOREACH(script_file)
 
+ADD_CUSTOM_COMMAND(
+  TARGET copy_scripts
+  POST_BUILD
+  COMMAND ${CMAKE_CXX_COMPILER} --version | head -n 1 > ${CMAKE_CURRENT_BINARY_DIR}/compiler_version.txt
+  ARGS
+)
+ADD_CUSTOM_COMMAND(
+  TARGET copy_scripts
+  POST_BUILD
+  COMMAND echo "${Eigen_SOURCE_DIR}" > ${CMAKE_CURRENT_BINARY_DIR}/eigen_root_dir.txt
+  ARGS
+)
+
 add_executable(smooth smooth.cxx)
 add_executable(regularize regularize.cxx)
 add_executable(main mean.cxx)
diff --git a/bench/btl/data/atv.hh b/bench/btl/data/atv.hh
index 45327f5..e476f9e 100644
--- a/bench/btl/data/atv.hh
+++ b/bench/btl/data/atv.hh
@@ -1,108 +1,3 @@
-#!/usr/bin/gnuplot -persist
-#
-#
-#    	G N U P L O T
-#    	Linux version 3.7
-#    	patchlevel 0
-#    	last modified Thu Jan 14 19:34:53 BST 1999
-#
-#    	Copyright(C) 1986 - 1993, 1998, 1999
-#    	Thomas Williams, Colin Kelley and many others
-#
-#    	Type `help` to access the on-line reference manual
-#    	The gnuplot FAQ is available from
-#    		<http://www.uni-karlsruhe.de/~ig25/gnuplot-faq/>
-#
-#    	Send comments and requests for help to <info-gnuplot@dartmouth.edu>
-#    	Send bugs, suggestions and mods to <bug-gnuplot@dartmouth.edu>
-#
-# set terminal postscript landscape noenhanced monochrome dashed defaultplex "Helvetica" 14
-# set output 'bench_gcc.ps'
-set noclip points
-set clip one
-set noclip two
-set bar 1.000000
-set border 31 lt -1 lw 1.000
-set xdata
-set ydata
-set zdata
-set x2data
-set y2data
-set boxwidth
-set dummy x,y
-set format x "%g"
-set format y "%g"
-set format x2 "%g"
-set format y2 "%g"
-set format z "%g"
-set angles radians
-set nogrid
-set key title ""
-set key right top Right noreverse box linetype -2 linewidth 1.000 samplen 4 spacing 1 width 0
-set nolabel
-set noarrow
-set nolinestyle
-set nologscale
-set logscale x 10
-set offsets 0, 0, 0, 0
-set pointsize 1
-set encoding default
-set nopolar
-set noparametric
-set view 60, 30, 1, 1
-set samples 100, 100
-set isosamples 10, 10
-set surface
-set nocontour
-set clabel '%8.3g'
-set mapping cartesian
-set nohidden3d
-set cntrparam order 4
-set cntrparam linear
-set cntrparam levels auto 5
-set cntrparam points 5
-set size ratio 0 1,1
-set origin 0,0
-set data style linespoints
-set function style lines
-set xzeroaxis lt -2 lw 1.000
-set x2zeroaxis lt -2 lw 1.000
-set yzeroaxis lt -2 lw 1.000
-set y2zeroaxis lt -2 lw 1.000
-set tics in
-set ticslevel 0.5
-set ticscale 1 0.5
-set mxtics default
-set mytics default
-set mx2tics default
-set my2tics default
-set xtics border mirror norotate autofreq
-set ytics border mirror norotate autofreq
-set ztics border nomirror norotate autofreq
-set nox2tics
-set noy2tics
-set title "transposed-matrix vector product " 0.000000,0.000000  ""
-set timestamp "" bottom norotate 0.000000,0.000000  ""
-set rrange [ * : * ] noreverse nowriteback  # (currently [-0:10] )
-set trange [ * : * ] noreverse nowriteback  # (currently [-5:5] )
-set urange [ * : * ] noreverse nowriteback  # (currently [-5:5] )
-set vrange [ * : * ] noreverse nowriteback  # (currently [-5:5] )
-set xlabel "matrix size" 0.000000,0.000000  ""
-set x2label "" 0.000000,0.000000  ""
-set timefmt "%d/%m/%y\n%H:%M"
-set xrange [ 10 : 1000 ] noreverse nowriteback
-set x2range [ * : * ] noreverse nowriteback  # (currently [-10:10] )
-set ylabel "MFLOPS" 0.000000,0.000000  ""
-set y2label "" 0.000000,0.000000  ""
-set yrange [ * : * ] noreverse nowriteback  # (currently [-10:10] )
-set y2range [ * : * ] noreverse nowriteback  # (currently [-10:10] )
-set zlabel "" 0.000000,0.000000  ""
-set zrange [ * : * ] noreverse nowriteback  # (currently [-10:10] )
-set zero 1e-08
-set lmargin -1
-set bmargin -1
-set rmargin -1
-set tmargin -1
-set locale "C"
-set xrange [1:1000]
-##set yrange [0:400]
+set title "transposed-matrix vector product " 0.000000,0.000000
+set xlabel "matrix size" 0.000000,0.000000
+set xrange [4:1024]
diff --git a/bench/btl/data/axpy.hh b/bench/btl/data/axpy.hh
index 9f53397..1c3a62f 100644
--- a/bench/btl/data/axpy.hh
+++ b/bench/btl/data/axpy.hh
@@ -1,108 +1,110 @@
 #!/usr/bin/gnuplot -persist
 #
-#    
+#
 #    	G N U P L O T
 #    	Linux version 3.7
 #    	patchlevel 0
 #    	last modified Thu Jan 14 19:34:53 BST 1999
-#    
+#
 #    	Copyright(C) 1986 - 1993, 1998, 1999
 #    	Thomas Williams, Colin Kelley and many others
-#    
+#
 #    	Type `help` to access the on-line reference manual
 #    	The gnuplot FAQ is available from
 #    		<http://www.uni-karlsruhe.de/~ig25/gnuplot-faq/>
-#    
+#
 #    	Send comments and requests for help to <info-gnuplot@dartmouth.edu>
 #    	Send bugs, suggestions and mods to <bug-gnuplot@dartmouth.edu>
-#    
+#
 # set terminal postscript landscape noenhanced monochrome dashed defaultplex "Helvetica" 14
 # set output 'bench_gcc.ps'
-set noclip points
-set clip one
-set noclip two
-set bar 1.000000
-set border 31 lt -1 lw 1.000
-set xdata
-set ydata
-set zdata
-set x2data
-set y2data
-set boxwidth
-set dummy x,y
-set format x "%g"
-set format y "%g"
-set format x2 "%g"
-set format y2 "%g"
-set format z "%g"
-set angles radians
-set nogrid
-set key title ""
-set key right top Right noreverse box linetype -2 linewidth 1.000 samplen 4 spacing 1 width 0
-set nolabel
-set noarrow
-set nolinestyle
-set nologscale
-set logscale x 10
-set offsets 0, 0, 0, 0
-set pointsize 1
-set encoding default
-set nopolar
-set noparametric
-set view 60, 30, 1, 1
-set samples 100, 100
-set isosamples 10, 10
-set surface
-set nocontour
-set clabel '%8.3g'
-set mapping cartesian
-set nohidden3d
-set cntrparam order 4
-set cntrparam linear
-set cntrparam levels auto 5
-set cntrparam points 5
-set size ratio 0 1,1
-set origin 0,0
-set data style linespoints
-set function style lines
-set xzeroaxis lt -2 lw 1.000
-set x2zeroaxis lt -2 lw 1.000
-set yzeroaxis lt -2 lw 1.000
-set y2zeroaxis lt -2 lw 1.000
-set tics in
-set ticslevel 0.5
-set ticscale 1 0.5
-set mxtics default
-set mytics default
-set mx2tics default
-set my2tics default
-set xtics border mirror norotate autofreq 
-set ytics border mirror norotate autofreq 
-set ztics border nomirror norotate autofreq 
-set nox2tics
-set noy2tics
-set title "Y+=alpha*X " 0.000000,0.000000  ""
-set timestamp "" bottom norotate 0.000000,0.000000  ""
-set rrange [ * : * ] noreverse nowriteback  # (currently [-0:10] )
-set trange [ * : * ] noreverse nowriteback  # (currently [-5:5] )
-set urange [ * : * ] noreverse nowriteback  # (currently [-5:5] )
-set vrange [ * : * ] noreverse nowriteback  # (currently [-5:5] )
-set xlabel "vector size" 0.000000,0.000000  ""
-set x2label "" 0.000000,0.000000  ""
-set timefmt "%d/%m/%y\n%H:%M"
-set xrange [ 10 : 1000 ] noreverse nowriteback
-set x2range [ * : * ] noreverse nowriteback  # (currently [-10:10] )
-set ylabel "MFLOPS" 0.000000,0.000000  ""
-set y2label "" 0.000000,0.000000  ""
-set yrange [ * : * ] noreverse nowriteback  # (currently [-10:10] )
-set y2range [ * : * ] noreverse nowriteback  # (currently [-10:10] )
-set zlabel "" 0.000000,0.000000  ""
-set zrange [ * : * ] noreverse nowriteback  # (currently [-10:10] )
-set zero 1e-08
-set lmargin -1
-set bmargin -1
-set rmargin -1
-set tmargin -1
-set locale "C"
+# set noclip points
+# set clip one
+# set noclip two
+# set bar 1.000000
+# set border 31 lt -1 lw 1.000
+# set xdata
+# set ydata
+# set zdata
+# set x2data
+# set y2data
+# set boxwidth
+# set dummy x,y
+# set format x "%g"
+# set format y "%g"
+# set format x2 "%g"
+# set format y2 "%g"
+# set format z "%g"
+# set angles radians
+# set nogrid
+# set key title ""
+# set key left top Right noreverse box linetype -2 linewidth 1.000 samplen 4 spacing 1 width 0
+# set nolabel
+# set noarrow
+# set nolinestyle
+# set nologscale
+# set logscale x 10
+# set offsets 0, 0, 0, 0
+# set pointsize 1
+# set encoding default
+# set nopolar
+# set noparametric
+# set view 60, 30, 1, 1
+# set samples 100, 100
+# set isosamples 10, 10
+# set surface
+# set nocontour
+# set clabel '%8.3g'
+# set mapping cartesian
+# set nohidden3d
+# set cntrparam order 4
+# set cntrparam linear
+# set cntrparam levels auto 5
+# set cntrparam points 5
+# set size ratio 0 1,1
+# set origin 0,0
+# set data style lines
+# set function style lines
+# set xzeroaxis lt -2 lw 1.000
+# set x2zeroaxis lt -2 lw 1.000
+# set yzeroaxis lt -2 lw 1.000
+# set y2zeroaxis lt -2 lw 1.000
+# set tics in
+# set ticslevel 0.5
+# set ticscale 1 0.5
+# set mxtics default
+# set mytics default
+# set mx2tics default
+# set my2tics default
+# set xtics border mirror norotate autofreq
+# set ytics border mirror norotate autofreq
+# set ztics border nomirror norotate autofreq
+# set nox2tics
+# set noy2tics
+
+# set timestamp "" bottom norotate 0.000000,0.000000  ""
+# set rrange [ * : * ] noreverse nowriteback  # (currently [-0:10] )
+# set trange [ * : * ] noreverse nowriteback  # (currently [-5:5] )
+# set urange [ * : * ] noreverse nowriteback  # (currently [-5:5] )
+# set vrange [ * : * ] noreverse nowriteback  # (currently [-5:5] )
+#
+# set x2label "" 0.000000,0.000000  ""
+# set timefmt "%d/%m/%y\n%H:%M"
+# set xrange [ 10 : 1000 ] noreverse nowriteback
+# set x2range [ * : * ] noreverse nowriteback  # (currently [-10:10] )
+# set ylabel "MFLOPS" 0.000000,0.000000  ""
+# set y2label "" 0.000000,0.000000  ""
+# set yrange [ * : * ] noreverse nowriteback  # (currently [-10:10] )
+# set y2range [ * : * ] noreverse nowriteback  # (currently [-10:10] )
+# set zlabel "" 0.000000,0.000000  ""
+# set zrange [ * : * ] noreverse nowriteback  # (currently [-10:10] )
+# set zero 1e-08
+# set lmargin -1
+# set bmargin -1
+# set rmargin -1
+# set tmargin -1
+# set locale "C"
+
+set title "Y+=alpha*X " 0.000000,0.000000
+set xlabel "vector size" 0.000000,0.000000
 set xrange [1:1000000]
-##set yrange [0:550]
diff --git a/bench/btl/data/gnuplot_common_settings.hh b/bench/btl/data/gnuplot_common_settings.hh
new file mode 100644
index 0000000..00ae286
--- /dev/null
+++ b/bench/btl/data/gnuplot_common_settings.hh
@@ -0,0 +1,87 @@
+set noclip points
+set clip one
+set noclip two
+set bar 1.000000
+set border 31 lt -1 lw 1.000
+set xdata
+set ydata
+set zdata
+set x2data
+set y2data
+set boxwidth
+set dummy x,y
+set format x "%g"
+set format y "%g"
+set format x2 "%g"
+set format y2 "%g"
+set format z "%g"
+set angles radians
+set nogrid
+set key title ""
+set key left top Right noreverse box linetype -2 linewidth 1.000 samplen 4 spacing 1 width 0
+set nolabel
+set noarrow
+set nolinestyle
+set nologscale
+set logscale x 10
+set offsets 0, 0, 0, 0
+set pointsize 1
+set encoding default
+set nopolar
+set noparametric
+set view 60, 30, 1, 1
+set samples 100, 100
+set isosamples 10, 10
+set surface
+set nocontour
+set clabel '%8.3g'
+set mapping cartesian
+set nohidden3d
+set cntrparam order 4
+set cntrparam linear
+set cntrparam levels auto 5
+set cntrparam points 5
+set size ratio 0 1,1
+set origin 0,0
+set data style lines
+set function style lines
+set xzeroaxis lt -2 lw 1.000
+set x2zeroaxis lt -2 lw 1.000
+set yzeroaxis lt -2 lw 1.000
+set y2zeroaxis lt -2 lw 1.000
+set tics in
+set ticslevel 0.5
+set tics scale 1, 0.5
+set mxtics default
+set mytics default
+set mx2tics default
+set my2tics default
+set xtics border mirror norotate autofreq
+set ytics border mirror norotate autofreq
+set ztics border nomirror norotate autofreq
+set nox2tics
+set noy2tics
+set timestamp "" bottom norotate 0.000000,0.000000  ""
+set rrange [ * : * ] noreverse nowriteback  # (currently [-0:10] )
+set trange [ * : * ] noreverse nowriteback  # (currently [-5:5] )
+set urange [ * : * ] noreverse nowriteback  # (currently [-5:5] )
+set vrange [ * : * ] noreverse nowriteback  # (currently [-5:5] )
+set xlabel "matrix size" 0.000000,0.000000
+set x2label "" 0.000000,0.000000
+set timefmt "%d/%m/%y\n%H:%M"
+set xrange [ 10 : 1000 ] noreverse nowriteback
+set x2range [ * : * ] noreverse nowriteback  # (currently [-10:10] )
+set ylabel "MFLOPS" 0.000000,0.000000
+set y2label "" 0.000000,0.000000
+set yrange [ * : * ] noreverse nowriteback  # (currently [-10:10] )
+set y2range [ * : * ] noreverse nowriteback  # (currently [-10:10] )
+set zlabel "" 0.000000,0.000000
+set zrange [ * : * ] noreverse nowriteback  # (currently [-10:10] )
+set zero 1e-08
+set lmargin -1
+set bmargin -1
+set rmargin -1
+set tmargin -1
+set locale "C"
+set xrange [4:1024]
+
diff --git a/bench/btl/data/go_mean b/bench/btl/data/go_mean
index 36942bd..422b357 100755
--- a/bench/btl/data/go_mean
+++ b/bench/btl/data/go_mean
@@ -1,10 +1,28 @@
+#! /bin/bash
 mkdir $1
 ##cp ../libs/*/*.dat $1
 
+EIGENDIR=`cat eigen_root_dir.txt`
+
+webpagefilename=$1/index.html
+#cp header.html $webpagefilename
+echo ''  > $webpagefilename
+echo '<p><strong>Configuration</strong>'  >> $webpagefilename
+echo '<ul>'\
+  '<li>' `cat /proc/cpuinfo | grep "model name" | head -n 1`\
+  '  (' `uname -m` ')</li>'\
+  '<li> compiler: ' `cat compiler_version.txt` '</li>'\
+  '<li> eigen2: ' `svn info $EIGENDIR | grep Revision` '</li>'\
+  '</ul>' \
+  '</p>'  >> $webpagefilename
+
 source mk_mean_script.sh axpy $1 11 2500 100000 250000 > $1/axpy.html
 source mk_mean_script.sh matrix_vector $1 11 50 300 500 > $1/matrix_vector.html
 source mk_mean_script.sh atv $1 11 50 300 500 > $1/atv.html
-source mk_mean_script.sh matrix_matrix $1 11 100 300 500 > $1/matrix_matrix.html
-source mk_mean_script.sh aat $1 11 100 300 1000 > $1/aat.html
-source mk_mean_script.sh ata $1 11 100 300 1000 > $1/ata.html
+# source mk_mean_script.sh matrix_matrix $1 11 100 300 500 > $1/matrix_matrix.html
+# source mk_mean_script.sh aat $1 11 100 300 1000 > $1/aat.html
+# source mk_mean_script.sh ata $1 11 100 300 1000 > $1/ata.html
 
+## compile the web page ##
+
+#echo `cat footer.html` >> $webpagefilename
\ No newline at end of file
diff --git a/bench/btl/data/matrix_vector.hh b/bench/btl/data/matrix_vector.hh
index 00e8c7c..16a2b7a 100644
--- a/bench/btl/data/matrix_vector.hh
+++ b/bench/btl/data/matrix_vector.hh
@@ -1,108 +1,3 @@
-#!/usr/bin/gnuplot -persist
-#
-#    
-#    	G N U P L O T
-#    	Linux version 3.7
-#    	patchlevel 0
-#    	last modified Thu Jan 14 19:34:53 BST 1999
-#    
-#    	Copyright(C) 1986 - 1993, 1998, 1999
-#    	Thomas Williams, Colin Kelley and many others
-#    
-#    	Type `help` to access the on-line reference manual
-#    	The gnuplot FAQ is available from
-#    		<http://www.uni-karlsruhe.de/~ig25/gnuplot-faq/>
-#    
-#    	Send comments and requests for help to <info-gnuplot@dartmouth.edu>
-#    	Send bugs, suggestions and mods to <bug-gnuplot@dartmouth.edu>
-#    
-# set terminal postscript landscape noenhanced monochrome dashed defaultplex "Helvetica" 14
-# set output 'bench_gcc.ps'
-set noclip points
-set clip one
-set noclip two
-set bar 1.000000
-set border 31 lt -1 lw 1.000
-set xdata
-set ydata
-set zdata
-set x2data
-set y2data
-set boxwidth
-set dummy x,y
-set format x "%g"
-set format y "%g"
-set format x2 "%g"
-set format y2 "%g"
-set format z "%g"
-set angles radians
-set nogrid
-set key title ""
-set key right top Right noreverse box linetype -2 linewidth 1.000 samplen 4 spacing 1 width 0
-set nolabel
-set noarrow
-set nolinestyle
-set nologscale
-set logscale x 10
-set offsets 0, 0, 0, 0
-set pointsize 1
-set encoding default
-set nopolar
-set noparametric
-set view 60, 30, 1, 1
-set samples 100, 100
-set isosamples 10, 10
-set surface
-set nocontour
-set clabel '%8.3g'
-set mapping cartesian
-set nohidden3d
-set cntrparam order 4
-set cntrparam linear
-set cntrparam levels auto 5
-set cntrparam points 5
-set size ratio 0 1,1
-set origin 0,0
-set data style linespoints
-set function style lines
-set xzeroaxis lt -2 lw 1.000
-set x2zeroaxis lt -2 lw 1.000
-set yzeroaxis lt -2 lw 1.000
-set y2zeroaxis lt -2 lw 1.000
-set tics in
-set ticslevel 0.5
-set ticscale 1 0.5
-set mxtics default
-set mytics default
-set mx2tics default
-set my2tics default
-set xtics border mirror norotate autofreq 
-set ytics border mirror norotate autofreq 
-set ztics border nomirror norotate autofreq 
-set nox2tics
-set noy2tics
-set title "matrix vector product " 0.000000,0.000000  ""
-set timestamp "" bottom norotate 0.000000,0.000000  ""
-set rrange [ * : * ] noreverse nowriteback  # (currently [-0:10] )
-set trange [ * : * ] noreverse nowriteback  # (currently [-5:5] )
-set urange [ * : * ] noreverse nowriteback  # (currently [-5:5] )
-set vrange [ * : * ] noreverse nowriteback  # (currently [-5:5] )
-set xlabel "matrix size" 0.000000,0.000000  ""
-set x2label "" 0.000000,0.000000  ""
-set timefmt "%d/%m/%y\n%H:%M"
-set xrange [ 10 : 1000 ] noreverse nowriteback
-set x2range [ * : * ] noreverse nowriteback  # (currently [-10:10] )
-set ylabel "MFLOPS" 0.000000,0.000000  ""
-set y2label "" 0.000000,0.000000  ""
-set yrange [ * : * ] noreverse nowriteback  # (currently [-10:10] )
-set y2range [ * : * ] noreverse nowriteback  # (currently [-10:10] )
-set zlabel "" 0.000000,0.000000  ""
-set zrange [ * : * ] noreverse nowriteback  # (currently [-10:10] )
-set zero 1e-08
-set lmargin -1
-set bmargin -1
-set rmargin -1
-set tmargin -1
-set locale "C"
-set xrange [1:1000]
-##set yrange [0:400]
+set title "matrix vector product " 0.000000,0.000000
+set xlabel "matrix size" 0.000000,0.000000
+set xrange [4:1024]
diff --git a/bench/btl/data/mk_mean_script.sh b/bench/btl/data/mk_mean_script.sh
index bc6821c..0af6ccb 100644
--- a/bench/btl/data/mk_mean_script.sh
+++ b/bench/btl/data/mk_mean_script.sh
@@ -10,7 +10,7 @@
 mkdir $WORK_DIR
 
 DATA_FILE=`find $DIR -name "*.dat" | grep _${WHAT}`
-echo 
+echo
 for FILE in $DATA_FILE
 do
         ##echo hello world
@@ -19,7 +19,7 @@
 
 	##echo "mk_mean_script1" ${TITLE}
 	cp $FILE ${WORK_DIR}/${TITLE}
-	
+
 done
 
 cd $WORK_DIR
@@ -30,6 +30,10 @@
 
 rm -R $WORK_DIR
 
+webpagefilename=$2/index.html
+# echo '<h3>'${WHAT}'</h3>'  >> $webpagefilename
+echo '<a href="/btl/'$1'.pdf"><img src="/btl/'$1'.png" alt="'${WHAT}'" /></a><br/>'  >> $webpagefilename
+
 
 
 
diff --git a/bench/btl/data/mk_new_gnuplot.sh b/bench/btl/data/mk_new_gnuplot.sh
index 5f8bd4e..85eb240 100755
--- a/bench/btl/data/mk_new_gnuplot.sh
+++ b/bench/btl/data/mk_new_gnuplot.sh
@@ -1,7 +1,9 @@
 #! /bin/bash
 WHAT=$1
 DIR=$2
-cat ../${WHAT}.hh > ${WHAT}.gnuplot
+
+cat ../gnuplot_common_settings.hh > ${WHAT}.gnuplot
+cat ../${WHAT}.hh >> ${WHAT}.gnuplot
 
 DATA_FILE=`cat ../order_lib`
 
@@ -12,36 +14,36 @@
     LAST=$FILE
 done
 
-
 for FILE in $DATA_FILE
 do
+    BASE=${FILE##*/} ; BASE=${FILE##*/} ; AVANT=bench_${WHAT}_ ; REDUC=${BASE##*$AVANT} ; TITLE=${REDUC%.dat}
+
+    echo "'"$FILE"'" `grep $TITLE ../perlib_plot_settings.txt | head -n 1 | cut -d ";" -f 2` "\\" >>  $WHAT.gnuplot
     if [ $FILE != $LAST ]
     then
-      echo "'"$FILE"'" ",\\" >>  $WHAT.gnuplot
+      echo ", \\" >>  $WHAT.gnuplot
     fi
 done
-echo "'"$LAST"'" >>  $WHAT.gnuplot
+echo " " >>  $WHAT.gnuplot
+
 
 echo set term postscript color >> $WHAT.gnuplot
 echo set output "'"../${DIR}/$WHAT.ps"'" >> $WHAT.gnuplot
-# echo set term pdf color >> $WHAT.gnuplot
-# echo set output "'"../${DIR}/$WHAT.pdf"'" >> $WHAT.gnuplot
-# echo set term png truecolor size 1024,768 >> $WHAT.gnuplot
-# echo set output "'"../${DIR}/$WHAT.png"'" >> $WHAT.gnuplot
-echo plot \\ >> $WHAT.gnuplot
-for FILE in $DATA_FILE
-do
-    if [ $FILE != $LAST ]
-    then
-      echo "'"$FILE"'" ",\\" >>  $WHAT.gnuplot
-    fi
-done
-echo "'"$LAST"'" >>  $WHAT.gnuplot
+echo replot >> $WHAT.gnuplot
+
+echo set term png truecolor size 800,600 >> $WHAT.gnuplot
+echo set output "'"../${DIR}/$WHAT.png"'" >> $WHAT.gnuplot
+echo replot >> $WHAT.gnuplot
+
 
 gnuplot -persist < $WHAT.gnuplot
 
 rm $WHAT.gnuplot
 
+# echo "`pwd` hh s2pdf $WHAT.ps $WHAT.pdf" > ../log.txt
+
+ps2pdf ../${DIR}/$WHAT.ps ../${DIR}/$WHAT.pdf
+
 
 
 
diff --git a/bench/btl/data/perlib_plot_settings.txt b/bench/btl/data/perlib_plot_settings.txt
new file mode 100644
index 0000000..8e57844
--- /dev/null
+++ b/bench/btl/data/perlib_plot_settings.txt
@@ -0,0 +1,11 @@
+eigen2 ; with lines lw 2 lc rgbcolor "black" lt 1
+eigen2_novec ; with lines lw 1 lc rgbcolor "grey" lt 1
+gmm ; with lines lc rgbcolor "blue" lt 1
+mtl4 ; with lines lc rgbcolor "#74B973" lt 1
+blitz ; with lines lc rgbcolor "#38F5F5" lt 1
+ATLAS ; with lines lc rgbcolor "green" lt 1
+INTEL_MKL ; with lines lc rgbcolor "yellow" lt 2
+MKL_INTEL ; with lines lc rgbcolor "yellow" lt 2
+ublas ; with lines lc rgbcolor "red"  lt 1
+F77 ; with lines lc rgbcolor "#9A6B36" lt 1
+C ; with lines lc rgbcolor "#7DF4FF" lt 1
diff --git a/bench/btl/generic_bench/bench_parameter.hh b/bench/btl/generic_bench/bench_parameter.hh
index e2db997..62ba20e 100644
--- a/bench/btl/generic_bench/bench_parameter.hh
+++ b/bench/btl/generic_bench/bench_parameter.hh
@@ -27,21 +27,21 @@
 // nb of point on bench curves
 #define NB_POINT 100
 // min vector size for axpy bench
-#define MIN_AXPY 2
+#define MIN_AXPY 5
 // max vector size for axpy bench
 #define MAX_AXPY 1000000
 // min matrix size for matrix vector product bench
-#define MIN_MV 2
+#define MIN_MV 5
 // max matrix size for matrix vector product bench
 #define MAX_MV 1024
 // min matrix size for matrix matrix product bench
-#define MIN_MM 2
+#define MIN_MM 5
 // max matrix size for matrix matrix product bench
 #define MAX_MM 1024
 // min matrix size for LU bench
-#define MIN_LU 10
+#define MIN_LU 5
 // max matrix size for LU bench
-#define MAX_LU 1000
+#define MAX_LU 1024
 // max size for tiny vector and matrix
 #define TINY_MV_MAX_SIZE 16
 // default nb_sample for x86 timer
diff --git a/bench/btl/libs/C/CMakeLists.txt b/bench/btl/libs/C/CMakeLists.txt
index 2bce21e..3d4d24c 100644
--- a/bench/btl/libs/C/CMakeLists.txt
+++ b/bench/btl/libs/C/CMakeLists.txt
@@ -1,3 +1,3 @@
 include_directories(${PROJECT_SOURCE_DIR}/libs/f77)
-btl_add_bench(btl_C main.cpp)
+btl_add_bench(btl_C main.cpp OFF)
 # set_target_properties(btl_C PROPERTIES COMPILE_FLAGS "-fpeel-loops")
\ No newline at end of file
diff --git a/bench/btl/libs/STL/CMakeLists.txt b/bench/btl/libs/STL/CMakeLists.txt
index 2897298..4cfc2dc 100644
--- a/bench/btl/libs/STL/CMakeLists.txt
+++ b/bench/btl/libs/STL/CMakeLists.txt
@@ -1,2 +1,2 @@
 
-btl_add_bench(btl_STL main.cpp)
+btl_add_bench(btl_STL main.cpp OFF)
diff --git a/bench/btl/libs/STL_algo/CMakeLists.txt b/bench/btl/libs/STL_algo/CMakeLists.txt
index e4387ab..8309c8b 100644
--- a/bench/btl/libs/STL_algo/CMakeLists.txt
+++ b/bench/btl/libs/STL_algo/CMakeLists.txt
@@ -1,2 +1,2 @@
 
-btl_add_bench(btl_STL_algo main.cpp)
+btl_add_bench(btl_STL_algo main.cpp OFF)
diff --git a/bench/btl/libs/eigen2/eigen2_interface.hh b/bench/btl/libs/eigen2/eigen2_interface.hh
index fa7f759..4ce4af1 100644
--- a/bench/btl/libs/eigen2/eigen2_interface.hh
+++ b/bench/btl/libs/eigen2/eigen2_interface.hh
@@ -30,7 +30,9 @@
 
 public :
 
-  typedef real real_type ;
+  enum {IsFixedSize = (SIZE!=Dynamic)};
+
+  typedef real real_type;
 
   typedef std::vector<real> stl_vector;
   typedef std::vector<stl_vector> stl_matrix;
@@ -41,11 +43,11 @@
   static inline std::string name( void )
   {
     #if defined(EIGEN_VECTORIZE_SSE)
-    if (SIZE==Dynamic) return "eigen2_SSE"; else return "tiny_eigen2_SSE";
-    #elif defined(EIGEN_VECTORIZE_ALTIVEC)
-    if (SIZE==Dynamic) return "eigen2_AltiVec"; else return "tiny_eigen2_AltiVec";
-    #else
     if (SIZE==Dynamic) return "eigen2"; else return "tiny_eigen2";
+    #elif defined(EIGEN_VECTORIZE_ALTIVEC)
+    if (SIZE==Dynamic) return "eigen2"; else return "tiny_eigen2";
+    #else
+    if (SIZE==Dynamic) return "eigen2_novec"; else return "tiny_eigen2_novec";
     #endif
   }
 
diff --git a/bench/btl/libs/eigen2/main.cpp b/bench/btl/libs/eigen2/main.cpp
index f38dfcc..dd86ee2 100644
--- a/bench/btl/libs/eigen2/main.cpp
+++ b/bench/btl/libs/eigen2/main.cpp
@@ -32,11 +32,12 @@
 {
 
   bench<Action_matrix_vector_product<eigen2_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT);
-//   bench<Action_atv_product<eigen2_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT);
-//   bench<Action_axpy<eigen2_interface<REAL_TYPE> > >(MIN_AXPY,MAX_AXPY,NB_POINT);
-//   bench<Action_matrix_matrix_product<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
-//   bench<Action_ata_product<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
-//   bench<Action_aat_product<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
+
+  bench<Action_axpy<eigen2_interface<REAL_TYPE> > >(MIN_AXPY,MAX_AXPY,NB_POINT);
+  bench<Action_matrix_matrix_product<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
+  bench<Action_ata_product<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
+  bench<Action_aat_product<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
+  bench<Action_atv_product<eigen2_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT);
 
   //bench<Action_lu_solve<blitz_LU_solve_interface<REAL_TYPE> > >(MIN_LU,MAX_LU,NB_POINT);
 
diff --git a/bench/btl/libs/hand_vec/CMakeLists.txt b/bench/btl/libs/hand_vec/CMakeLists.txt
index afab914..3fffbfe 100644
--- a/bench/btl/libs/hand_vec/CMakeLists.txt
+++ b/bench/btl/libs/hand_vec/CMakeLists.txt
@@ -2,9 +2,9 @@
 if (EIGEN2_FOUND)
 
   include_directories(${EIGEN2_INCLUDE_DIR} ${PROJECT_SOURCE_DIR}/libs/f77)
-  btl_add_bench(btl_hand_vec main.cpp)
+  btl_add_bench(btl_hand_vec main.cpp OFF)
 
-  btl_add_bench(btl_hand_peeling main.cpp)
+  btl_add_bench(btl_hand_peeling main.cpp OFF)
   if (BUILD_btl_hand_peeling)
     set_target_properties(btl_hand_peeling PROPERTIES COMPILE_FLAGS "-DPEELING")
   endif (BUILD_btl_hand_peeling)
diff --git a/bench/btl/libs/ublas/ublas_interface.hh b/bench/btl/libs/ublas/ublas_interface.hh
index c8acb32..2572f8c 100644
--- a/bench/btl/libs/ublas/ublas_interface.hh
+++ b/bench/btl/libs/ublas/ublas_interface.hh
@@ -46,9 +46,9 @@
 
   static inline void matrix_from_stl(gene_matrix & A, stl_matrix & A_stl){
     A.resize(A_stl.size(),A_stl[0].size());
-    for (int i=0; i<A_stl.size() ; i++)
-      for (int j=0; j<A_stl[i].size() ; j++)
-        A(i,j)=A_stl[i][j];
+    for (int j=0; j<A_stl.size() ; j++)
+      for (int i=0; i<A_stl[j].size() ; i++)
+        A(i,j)=A_stl[j][i];
   }
 
   static inline void vector_from_stl(gene_vector & B, stl_vector & B_stl){
@@ -64,11 +64,11 @@
 
   static inline void matrix_to_stl(gene_matrix & A, stl_matrix & A_stl){
     int N=A_stl.size();
-    for (int i=0;i<N;i++)
+    for (int j=0;j<N;j++)
     {
-      A_stl[i].resize(N);
-      for (int j=0;j<N;j++)
-        A_stl[i][j]=A(i,j);
+      A_stl[j].resize(N);
+      for (int i=0;i<N;i++)
+        A_stl[j][i]=A(i,j);
     }
   }
 
