Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r75405 - in sandbox/SOC/2007/visualization: boost/svg_plot boost/svg_plot/detail libs/svg_plot/doc libs/svg_plot/doc/html libs/svg_plot/example libs/svg_plot/test
From: pbristow_at_[hidden]
Date: 2011-11-08 09:11:06


Author: pbristow
Date: 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
New Revision: 75405
URL: http://svn.boost.org/trac/boost/changeset/75405

Log:
Correct uncertain point display with legend_on (true)
Removed:
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/index.idx
Properties modified:
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/html/ (props changed)
Text files modified:
   sandbox/SOC/2007/visualization/boost/svg_plot/detail/auto_axes.hpp | 2
   sandbox/SOC/2007/visualization/boost/svg_plot/detail/axis_plot_frame.hpp | 70 +++++++++++-----
   sandbox/SOC/2007/visualization/boost/svg_plot/detail/functors.hpp | 23 ++--
   sandbox/SOC/2007/visualization/boost/svg_plot/show_1d_settings.hpp | 22 +---
   sandbox/SOC/2007/visualization/boost/svg_plot/show_2d_settings.hpp | 9 -
   sandbox/SOC/2007/visualization/boost/svg_plot/svg_1d_plot.hpp | 174 ++++++++++++++++++++++++---------------
   sandbox/SOC/2007/visualization/boost/svg_plot/svg_2d_plot.hpp | 20 ++--
   sandbox/SOC/2007/visualization/boost/svg_plot/svg_boxplot.hpp | 37 ++++---
   sandbox/SOC/2007/visualization/boost/svg_plot/uncertain.hpp | 58 +++++++-----
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/1d_tutorial.qbk | 30 +++---
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/2d_tutorial.qbk | 16 +-
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/Jamfile.v2 | 12 +-
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/doxywarnings.log | 2
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/fonts.qbk | 2
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_plot.qbk | 6
   sandbox/SOC/2007/visualization/libs/svg_plot/example/container_minmax.cpp | 2
   sandbox/SOC/2007/visualization/libs/svg_plot/example/demo_1d_uncertainty.cpp | 29 ++++--
   sandbox/SOC/2007/visualization/libs/svg_plot/example/demo_2d_weather.cpp | 2
   sandbox/SOC/2007/visualization/libs/svg_plot/example/demo_boxplot.cpp | 3
   sandbox/SOC/2007/visualization/libs/svg_plot/example/demo_boxplot_full.cpp | 2
   sandbox/SOC/2007/visualization/libs/svg_plot/test/1d_color_consistency.cpp | 2
   sandbox/SOC/2007/visualization/libs/svg_plot/test/2d_color_consistency.cpp | 3
   sandbox/SOC/2007/visualization/libs/svg_plot/test/test_svg.cpp | 2
   23 files changed, 302 insertions(+), 226 deletions(-)

Modified: sandbox/SOC/2007/visualization/boost/svg_plot/detail/auto_axes.hpp
==============================================================================
--- sandbox/SOC/2007/visualization/boost/svg_plot/detail/auto_axes.hpp (original)
+++ sandbox/SOC/2007/visualization/boost/svg_plot/detail/auto_axes.hpp 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -58,7 +58,7 @@
   /*!
     \brief If a floating-point value is finite, return true.
     \param[in] t floating-point value.
- \tparam FPT floating-point type (float, double, long double, or user-defined)
+ \tparam FPT floating-point type (float, double, long double, or user-defined).
     \return true if is finite, false if + or - infinite or any NaN.
   */
   template <class FPT> bool isfinite(FPT t);

Modified: sandbox/SOC/2007/visualization/boost/svg_plot/detail/axis_plot_frame.hpp
==============================================================================
--- sandbox/SOC/2007/visualization/boost/svg_plot/detail/axis_plot_frame.hpp (original)
+++ sandbox/SOC/2007/visualization/boost/svg_plot/detail/axis_plot_frame.hpp 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -16,16 +16,16 @@
 #ifndef BOOST_SVG_AXIS_PLOT_FRAME_HPP
 #define BOOST_SVG_AXIS_PLOT_FRAME_HPP
 
-#include "../svg_style.hpp"
-#include "../svg.hpp"
-#include "svg_tag.hpp"
-#include "numeric_limits_handling.hpp"
+#include <boost/svg_plot/svg_style.hpp>
+#include <boost/svg_plot/svg.hpp>
+#include <boost/svg_plot/detail/svg_tag.hpp>
+#include <boost/svg_plot/detail/numeric_limits_handling.hpp>
 // using boost::math::fpclassify for
 // boost::math::
 // template <class T>bool isfinite (T);
 // template <class T>bool isinf (T);
 // template <class T> bool isnan (T);
-#include "uncertain.hpp"
+#include <boost/svg_plot/uncertain.hpp>
 // using boost::svg::unc;
 
 #include <limits>
@@ -999,9 +999,9 @@
             g_inner_ptr = &(derived().image_.g(PLOT_LEGEND_TEXT));
 
             for(unsigned int i = 0; i < derived().serieses_.size(); ++i)
- { // Show point marker, perhaps line, & text info for all the data series.
+ { // Show point marker, perhaps line, & text info for each of the data series.
 
- //cout << "Series " << i << endl;
+ // cout << "Series " << i << endl;
               // derived().serieses_[i].point_style_ << endl;
               // cout << derived().serieses_[i].line_style_ << endl;
 
@@ -1015,16 +1015,32 @@
               g_inner_ptr->style().stroke_width(derived().serieses_[i].line_style_.width_);
 
               //cout << "g_inner_ptr.style().stroke_color() " << g_inner_ptr->style() << endl;
- if(derived().serieses_[i].point_style_.shape_ != none)
- { // Is some data marker shape to show.
- draw_plot_point( // Plot point like circle, square, vertical bar...
+ plot_point_style& sty = derived().serieses_[i].point_style_;
+
+ if(sty.shape_ != none)
+ { // Is some data point marker shape to show in legend box.
+ bool was_unc_ellipse = false;
+ if (sty.shape_ == unc_ellipse)
+ { // Problem here with unc_ellipse with calculation of a suitable size
+ // and also, more fundamentally, the legend box overwrites the PLOT_DATA_UNC layers.
+ // so as a hack, use a round instead.
+ sty.shape_ = round;
+ was_unc_ellipse = true; // Note so restore after showing circle.
+ }
+
+ draw_plot_point( // Show a plot point like circle (==round), square, vertical bar...
                   legend_x_pos,
                   legend_y_pos,
                   *g_inner_ptr,
- derived().serieses_[i].point_style_, 0, 0);
+ sty, unc(0.), unc(0.));
+ //was derived().serieses_[i].point_style_, unc(0.), unc(0.));
                 legend_x_pos += 1.5 * spacing;
+ if (was_unc_ellipse)
+ { // Restore (or the data points won't use the unc_ellipse!
+ sty.shape_ = unc_ellipse;
+ }
               }
-
+
               // Line markers are only really useful for 2-D lines and curves showing functions.
               if (derived().legend_lines_)
               { // Need to draw a short line to show color for that data series.
@@ -1064,12 +1080,13 @@
             g_element& g_ptr,
             plot_point_style& sty,
             unc ux, unc uy) // Default unc ux = 0.? and uy = 0.
- { //! Draw a plot data point marker shape whose size and stroke and fill colors are specified in plot_point_style.
+ { /*! Draw a plot data point marker shape
+ whose size and stroke and fill colors are specified in plot_point_style.
+ */
             /*
               For 1-D plots, the points do not *need* to be centered on the X-axis,
               and putting them just above, or sitting on, the X-axis is much clearer.
- For 2-D plots, the symbol center should, of course,
- be centered exactly on x, y.
+ For 2-D plots, the symbol center should, of course, be centered exactly on x, y.
               circle and ellipse are naturally centered on the point.
               for rect x and y half_size offset centers square on the point.
               But symbols are in a rectangular box and the offset is different for x & y
@@ -1104,20 +1121,29 @@
               break;
 
             case unc_ellipse:
- { // Uncertainty ellipses for one, two and three standard deviations.
- double xu = ux.uncertainty() + ux.value(); //
- transform_x(xu);
+ { // Uncertainty horizontal (and, for 2D, vertical) ellipses for one, two and three standard deviations.
+ double xu = ux.value(); //
+ if (ux.uncertainty() > 0)
+ { // uncertainty is meaningful.
+ xu += ux.uncertainty();
+ }
+ transform_x(xu); // To SVG coordinates.
                 double x_radius = abs(xu - x);
- if (x_radius <= 0.)
- {
+ if (x_radius <= 0.)
+ { // Make sure something is visible.
                   x_radius = 1.; // Or size?
                 }
 
- double yu = uy.uncertainty() + uy.value();
+ double yu = uy.value();
+ if (uy.uncertainty() > 0)
+ { // uncertainty is meaningful.
+ yu += uy.uncertainty();
+ }
+
                 transform_y(yu);
                 double y_radius = abs(yu - y);
                 if (y_radius <= 0.)
- {
+ { // Make sure something is visible.
                   y_radius = 1.;
                 }
                 //image_.g(PLOT_DATA_UNC).style().stroke_color(magenta).fill_color(pink).stroke_width(1);

Modified: sandbox/SOC/2007/visualization/boost/svg_plot/detail/functors.hpp
==============================================================================
--- sandbox/SOC/2007/visualization/boost/svg_plot/detail/functors.hpp (original)
+++ sandbox/SOC/2007/visualization/boost/svg_plot/detail/functors.hpp 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -26,7 +26,7 @@
 # pragma warning (disable : 4244)
 #endif
 
-#include "..\uncertain.hpp"
+#include <boost/svg_plot/uncertain.hpp>
 //using boost::svg::unc;
 
 namespace boost {
@@ -41,11 +41,11 @@
 public:
     typedef double result_type; //!< result type is double.
 
- //! \tparam T type convertable to double.
+ //! \tparam T Any type convertible to double.
     template <class T>
- double operator()(T val) const //! Convert a single data value to double.
- {
- return (double)val;
+ double operator()(T val) const //! To convert a single data value to double.
+ {
+ return (double)val; //! \return Value that has been converted to double.
     }
 }; // class double_1d_convert
 
@@ -98,7 +98,7 @@
        return std::pair<unc, unc>((unc)(a.first), (unc)(a.second));
     }
 
- template <class T> //!< \tparam T type convertible to double.
+ template <class T> //!< \tparam T Any type convertible to double.
     std::pair<unc, unc> operator()(T a)
     { //!< Convert a pair of X and Y uncertain type values to a pair of unc.
         return std::pair<unc, unc>(i++, (unc)a); //! \return pair of unc.
@@ -109,19 +109,22 @@
 { /*! \class boost::svg::detail::unc_1d_convert
       \brief This functor allows any 1D data convertible to unc (uncertain doubles) to be plotted.
       \details Defaults provided by the unc class constructor ensure that
- uncertainty, degrees of freedom information, and type are set too.
+ uncertainty, degrees of freedom information, and type are suitably set too.
 */
 public:
     typedef unc result_type; //!< result type is an uncertain floating-point type.
 
+ //! \tparam T Any type convertible to double.
     template <class T>
     unc operator()(T val) const /*!< Convert to uncertain type, providing defaults for uncertainty,
- degrees of freedom information, and type meaning undefined.
- \return uncertain.*/
+ degrees of freedom information, and type (meaning undefined).
+ \return value including uncertainty information.
+ */
     {
       return (unc)val; //! \return uncertain type (uncertainty, degrees of freedom information, and type meaning undefined).
       // warning C4244: 'argument' : conversion from 'long double' to 'double', possible loss of data.
- // because unc only holds double precision. Suppressed by pragma for MSVC above. Need similar for other compilers.
+ // because unc only holds values to double precision.
+ // Suppressed by pragma for MSVC above. Need similar for other compilers.
     }
 }; // class default_1d_convert
 

Modified: sandbox/SOC/2007/visualization/boost/svg_plot/show_1d_settings.hpp
==============================================================================
--- sandbox/SOC/2007/visualization/boost/svg_plot/show_1d_settings.hpp (original)
+++ sandbox/SOC/2007/visualization/boost/svg_plot/show_1d_settings.hpp 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -1,10 +1,6 @@
 /*! \file show_1d_settings.hpp
- \author Jacob Voytko & Paul A. Bristow
 
   \brief Shows settings and options for 1D Plot.
- \details Outputs a full list of all settings and options for 1D Plot to std::cout.
- This is useful for diagnosing why your plot doesn't look as you hoped!
- \warning This creates about 100 lines of output, so should be used sparingly!
 
   \author Paul A. Bristow
   \date Mar 2009
@@ -12,7 +8,7 @@
  */
 
 // Copyright Jacob Voytko 2007
-// Copyright Paul A. Bristow 2008, 2009
+// Copyright Paul A. Bristow 2008, 2009, 2011
 
 // Use, modification and distribution are subject to the
 // Boost Software License, Version 1.0.
@@ -71,12 +67,11 @@
 void outFmtFlags(std::ios_base::fmtflags fmtFlags, std::ostream& os, const char* term)
 { //! Output strings describing all bits in std::ios_base::fmtflags.
   /*! Usage: outFmtFlags();
- for example, outputs to cerr: "FormatFlags: skipws showbase right dec"
- Default parameter values are:
- void outFmtFlags(fmtflags fmtFlags = cout.flags(), ostream& os = cerr, const char* term = ".\n");
+ for example, outputs to @c cerr: "FormatFlags: skipws showbase right dec"
+ Default parameter values are: @c void outFmtFlags(fmtflags fmtFlags = cout.flags(), ostream& os = cerr, const char* term = ".\n");
    */
   const int up = 16; // Words across page.
- const int count = 16; // cos using unsigned short int.
+ const int count = 16; // because using unsigned short int.
   int const flags = os.flags(); // save to restore.
   fmtFlags &= 0x7FFF; // _Fmtmask // clear un-used bits.
   os << "IOS format flags (" << std::showbase << std::hex << fmtFlags << std::dec << ")" ; // hex value.
@@ -155,12 +150,11 @@
  return ((i < 0) ? "bottom" : ((i == 0) ? "none" : "top"));
 }
 
- // Declaration, defined below.
 void show_1d_plot_settings(svg_1d_plot&);
 
 void show_1d_plot_settings(svg_1d_plot& plot)
-{ //! Diagnostic display to std::cout of all of a 1D plot's settings.
- /*! Outputs to cout, a long list of about hundred of plot parameter settings,
+{ /*! \brief Diagnostic display to std::cout of all of a 1D plot's settings.
+ Outputs a long list of about hundred of plot parameter settings to @c cout:
     invaluable if the plot does not look as expected.
     \warning This creates about 100 lines of output, so should be used sparingly!
   */
@@ -306,7 +300,7 @@
   cout.flags(iostate); // Restore.
 } // void show_plot_settings(svg_1d_plot& plot)
 
-} // svg
-} // boost
+} // namespace svg
+} // namespace boost
 
 #endif // BOOST_SVG_SHOW_1D_SETTINGS_HPP

Modified: sandbox/SOC/2007/visualization/boost/svg_plot/show_2d_settings.hpp
==============================================================================
--- sandbox/SOC/2007/visualization/boost/svg_plot/show_2d_settings.hpp (original)
+++ sandbox/SOC/2007/visualization/boost/svg_plot/show_2d_settings.hpp 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -1,11 +1,8 @@
 /*! \file show_2d_settings.hpp
- \author Jacob Voytko & Paul A. Bristow
 
   \brief Shows settings and options for 2D Plot.
- \details Outputs a full list of all settings and options for 2D Plot to std::cout.
- This is useful for diagnosing why your plot doesn't look as you hoped!
- (See also show_1d_settings.cpp for 1D plot).
- \warning This creates over 100 lines of output, so should be used sparingly!
+
+ \see show_1d_settings.cpp for 1-D plot.
 */
 
 // Copyright Jacob Voytko 2007
@@ -109,7 +106,7 @@
 
 void show_2d_plot_settings(svg_2d_plot& plot)
 { /*! Diagnostic display of all of a 2D plot's settings.
- Outputs to cout, a long list of about hundred of plot parameter settings,
+ Outputs a long list of about hundred of plot parameter settings to @c cout:
     invaluable if the plot does not look as expected.
    \warning This creates about 100 lines of output, so should be used sparingly!
   */

Modified: sandbox/SOC/2007/visualization/boost/svg_plot/svg_1d_plot.hpp
==============================================================================
--- sandbox/SOC/2007/visualization/boost/svg_plot/svg_1d_plot.hpp (original)
+++ sandbox/SOC/2007/visualization/boost/svg_plot/svg_1d_plot.hpp 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -5,11 +5,10 @@
   Very many functions allow fine control of the appearance and layout of plots and data markers.
   Items common to 1D and 2D use axis_plot_frame.
   \date Mar 2009
- \author Jacob Voytko & Paul A. Bristow
  */
 
 // Copyright Jacob Voytko 2007
-// Copyright Paul A. Bristow 2008, 2009
+// Copyright Paul A. Bristow 2008, 2009, 2011
 
 // Use, modification and distribution are subject to the
 // Boost Software License, Version 1.0.
@@ -28,19 +27,19 @@
 #include <boost/iterator/transform_iterator.hpp>
 // using boost::make_transform_iterator;
 
-#include "svg.hpp"
-#include "svg_style.hpp"
-#include "detail/axis_plot_frame.hpp" // Code shared with 2D.
+#include <boost/svg_plot/svg.hpp>
+#include <boost/svg_plot/svg_style.hpp>
+#include <boost/svg_plot/detail/axis_plot_frame.hpp> // Code shared with 2D.
 #include <boost/svg_plot/detail/functors.hpp>
 using boost::svg::detail::unc_1d_convert;
-#include "detail/numeric_limits_handling.hpp"
+#include <boost/svg_plot/detail/numeric_limits_handling.hpp>
 #include <boost/svg_plot/uncertain.hpp>
 // using boost::svg::unc;
 
 using boost::svg::detail::limit_NaN;
 
 #include <boost/svg_plot/detail/auto_axes.hpp> // provides:
-//void scale_axis(double min_value, double max_value, // Input range
+// void scale_axis(double min_value, double max_value, // Input range
 // double* axis_min_value, double* axis_max_value, double* axis_tick_increment, int* auto_ticks, // All 4 updated.
 // bool origin, // If true, ensures that zero is a tick value.
 // double tight, // Allows user to avoid a small fraction over a tick using another tick.
@@ -62,7 +61,7 @@
   const std::string strip_e0s(std::string s); // Strip unnecessary zeros and e and sign.
 
   class svg_1d_plot; // 1D Plot (that may include one or more data series).
- class svg_1d_plot_series; // 1D Plot a data series.
+ class svg_1d_plot_series; // A data series to be added to a 1D Plot.
 
 // ------------------------------------------------------------------
 // This allows us to store plot state locally in svg_plot.
@@ -93,7 +92,7 @@
   // Constructor svg_1d_plot_series.
   //! Scan each data point between the iterators that are passed,
   //! sorting them into the appropriate std::vectors, normal or not (NaN or infinite).
- template <class T> // \tparam T an STL container: array, vector<double>, set, map ...
+ template <class T> //! \tparam T an STL container: array, vector<double>, set, map ...<
   svg_1d_plot_series(T begin, T end, const std::string& title = "");
 
   // Declarations of Set functions for the plot series.
@@ -122,8 +121,8 @@
   size_t series_limits_count();//!< Get number of 'at limits' data points in this data series.
 }; // class svg_1d_plot_series
 
-// class svg_1d_plot_series Constructor
-template <class T> // T an STL container: array, vector<double>, set, map ...
+// class svg_1d_plot_series Constructor.
+template <class T> //! \tparam T an STL container: array, vector<double>, vector<unc>, set, map ...
 svg_1d_plot_series::svg_1d_plot_series(T begin, T end, const std::string& title)
 : // Constructor.
 title_(title),
@@ -134,14 +133,17 @@
 {
   for(T i = begin; i != end; ++i)
   { // No defaults for begin and end?
- unc temp = *i;
+ unc temp = *i; // Assumes unc type.
+ // TODO This should be a template typename built-in vector<double>, or vector<unc> or vector<named>
     if(detail::is_limit(temp.value()))
     {
       series_limits_.push_back(temp.value()); // 'limit' values: too big, too small or NaN.
+ // This assumes that uncertainty info is meaningless?
     }
     else
     {
- series_.push_back(temp); // Normal 'OK to plot' data values.
+ series_.push_back(temp); // Normal 'OK to plot' data values (including uncertainty info).
+ // Should copy name and other info too if applicable.
     }
   }
 } // svg_plot_series constructor.
@@ -201,45 +203,49 @@
 }
 
 svg_1d_plot_series& svg_1d_plot_series::line_width(double wid_)
-{ //! Set width of any line joining plot points.
+{ /*! Set width of any line joining plot points.
+ \return @c *this to make chainable.
+ */
   line_style_.width_ = wid_;
   return *this; // Make chainable.
 }
 
 double svg_1d_plot_series::line_width()
-{ //! \return width of any line joining plot points.
+{ //! \return Width of any line joining plot points.
   return line_style_.width_;
 }
 
 svg_1d_plot_series& svg_1d_plot_series::line_on(bool on_)
-{ //! Set true if to draw a line joining plot points.
+{ /*! Set @c true if to draw a line joining plot points.
+ \return @c *this to make chainable.
+ */
   line_style_.line_on_ = on_;
   return *this; // Make chainable.
 }
 
 bool svg_1d_plot_series::line_on()
-{ //! \return true if to draw a line joining plot points.
+{ //! \return @c true if to draw a line joining plot points.
   return line_style_.bezier_on_;
 }
 
 svg_1d_plot_series& svg_1d_plot_series::bezier_on(bool on_)
-{ //! Set true if to draw bezier curved line joining plot points.
+{ //! Set @c true if to draw bezier curved line joining plot points.
   line_style_.bezier_on_ = on_;
   return *this; // Make chainable.
 }
 
 bool svg_1d_plot_series::bezier_on()
-{ //! \return true if to draw bezier curved line joining plot points.
+{ //! \return @c true if to draw bezier curved line joining plot points.
   return line_style_.bezier_on_;
 }
 
 size_t svg_1d_plot_series::series_count()
-{ //! Number of normal 'OK to plot' data values in data series.
+{ //! \return Number of normal 'OK to plot' data values in data series.
   return series_.size();
 }
 
 size_t svg_1d_plot_series::series_limits_count()
-{ //! Number of 'at limit' values: too big, too small or NaN data values in data series.
+{ //! \return Number of 'at limit' values: too big, too small or NaN data values in data series.
   return series_limits_.size();
 }
 
@@ -254,21 +260,19 @@
 
 class svg_1d_plot : public detail::axis_plot_frame<svg_1d_plot>
 { /*! \class boost::svg::svg_1d_plot
- \brief Hold all data about a plot, and functions to get and set.
- \details All data about a plot, and functions to get and set appearance.
+ \brief All settings for a plot that control the appearance, and functions to get and set these settings.
       axis_plot_frame.hpp contains functions common to 1 and 2-D.
- See also svg_2d_plot.hpp for 2-D version.
+ \details Several versions of the function plot are provided to allow data to be in different sources,
+ and to allow either all data in a container to just a sub-range to be plotted.
+ \see also svg_2d_plot.hpp for the 2-D version.
   */
 
   friend void show_1d_plot_settings(svg_1d_plot&);
   //friend void show_2d_plot_settings(svg_1d_plot&); // Surely not needed?
   friend class detail::axis_plot_frame<svg_1d_plot>;
 
-public: // Temporary for gil experiment.
-
  //protected:
- // Member data names conventionally end with _.
- // for example: border_margin_,
+ // Member data names conventionally end with _, for example: border_margin_,
   // and set & get accessor functions are named *without* _ suffix,
   // for example: border_margin() & border_margin(int).
 
@@ -652,7 +656,7 @@
   } // void calculate_plot_window()
 
   void calculate_transform()
- { //! Calculate scale and shift factors for transform from Cartesian to plot.
+ { //! Calculate scale and shift factors for transforming from Cartesian to SVG plot.
     //! SVG image is (0, 0) at top left, Cartesian (0, 0) at bottom left.
     x_scale_ = (plot_right_ - plot_left_) / (x_axis_.max_ - x_axis_.min_);
     x_shift_ = plot_left_ - (x_axis_.min_ * (plot_right_ - plot_left_) / (x_axis_.max_ - x_axis_.min_));
@@ -693,7 +697,8 @@
 
   void update_image()
   { //! Calls functions to add all plot information to the image, including
- //plot window, axes, ticks, labels, grids, legend, and finally all the data series.
+ // plot window, axes, ticks, labels, grids, legend, and finally all the data series.
+
     clear_all(); // Removes all elements that will show up in a subsequent draw.
 
     // Draw plot background.
@@ -744,7 +749,7 @@
           { // Show the value (& perhaps uncertainty) of the data point too.
             g_element& g_ptr_v = image_.g(detail::PLOT_X_POINT_VALUES).add_g_element();
             draw_plot_point_value(x, y, g_ptr_v, x_values_style_, serieses_[i].point_style_, ux);
- // TODO separate X and Y colors?
+ // TODO Might separate X and Y colors?
           }
           else
           { // don't plot anything? Might leave a marker to show an 'off the scale' value?
@@ -798,8 +803,6 @@
         }
       } // for j
     } // for i limits point
-
-
   } // void update_image()
 
   // ------------------------------------------------------------------------
@@ -812,7 +815,7 @@
   svg_1d_plot& write(const std::string& file);
   svg_1d_plot& write(std::ostream& s_out);
 
- // Definitions of several versions of plot function to add data series.
+ // Declarations of several versions of function plot to add data series (with defaults).
   template <class T>
   svg_1d_plot_series& plot(const T& container, const std::string& title = "");
   template <class T>
@@ -826,9 +829,16 @@
 // svg_1d_plot Member functions definitions.
 
   svg_1d_plot& svg_1d_plot::write(const std::string& file)
- { //! Write SVG image to the specified file.
- /** Write SVG image to the specified file, providing the suffix .svg if none given.
- This function uses the write to ostream function.
+ { /*! Write SVG image to the specified file, providing the suffix .svg if none given.
+
+ \details write() has two versions: to an ostream and to a file.
+ The stream version first clears all unnecessary data from the graph,
+ builds the document tree, and then calls the write function for the root
+ document node, which calls all other nodes through the Visitor pattern.
+
+ \note This file version opens an ostream, and calls the ostream version of write.
+
+ \return *this to make chainable.
     */
     std::string filename(file); // Copy to avoid problems with const if need to append.
     if (filename.find(".svg") == std::string::npos)
@@ -848,51 +858,58 @@
 
   svg_1d_plot& svg_1d_plot::write(std::ostream& s_out)
   { /*! Write SVG image to the specified std::ostream.
- This function also is used by the write to file function.
+ \note This function also is used by the write to file function.
+ \return @c *this to make chainable.
     */
     update_image();
     /*!
- Default stream precision 6 decimal digits is probably excessive.
- 4.1 Basic data types, integer or float in decimal or scientific (using e format).
- - probably enough if image size is under 1000 x 1000.
- Reduces .svg file sizes significantly for curves represented with many data points.
+ The default stream precision of 6 decimal digits is probably excessive.
+ 4.1 Basic data types, integer or float in decimal or scientific (using E format).
+ If image size is under 1000 x 1000, the SVG plot default precision of 3 is probably sufficient.
+ This reduces .svg file sizes significantly for curves represented with many data points.
       For example, if a curve is shown using 100 points,
       reducing to coord_precision(3) from default of 6 will reduce file size by 300 bytes.
     */
     image_.write(s_out);
- return (svg_1d_plot&)*this;
+ return (svg_1d_plot&) *this;
   } // write
 
- template <class T>
+ template <class T> //! \tparam T Floating-point type of the data (@c T must be convertible to double).
   svg_1d_plot_series& svg_1d_plot::plot(const T& container, const std::string& title /*= "" */)
   { /*! Add a data series to the plot (by default, converting to unc doubles), with optional title.
- Note that this version assumes that \b ALL the data values in the container are used.
- */
- serieses_.push_back(
- svg_1d_plot_series(
- boost::make_transform_iterator(container.begin(), detail::unc_1d_convert()),
- boost::make_transform_iterator(container.end(), detail::unc_1d_convert()),
- title)
- );
- /*
      \code
 std::vector<float> my_data; // my container.
 my_data.pushback(2.f); // Fill container with some data.
 my_data.pushback(3.f);
 my_data.pushback(4.f);
-my_1d_plot.plot(my_data, "All my container"); // Plot all data.
+my_1d_plot.plot(my_data, "All data in my container"); // Plot all data in container.
      \endcode
+
+ \param container Container (for example vector) for the data to be added to the plot.
+ \param title Optional title for the data series (default none).
+
+ \return Reference to data series just added (to make chainable).
+
+ \note This version assumes that \b ALL the data values in the container are used.
    */
+ serieses_.push_back(
+ svg_1d_plot_series(
+ boost::make_transform_iterator(container.begin(), detail::unc_1d_convert()),
+ boost::make_transform_iterator(container.end(), detail::unc_1d_convert()),
+ title)
+ );
     return serieses_[serieses_.size() - 1];
- //! \return Reference to data series just added.
   } // plot(const T& container, const std::string& title)
 
- template <class T>
+ template <class T> //! \tparam T floating-point type of the data (T must be convertable to double).
   svg_1d_plot_series& svg_1d_plot::plot(const T& begin, const T& end, const std::string& title)
- { //! Add a data series to the plot (by default, converting to unc doubles), with optional title.
- /*!
- Note that this version permits a partial range, begin to end, of the container to be used.
- \return a reference to data series just added.
+ { /*! Add a data series to the plot (by default, converting to unc doubles), with optional title.
+ \note This version permits a partial range of the container, from begin to end, to be used.
+ \return a reference to the data series just added.
+ \param begin Iterator to 1st data item in container.
+ \param end Iterator to one-beyond-end of data in container.
+ \param title Optional title for the plot (default is no title).
+
     */
     serieses_.push_back(
       svg_1d_plot_series(
@@ -900,17 +917,28 @@
       boost::make_transform_iterator(end, detail::unc_1d_convert()),
       title)
     );
- //! For example: my_1d_plot.plot(my_data.begin(), my_data.end(), "My container");
- //! my_1d_plot.plot(&my_data[1], &my_data[4], "my_data 1 to 4"); // Add part of data series.
- //! Care: last == end which is one past the last, so this only does 1, 2 & 3 - \b not 4!
+ /*! For example:\n
+ @c my_1d_plot.plot(my_data.begin(), my_data.end(), "My container");\n
+ @c my_1d_plot.plot(&my_data[1], &my_data[4], "my_data 1 to 4"); // Add part of data series
+
+ \warning last == end which is one past the last, so this only does 1, 2 & 3 - \b not 4!
+ */
     return serieses_[serieses_.size() - 1]; // Reference to data series just added.
   } // plot
 
- template <class T, class U>
+ template <class T, class U> /*!
+ \tparam T floating-point type of the data (which must be convertable to double).
+ \tparam U functor floating-point type (default is double_1d_convert).
+ */
   svg_1d_plot_series& svg_1d_plot::plot(const T& begin, const T& end, const std::string& title /* = ""*/, U functor /* = double_1d_convert */)
   { /*! Add a data series to the plot, with optional title. (Version with custom functor, rather than to double).
- Note that this version permits a partial range, begin to end, of the container to be used.
- \return a reference to data series just added.
+ \note This version permits a @b partial range, begin to end, of the container to be used.
+
+ \param begin Iterator to 1st data item in container.
+ \param end Iterator to one-beyond-end of data in container.
+ \param title Optional title for the plot (default is no title).
+ \param functor Custom functor.
+ \return a reference to data series just added (to make chainable).
     */
     serieses_.push_back(
       svg_1d_plot_series(
@@ -918,15 +946,23 @@
         boost::make_transform_iterator(container.end(), functor),
         title)
     );
- return serieses_[serieses_.size() - 1]; // Reference to data series just added.
+ return serieses_[serieses_.size() - 1]; //!< \return Reference to data series just added.
   } // plot
 
- template <class T, class U>
+ template <class T, class U> /*!
+ \tparam T floating-point type of the data (which must be convertable to double).
+ \tparam U functor floating-point type (default is @c double_1d_convert).
+ */
   svg_1d_plot_series& svg_1d_plot::plot(const T& container, const std::string& title /* = "" */, U functor/*= double_1d_convert*/)
   { //! Add a data series to the plot, with optional title.
   /*!
     This version of plot includes a functor, allowing other than just convert data values to double(the default).
- \return a reference to data series just added.
+ \param container Container for data (for example vector) that contains the data to be added to the plot.
+ \param title Optional title for the plot (default is no title).
+ \param functor Custom functor to convert data value to double.
+
+
+ \return a reference to data series just added (to make chainable).
   */
     serieses_.push_back(
       svg_1d_plot_series(

Modified: sandbox/SOC/2007/visualization/boost/svg_plot/svg_2d_plot.hpp
==============================================================================
--- sandbox/SOC/2007/visualization/boost/svg_plot/svg_2d_plot.hpp (original)
+++ sandbox/SOC/2007/visualization/boost/svg_plot/svg_2d_plot.hpp 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -793,25 +793,25 @@
         // Check if the axes will intersect.
         // X axis position is determined by the range of Y min and max label values.
         x_axis_position_ = x_intersects_y; // Assume X-axis will intersect Y-axis (range of Y values includes zero).
- if (y_axis_.min_ > std::numeric_limits<double>::min()) // All Y values definitely > zero.
+ if (y_axis_.min_ > (std::numeric_limits<double>::min)()) // All Y values definitely > zero.
         { // y_min_ > 0, so X-axis will not intersect Y-axis, so put X axis line on bottom plot window.
           x_axis_position_ = bottom; // X-axis to bottom.
           x_ticks_.ticks_on_window_or_on_axis_ = -1; // X-axis ticks to bottom of plot window.
         }
- else if(y_axis_.max_ < -std::numeric_limits<double>::min()) // all Y values definitely < zero.
+ else if(y_axis_.max_ < -(std::numeric_limits<double>::min)()) // all Y values definitely < zero.
         { // // y_max_ < 0, so X-axis will not intersect Y-axis, so put X axis line on top plot window.
           x_axis_position_ = top; // X-axis to top of plot window.
           x_ticks_.ticks_on_window_or_on_axis_ = +1; // X-axis ticks to top of plot window.
         }
         // Y axis position is determined by the range of X values.
         y_axis_position_ = y_intersects_x; // Assume Y-axis will intersect X-axis (X range includes zero).
- if (x_axis_.min_ > std::numeric_limits<double>::min()) // X values all definitely > zero.
+ if (x_axis_.min_ > (std::numeric_limits<double>::min)()) // X values all definitely > zero.
         { // Y-axis > 0, so will not intersect X-axis.
           y_axis_position_ = left; // Y-axis free to left of end of X-axis.
            // Need to put the labels on the plot window instead of the X-axis.
          y_ticks_.ticks_on_window_or_on_axis_ = -1; // Y axis ticks to left of window (because floating off end of X-axis).
         }
- else if (x_axis_.max_ < -std::numeric_limits<double>::min()) // X all definitely < zero.
+ else if (x_axis_.max_ < -(std::numeric_limits<double>::min)()) // X all definitely < zero.
         { // Y-axis < 0, so will not intersect X-axis.
           y_axis_position_ = right; // Y-axis to right of plot window.
           y_ticks_.ticks_on_window_or_on_axis_ = +1; // Y-axis ticks to right of plot window.
@@ -2822,20 +2822,20 @@
 
       svg_2d_plot& svg_2d_plot::x_ticks_on_window_or_axis(int side)
       { // Set if ticks on the plot window or on the X axis.
- // \param side -1 ticks downward.
- // \param side 0 no ticks.
- // \param side +1 ticks upward.
+ //! \param side -1 ticks downward.
+ //! \param side 0 no ticks.
+ //! \param side +1 ticks upward.
         x_ticks_.ticks_on_window_or_on_axis_ = side;
         return *this; //! \return reference to svg_2d_plot to make chainable.
       }
 
       int svg_2d_plot::x_ticks_on_window_or_axis()
- { // \return if ticks on the plot window or on the X axis.
+ { //! \return if ticks on the plot window or on the X axis.
         return x_ticks_.ticks_on_window_or_on_axis_;
       }
 
       svg_2d_plot& svg_2d_plot::x_major_labels_side(int side)
- { /* Side for major ticks label values:
+ { /*! Side for major ticks label values:
          \param side -1 labels downward.
          \param side 0 no labels.
          \param side +1 labels upward.
@@ -2845,7 +2845,7 @@
       }
 
       int svg_2d_plot::x_major_labels_side()
- { // \return side for label values for major ticks.
+ { //! \return side for label values for major ticks.
         return x_ticks_.major_value_labels_side_;
       }
 

Modified: sandbox/SOC/2007/visualization/boost/svg_plot/svg_boxplot.hpp
==============================================================================
--- sandbox/SOC/2007/visualization/boost/svg_plot/svg_boxplot.hpp (original)
+++ sandbox/SOC/2007/visualization/boost/svg_plot/svg_boxplot.hpp 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -39,15 +39,15 @@
 
 #include <boost/iterator/transform_iterator.hpp>
 
-#include "svg.hpp"
-#include "svg_style.hpp"
-#include "detail/numeric_limits_handling.hpp"
-#include "detail/svg_boxplot_detail.hpp"
-#include "detail/functors.hpp"
-#include "detail/axis_plot_frame.hpp"
-#include "detail/auto_axes.hpp" //
-#include "quantile.hpp"
-#include "uncertain.hpp"
+#include <boost/svg_plot/svg.hpp>
+#include <boost/svg_plot/svg_style.hpp>
+#include <boost/svg_plot/detail/numeric_limits_handling.hpp>
+#include <boost/svg_plot/detail/svg_boxplot_detail.hpp>
+#include <boost/svg_plot/detail/functors.hpp>
+#include <boost/svg_plot/detail/axis_plot_frame.hpp>
+#include <boost/svg_plot/detail/auto_axes.hpp>
+#include <boost/svg_plot/quantile.hpp>
+#include <boost/svg_plot/uncertain.hpp>
 
 #include <vector>
 #include <string>
@@ -95,7 +95,7 @@
   // For example, string title_, but set with title("my title") and get with title().
 
   /*! boost::svg::svg_boxplot_series
- Information about a data series to be box plotted.
+ Information about a data series to be dsiplayed as a Box Plot.
      A Box Plot that can contain several boxplot data series.
      Median, whiskers and outliers are computed for each series.
      \see http://en.wikipedia.org/wiki/Boxplot
@@ -189,8 +189,10 @@
     } // svg_boxplot_series constructor.
 
     void calculate_quantiles()
- { /*! \brief Divide sorted data set into four equal parts, called quartiles,
+ { /*!
+ \brief Divide sorted data set into four equal parts, called quartiles,
         so each part represent 1/4th of the sampled population.
+
        \details
          Michael Frigge, David C. Hoaglin and Boris Iglewicz
         The American Statistician, Vol. 43, No. 1 (Feb., 1989), pp. 50-54
@@ -871,7 +873,9 @@
 
   // Clear Functions.
   void clear_all()
- { /*! Clear all the previous information and rebuild the SVG image.
+ { /*! \brief Clear all the previous information and rebuild the SVG image.
+
+ \details
        When writing to multiple documents, the contents of the plot
        may change significantly between. Rather than figuring out what
        has and has not changed, just erase the contents of the
@@ -1630,10 +1634,10 @@
 
   } // draw_y_axis_label
 
- void draw_box(double q1, double q3, // Quartiles
+ void draw_box(double q1, double q3, // Quartiles.
   double x, double width,
   const svg_style& box_styl)
- { //! Draw the box border and any fill.
+ { //! Draw the box border and any fill color.
     g_element& g_ptr = image_.g(boxplot::MEDIAN).add_g_element();
 
     g_ptr.style().stroke_color(box_styl.stroke_color())
@@ -1674,7 +1678,7 @@
   void draw_whiskers(double min, double max, double length, double x,
     const svg_style& min_whisker, const svg_style& max_whisker,
     const svg_style& axis_whisker)
- { //! Draw the whiskers.
+ { //! Draw the whiskers for the boxplot.
     // Set up document structure for whiskers:
     g_element& g_whisk_ptr = image_.g(boxplot::WHISKER).add_g_element();
 
@@ -1738,6 +1742,7 @@
         { // Show the value of the data point too.
           draw_plot_point_value(x, y, image_.g(boxplot::DATA_VALUE_LABELS).add_g_element(), const_cast<value_style&>(values_style), mild_outlier_, value);
         }
+ // Label the (outlier) data point with a name here?
       } // In window OK.
     }
     g_element& g_ext_ptr = image_.g(boxplot::EXTREME_OUTLIERS).add_g_element();
@@ -1769,7 +1774,7 @@
   { //! Draw a whole boxplot, box, median line, axis whiskers, and outliers.
 
     // const here causes trouble
- // Need to calculate quartiles here to permit individual plot quartile_definition.
+ // Need to calculate quartiles here to permit custom plot quartile definition.
     series.calculate_quantiles();
 
     draw_whiskers(series.whisker_min_, series.whisker_max_,

Modified: sandbox/SOC/2007/visualization/boost/svg_plot/uncertain.hpp
==============================================================================
--- sandbox/SOC/2007/visualization/boost/svg_plot/uncertain.hpp (original)
+++ sandbox/SOC/2007/visualization/boost/svg_plot/uncertain.hpp 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -1,4 +1,6 @@
-/*! \file uncertain.hpp
+// uncertain.hpp
+
+/*! \file
   \brief Class for storing Uncertainties and simple propagation according to a pure Gaussian model.
   \details
     This simplifed version assuming uncorrelated uncertainties (the common case)
@@ -15,7 +17,7 @@
   \author Paul A. Bristow
   \date Mar 2009
 */
-// Copyright Paul A. Bristow 2009
+// Copyright Paul A. Bristow 2009, 2011
 
 // Use, modification and distribution are subject to the
 // Boost Software License, Version 1.0.
@@ -31,7 +33,8 @@
 //using std::ostream;
 #include <limits>
 //using std::numeric_limits;
-#include <utility> // using std::pair;
+#include <utility>
+// using std::pair;
 
 namespace boost
 {
@@ -53,7 +56,7 @@
 class unc
 {
 public:
- unc(); // Default constructor.
+ unc(); //!< Default constructor with value .
   unc(double v, float u, short unsigned df, short unsigned ty);
    /*! \brief Output an value with (if defined) uncertainty and degrees of freedom (and type).
        For example: "1.23 +/- 0.01 (13)".\n
@@ -72,18 +75,19 @@
   unc& operator=(const unc& rhs);
 
   // Get and set member functions.
- double value() const; // return most likely value, typically the mean.
- float uncertainty() const; // returnestimate of uncertainty, typically one standard deviation.
- short unsigned deg_free() const; // return degrees of freedom, usually = number of observations -1;
- short unsigned types() const; // return other information about the value.
-
- void value(double); // Set most likely value, typically the mean.
- void uncertainty(float); // Set estimate of uncertainty, typically standard deviation.
- void deg_free(short unsigned); // Set degrees of freedom, usually = number of observations -1;
- void types(short unsigned); // Set other information about the value.
+ double value() const; //!< \return most likely value, typically the mean.
+ float uncertainty() const; //!< \return estimate of uncertainty, typically one standard deviation.
+ short unsigned deg_free() const; //! \return degrees of freedom, usually = number of observations -1;
+ short unsigned types() const; //! \return other information about the value.
+
+ void value(double); //!< Set most likely value, typically the mean.
+ void uncertainty(float); //!< Set estimate of uncertainty, typically standard deviation.
+ void deg_free(short unsigned); //!< Set degrees of freedom, usually = number of observations -1;
+ void types(short unsigned); //!< Set other information about the value.
 
 private:
- // Note that this class should fit into 128 bytes, same as two 64 bit doubles, so it only doubles the memory required.
+ // Note that this class should fit into 128 bytes, same as two 64 bit doubles,
+ // so it only doubles the memory required.
   double value_; //!< Most likely value, typically the mean.
   float uncertainty_; //!< Estimate of uncertainty, typically one standard deviation.
   //! Negative values mean that uncertainty is not defined.
@@ -253,17 +257,17 @@
 
 template<>
 float unc_of(unc v)
-{ //! \return unc.uncertainty() as a float.
+{ //! \return unc.uncertainty() as a float. (Can be cast or converted to double without loss of accuracy).
   return v.uncertainty();
 }
 
 // Two helper functions to provide values and uncertainties as pairs.
 // Note names plural valueS_of
 
-template <class T> //! \tparam T Builtin-floating point type or unc.
-std::pair<double, double> values_of(T); //!< Get values of a pair of values.
+template <class T> //! \tparam T Built-infloating-point type, float, double, long double or unc.
+std::pair<double, double> values_of(T); //!< Get double values of a pair of values.
 
-template <class T> //! \tparam T Builtin-floating point type or unc.
+template <class T> //! \tparam T Built-infloating-point type, float, double, long double or unc.
 std::pair<double, double> values_of(std::pair<const T, T> vp)
 { //!< \return values of a pair of double values.
   return std::make_pair(value_of(vp.first), value_of(vp.second));
@@ -272,9 +276,10 @@
 template <class T> //! \tparam T Builtin-floating point type or unc.
 std::pair<double, double> values_of(std::pair<const unc, unc> up)
 { //! \return value (part) as a pair of doubles.
- // so can write
- // std::pair<const double, double> minmax = value_of(*result.first); // x min & max
- // whether T is double or unc.
+ /* \noteso can write
+ @c std::pair<const double, double> minmax = value_of(*result.first); // x min & max
+ whether T is double or unc.
+ */
 
   double vp1 = up.first.value();
   double vp2 = up.second.value();
@@ -291,18 +296,19 @@
 template <class T>
 std::pair<double, double> values_of(std::pair<unc, unc> up)
 { //! \return value (part) as a pair of doubles.
- // so can write
- // std::pair<const double, double> minmax = value_of(*result.first); // x min & max
- // whether T is double or unc.
+ /* \note so can write
+ @c std::pair<const double, double> minmax = value_of(*result.first); // x min & max
+ whether T is @c double or @c unc.
+ */
   return std::make_pair<double, double>(up.first.value(), up.second.value());
 }
 
 //! Get uncertainties (standard deviation) of a pair of values.
-template <class T> //! \tparam T Builtin-floating point type or unc.
+template <class T> //! \tparam T Built-infloating-point type or unc.
 std::pair<float, float> uncs_of(T); // Declaration.
 
 //! Get uncertainties (standard deviation) of a pair of values.
-template <class T> //! \tparam T Builtin-floating point type or unc.
+template <class T> //! \tparam T Built-in floating-point type or unc.
 std::pair<float, float> uncs_of(std::pair<T, T> vp)
 {
   return std::make_pair<float, float>(unc_of(vp.first), unc_of(vp.second));

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/1d_tutorial.qbk
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/1d_tutorial.qbk (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/1d_tutorial.qbk 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -5,7 +5,7 @@
 [/include 1d_vector_tutorial.qbk]
 [section:1d_vector_tutorial 1-D Vector Example]
 
-[import ..\example\demo_1d_vector.cpp] [/QuickBook in C++]
+[import ../example/demo_1d_vector.cpp] [/Uses QuickBook in C++]
 [demo_1d_vector_1]
 [demo_1d_vector_2]
 
@@ -26,7 +26,7 @@
 [/include demo_1d_containers.qbk]
 [section:demo_1d_containers_tutorial 1-D STL Containers Examples]
 
-[import ..\example\demo_1d_containers.cpp]
+[import ../example/demo_1d_containers.cpp]
 [demo_1d_containers_1]
 [demo_1d_containers_2]
 [demo_1d_containers_3]
@@ -45,13 +45,13 @@
 
 And you can view the other svg files (with most internet browsers, and other programs too) for example:
 
-* [@\images\demo_1d_array_long_double.svg demo_1d_array_long_double.svg]
+* [@/images/demo_1d_array_long_double.svg demo_1d_array_long_double.svg]
 
-* [@\images\demo_1d_set_double.svg demo_1d_set_double.svg]
+* [@/images/demo_1d_set_double.svg demo_1d_set_double.svg]
 
-* [@\images\demo_1d_list_double.svg demo_1d_list_double.svg]
+* [@/images/demo_1d_list_double.svg demo_1d_list_double.svg]
 
-* [@\images\demo_1d_deque_double.svg demo_1d_deque_double.svg]
+* [@/images/demo_1d_deque_double.svg demo_1d_deque_double.svg]
 
 See [@../../example/demo_1d_containers.cpp demo_1d_containers.cpp]
 for full source code.
@@ -194,7 +194,7 @@
 This is controlled using the `enum x_axis_intersect` and function
 `x_ticks_on_window_or_axis`.
 
-[import ..\example\demo_1d_x_external.cpp]
+[import ../example/demo_1d_x_external.cpp]
 
 [demo_1d_x_external_1]
 
@@ -217,7 +217,7 @@
 
 [h4 X-Axis Tick value labels precision, iosflags, font family and size]
 
-[import ..\example\demo_2d_tick_values.cpp]
+[import ../example/demo_2d_tick_values.cpp]
 
 [demo_2d_tick_values_1]
 [demo_2d_tick_values_2]
@@ -234,7 +234,7 @@
 
 [h4 Axis scaling with function scale_axis]
 
-[import ..\example\demo_1d_axis_scaling.cpp]
+[import ../example/demo_1d_axis_scaling.cpp]
 
 [demo_1d_axis_scaling_1]
 [demo_1d_axis_scaling_2]
@@ -256,7 +256,7 @@
 [/include demo_1d_autoscaling.qbk]
 [section:auto_1d_plot 1-D Auto scaling Examples]
 
-[import ..\example\auto_1d_plot.cpp]
+[import ../example/auto_1d_plot.cpp]
 [auto_1d_plot_1]
 [auto_1d_plot_2]
 [auto_1d_plot_3]
@@ -293,7 +293,7 @@
 
 [h4 Showing 1D Data Values Examples]
 
-[import ..\example\demo_1d_values.cpp]
+[import ../example/demo_1d_values.cpp]
 
 [demo_1d_values_1]
 [demo_1d_values_2]
@@ -303,7 +303,7 @@
 
 This example demonstrates showing values that are too small or too large, or NotaNumber.
 
-[import ..\example\demo_1d_limits.cpp]
+[import ../example/demo_1d_limits.cpp]
 
 [demo_1d_limits_1]
 [demo_1d_limits_2]
@@ -319,7 +319,7 @@
 [section:demo_1d_heat_flow_data Real-life Heat flow data]
 
 This example shows some real-life data plotted in 1D and as a boxplot.
-[import ..\example\demo_1d_heat_flow_data.cpp]
+[import ../example/demo_1d_heat_flow_data.cpp]
 
 [heat_flow_1d_plot_1]
 
@@ -333,7 +333,7 @@
 
 [section:demo_1d_uncertainty Demonstration of using 1D data that includes information about its Uncertainty]
 
-[import ..\example\demo_1d_uncertainty.cpp]
+[import ../example/demo_1d_uncertainty.cpp]
 
 [demo_1d_uncertainty_1]
 [demo_1d_uncertainty_2]
@@ -350,7 +350,7 @@
 [endsect] [/section:tutorial_1d 1D Tutorials]
 [/ 1d_tutorial.qbk
   Copyright 2007 Jake Voytko.
- Copyright 2008, 2009 Paul A. Bristow.
+ Copyright 2008, 2009, 2011 Paul A. Bristow.
   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).

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/2d_tutorial.qbk
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/2d_tutorial.qbk (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/2d_tutorial.qbk 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -201,7 +201,7 @@
 
 [h4 X-Axis Tick value labels precision, iosflags, font family and size]
 
-[import ..\example\demo_1d_tick_values.cpp]
+[import ../example/demo_1d_tick_values.cpp]
 
 [demo_1d_tick_values_1]
 [demo_1d_tick_values_2]
@@ -228,7 +228,7 @@
 
 [$images/2d_y_grid.svg]
 
-The source of this examples is at [@..\..\example\2d_y_grid.cpp]
+The source of this examples is at [@../../example\2d_y_grid.cpp]
 
 Similarly you can have horizontal and/or vertical lines:
 
@@ -259,7 +259,7 @@
 [$images/2d_area_fill_1.svg]
 [$images/2d_area_fill_2.svg]
 
-from source at [@..\..\example\2d_area_fill.cpp]
+from source at [@../../example\2d_area_fill.cpp]
 
 [h4 Curve Interpolation]
 
@@ -288,7 +288,7 @@
 
 [h4 Showing 2d Data Values Examples]
 
-[import ..\example\demo_2d_values.cpp]
+[import ../example/demo_2d_values.cpp]
 
 [demo_2d_values_1]
 [demo_2d_values_2]
@@ -303,7 +303,7 @@
 Some values are 'at limit' - infinite, NotANumber (NaN) or near the maximum possible for the floating-point type.
 These values are displayed differently (and not used for autoscaling).
 
-[import ..\example\demo_2d_limits.cpp]
+[import ../example/demo_2d_limits.cpp]
 
 [demo_2d_limits_1]
 [demo_2d_limits_2]
@@ -320,7 +320,7 @@
 
 [h4 Autoscale 2D Examples]
 
-[import ..\example\auto_2d_plot.cpp]
+[import ../example/auto_2d_plot.cpp]
 
 [auto_2d_plot_1]
 [auto_2d_plot_2]
@@ -335,7 +335,7 @@
 [section:demo_2d_uncertainty Demonstration of using 2D data that includes information about its uncertainty]
  [/Caution XML doesn't like 8-bit codepage +- symbol so don't use in .?pp or in output or .qbk, Only Unicode is OK.]
 
-[import ..\example\demo_2d_uncertainty.cpp]
+[import ../example/demo_2d_uncertainty.cpp]
 
 [demo_2d_uncertainty_1]
 [demo_2d_uncertainty_2]
@@ -352,7 +352,7 @@
 
 [section:fit_lines Demonstration of adding lines and curves, typically a least squares fit]
 
-[import ..\example\demo_2d_lines.cpp]
+[import ../example/demo_2d_lines.cpp]
 [demo_2d_lines_1]
 [demo_2d_lines_2]
 

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/Jamfile.v2
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/Jamfile.v2 (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/Jamfile.v2 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -18,7 +18,6 @@
 
 using quickbook ;
 using doxygen ;
-using auto-index ;
 
 import os ; # Needed to get environment variables.
 local BOOST_ROOT = [ os.environ BOOST ] ; # Assumes you have set an environment variable $BOOST_ROOT.
@@ -67,7 +66,7 @@
         <format>pdf:<xsl:param>index.on.type=1 # For the native stylesheets to generate the different indexes.
         # PDF native index support is probably better for PDFs as then you actually get page numbers.
 
- <auto-index-script>index.idx # Specifies the name of the script to load.
+ <auto-index-script>svg_plot.idx # Specifies the name of the script to load.
         # <auto-index-prefix>../../../ # OK for Boost /boost and /libs normal directory layout
         # using scan-path in index.idx, for example:
         
@@ -82,7 +81,7 @@
 }
 else
 {
- ECHO "Building the Quickdox docs with automatic index generation disabled. To get an auto-index, try building with --enable-index." ;
+ ECHO "Building the Quickdox docs with automatic index generation disabled. To get an AutoIndex, try building with --enable-index." ;
 }
 
 
@@ -95,7 +94,7 @@
 doxygen autodoc
   :
     [ glob ../../../boost/svg_plot/*.hpp ]
- [ glob ../../../boost/svg_plot/detail/*.hpp ]
+ # [ glob ../../../boost/svg_plot/detail/*.hpp ]
   :
     #<doxygen:param>INPUT="filename1 directoryname2" # Separate with spaces.
     # But also see paths specified above.
@@ -117,8 +116,8 @@
     # If the EXTRACT_STATIC tag is set to YES all static members of a file
     # will be included in the documentation.
     # <doxygen:param>EXTRACT_LOCAL_STATIC=YES # ? Not supported.
- <doxygen:param>EXTRACT_LOCAL_METHODS=YES # Only useful for Objective C?
- <doxygen:param>EXTRACT_LOCAL_CLASSES=YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+ <doxygen:param>EXTRACT_LOCAL_METHODS=NO # Only useful for Objective C?
+ <doxygen:param>EXTRACT_LOCAL_CLASSES=NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
     # defined locally in source files will be included in the documentation.
     # If set to NO only classes defined in header files are included.
     <doxygen:param>ENABLE_PREPROCESSING=YES # Doxygen will expand all macro names in the source code.
@@ -264,4 +263,5 @@
 
 # install pdf-install : standalone : <location>. <install-type>PDF ; #
 
+install pdf-install : standalone : <install-type>PDF <location>. <name>SVG_plot.pdf ;
 

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/doxywarnings.log
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/doxywarnings.log (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/doxywarnings.log 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -1,2 +0,0 @@
-I:/boost-sandbox/SOC/2007/visualization/boost/svg_plot/svg_boxplot.hpp:92: warning: Member __pad0__ (variable) of namespace boost is not documented.
-I:/boost-sandbox/SOC/2007/visualization/boost/svg_plot/svg_boxplot.hpp:92: warning: Member __pad0__ (variable) of namespace boost is not documented.

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/fonts.qbk
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/fonts.qbk (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/fonts.qbk 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -1,6 +1,6 @@
 [section:fonts Fonts]
 
-[import ..\example\demo_2d_fonts.cpp]
+[import ../example/demo_2d_fonts.cpp]
 
 Examples of fonts are at [@../../../svg_plot/example/demo_2d_fonts.cpp demo_2d_fonts.cpp].
 

Deleted: sandbox/SOC/2007/visualization/libs/svg_plot/doc/index.idx
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/index.idx 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
+++ (empty file)
@@ -1,47 +0,0 @@
-#index.idx for SVG_plot Quickbook, Doxygen and Auto-index.
-
-# SVG_plot Header files.
-!scan-path "boost/svg_plot" ".*\.hpp" true
-
-# SVG_plot Examples files.
-!scan-path "libs/svg_plot/example" ".*\.cpp" true
-
-autoscaling \<autoscal\w*\>
-axis <\<ax\w*\>
-# axis & axes
-background \<background\w*\>
-border \<border\w*\>
-boxplot \<boxplot\w*\>
-color \<color\w*\>
-container \<contain\w*\>
-data
-deque \<deque\w*\>
-example \<example\w*\>
-fill
-font \<font\w*\>
-greek
-grid \<grid\w*\>
-quartile \<quartile\w*\>
-histogram
-intersect <\w*\intersect\w*\>
-ioflags
-origin
-outlier
-label \<label\w*\>
-layout
-legend \<legend\w*\>
-marker \<marker\w*\>
-maximum \<max\w*\>
-minimum \<min\w*\>
-precision
-range \<\w*\range\w*\>
-scaling \<\w*\scal\w*\>
-series
-stroke
-SVG
-tick \<\w*\tick\w*\>
-title
-Unicode \<unicode\w*\>
-uncertainty \<uncert\w*\>
-value \<\w*\value\w*\>
-vector \<\w*\vector\w*\>

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_plot.qbk
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_plot.qbk (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_plot.qbk 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -2,16 +2,17 @@
     [quickbook 1.5]
     [id svg_plot]
     [authors [Voytko, Jake], [Bristow, Paul A.]]
- [copyright 2007 to 2010 Jake Voytko and Paul A. Bristow]
+ [copyright 2007 to 2011 Jake Voytko and Paul A. Bristow]
     [license
         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])
     ]
     [source-mode c++]
- [purpose Plot STL containers of data series onto graphs in SVG format.]
 ]
 
+[/purpose Plot STL containers of data series onto graphs in SVG format.]
+
 [/ Images]
 [/ $images is reference to a folder where images are held.]
 [def __detail__ [$images/note.png]]
@@ -154,6 +155,7 @@
 [*https://svn.boost.org/svn/boost/sandbox/SOC/2007/visualization/libs/svg_plot/doc/pdf/svg_plot.pdf PDF documentation]
 
 [*https://svn.boost.org/svn/boost/sandbox/SOC/2007/visualization Boost Sandbox source code]
+]
 
 [note Comments and suggestions (even bugs!) to Paul.A.Bristow (at) hetp (dot) u-net (dot) com
 or Jake Voytko at jakevoytko (at) gmail (dot) com]

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/example/container_minmax.cpp
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/example/container_minmax.cpp (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/example/container_minmax.cpp 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -62,7 +62,7 @@
 
   std::ostream& operator<< (std::ostream& os, const std::pair<double, double>& p)
   { // Output a pair of double values.
- int precision = os.precision(3); // Save & use rather than default precision(6)
+ std::streamsize precision = os.precision(3); // Save & use rather than default precision(6)
       os << p.first << ", " << p.second;
       // Outputs: 1.2, 3.4
       os.precision(precision); // Restore.

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/example/demo_1d_uncertainty.cpp
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/example/demo_1d_uncertainty.cpp (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/example/demo_1d_uncertainty.cpp 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -30,6 +30,11 @@
 #include <boost/svg_plot/svg_1d_plot.hpp>
   using namespace boost::svg;
 
+
+#include <boost/svg_plot/show_1d_settings.hpp>
+ void boost::svg::show_1d_plot_settings(svg_1d_plot&);
+
+
 #include <iostream>
   using std::cout;
   using std::endl;
@@ -74,12 +79,12 @@
  and also sets all the very many defaults for axes, width, colors, etc.
 */
   svg_1d_plot my_plot;
-/*`A few (member) functions that set are fairly self-explanatory:
+/*`A few (member) functions that are set should be fairly self-explanatory:
 
 * title provides a title at the top for the whole plot,
 * `legend_on(true)` will mean that titles of data series and markers will display in the legend box.
 * `x_range(-1, 11)` sets the axis limits from -1 to +11 (instead of the default -10 to +10).
-* `background_border_color(blue)` sets just one of the very many options.
+* `background_border_color(blue)` sets just one of the very many other options.
 */
   my_plot.autoscale_check_limits(false); // default is true.
   my_plot.autoscale_plusminus(3); // default is 3.
@@ -89,9 +94,9 @@
     .background_border_color(blue)
     .plot_border_color(yellow)
     .plot_border_width(1)
- //.x_ticks_on_window_or_axis(0) // now the default
+ //.x_ticks_on_window_or_axis(0) // now the default.
     .legend_on(false)
- .title("Times")
+ .title("A, B and C Times")
     .x_range(0, 10)
     .x_label("times (sec)")
     .x_values_on(true)
@@ -101,7 +106,7 @@
     .x_plusminus_on(true)
     .x_df_on(true)
     .x_df_color(green)
- .x_autoscale(B_times) // Note that this might not be right for A and C_times.
+ .x_autoscale(B_times) // Note that this might not be right scaling for A_times and/or C_times.
     ;
 /*`
 Then we add our data series,
@@ -110,7 +115,8 @@
 
 The A_times mark data points with a red border circle with a green fill,
 The B_times use a blue vertical line,
-while C_times use an ellipse whose width (x radius) is from the uncertainty.
+while C_times use an ellipse whose width (x radius) is from the uncertainty,
+1st standard deviation shows as ellipse in magenta, and 2nd as yellow.
 All the data points are also labelled with their value,
 and uncertainty and degrees of freedom if known.
 */
@@ -118,11 +124,14 @@
   my_plot.plot(A_times, "A").shape(round).size(10).stroke_color(red).fill_color(green);
   my_plot.plot(B_times, "B").shape(vertical_line).stroke_color(blue);
   my_plot.plot(C_times, "C").shape(unc_ellipse).fill_color(lightyellow).stroke_color(magenta);
-
-/*`Finally, we can write the SVG to a file of our choice.
+/*`
+Finally, we can write the SVG to a file of our choice.
 */
- my_plot.write("./demo_1d_uncertainty.svg");
+ //my_plot.write("./demo_1d_uncertainty.svg");
+ my_plot.write("./demo_1d_uncertainty_legend.svg");
+
 //] [/demo_1d_uncertainty_2]
+ // show_1d_plot_settings(my_plot);
 
   return 0;
 } // int main()
@@ -153,4 +162,4 @@
   map<pair<unc, unc> > rheumatoid;
   control.push_back(unc(3.456, 0.44F, 6));
 
- */
+*/

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/example/demo_2d_weather.cpp
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/example/demo_2d_weather.cpp (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/example/demo_2d_weather.cpp 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -55,7 +55,7 @@
 #include <map>
   using std::map; // 2D data container.
 #include <fstream> // for file streaming, ifstream & ofstream.
- using std::ifstream;
+ using std::ifstream;
 #include <string>
   using std::string;
   using std::getline;

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/example/demo_boxplot.cpp
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/example/demo_boxplot.cpp (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/example/demo_boxplot.cpp 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -126,8 +126,7 @@
  cout << "my_boxplot.plot_border_color " << my_boxplot.plot_border_color() << endl;
 */
 
-/*`Finally write the SVG plot to a file.
-*/
+//`Finally write the SVG plot to a file.
   my_boxplot.write("demo_boxplot.svg");
 /*`You can view the plot at demo_boxplot.svg."
 */

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/example/demo_boxplot_full.cpp
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/example/demo_boxplot_full.cpp (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/example/demo_boxplot_full.cpp 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -117,7 +117,7 @@
     .y_minor_tick_length(2)
     .y_major_interval(20);
 
-/*`Many attributes of boxplots can be changed from the 'builtin' defaults, for example: */
+/*`Many attributes of boxplots can be changed from the 'built-in' defaults, for example: */
 
    my_boxplot.whisker_length(25.).box_width(10)
      .box_fill(lime)

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/test/1d_color_consistency.cpp
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/test/1d_color_consistency.cpp (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/test/1d_color_consistency.cpp 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -25,7 +25,7 @@
 
 #define BOOST_TEST_MAIN
 // Must come BEFORE this include.
-#include <boost/test/included/unit_test.hpp>
+#include <boost/test/unit_test.hpp>
 #include <boost/test/floating_point_comparison.hpp>
 
 #include <boost/svg_plot/svg_1d_plot.hpp>

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/test/2d_color_consistency.cpp
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/test/2d_color_consistency.cpp (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/test/2d_color_consistency.cpp 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -21,8 +21,9 @@
 #endif
 
 #define BOOST_TEST_MAIN
+
 // Must come BEFORE this include.
-#include <boost/test/included/unit_test.hpp>
+#include <boost/test/unit_test.hpp>
 #include <boost/test/floating_point_comparison.hpp>
 
 #include <boost/svg_plot/svg_2d_plot.hpp>

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/test/test_svg.cpp
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/test/test_svg.cpp (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/test/test_svg.cpp 2011-11-08 09:11:02 EST (Tue, 08 Nov 2011)
@@ -24,7 +24,7 @@
 
 #define BOOST_TEST_MAIN
 // NB define BOOST_TEST_MAIN must come BEFORE this include.
-#include <boost/test/included/unit_test.hpp>
+#include <boost/test/unit_test.hpp>
 
 #include <boost/svg_plot/svg.hpp>
   using boost::svg::svg;


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