Statistics
| Revision:

## root / tmp / org.txm.statsengine.r.core.win32 / res / win32 / library / BH / include / boost / accumulators / statistics / weighted_sum.hpp @ 2486

 1 ///////////////////////////////////////////////////////////////////////////////  // weighted_sum.hpp  //  // Copyright 2006 Eric Niebler, Olivier Gygi. Distributed under the Boost  // Software License, Version 1.0. (See accompanying file  // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)  #ifndef BOOST_ACCUMULATORS_STATISTICS_WEIGHTED_SUM_HPP_EAN_28_10_2005  #define BOOST_ACCUMULATORS_STATISTICS_WEIGHTED_SUM_HPP_EAN_28_10_2005  #include  #include  #include  #include  #include  #include  #include  #include  #include  namespace boost { namespace accumulators  {  namespace impl  {   ///////////////////////////////////////////////////////////////////////////////   // weighted_sum_impl   template   struct weighted_sum_impl   : accumulator_base   {   typedef typename numeric::functional::multiplies::result_type weighted_sample;   // for boost::result_of   typedef weighted_sample result_type;   template   weighted_sum_impl(Args const &args)   : weighted_sum_(   args[parameter::keyword::get() | Sample()]   * numeric::one::value   )   {   }   template   void operator ()(Args const &args)   {   // what about overflow?   this->weighted_sum_ += args[parameter::keyword::get()] * args[weight];   }   result_type result(dont_care) const   {   return this->weighted_sum_;   }   private:   weighted_sample weighted_sum_;   };  } // namespace impl  ///////////////////////////////////////////////////////////////////////////////  // tag::weighted_sum  //  namespace tag  {   struct weighted_sum   : depends_on<>   {   /// INTERNAL ONLY   ///   typedef accumulators::impl::weighted_sum_impl impl;   };   template   struct weighted_sum_of_variates   : depends_on<>   {   /// INTERNAL ONLY   ///   typedef accumulators::impl::weighted_sum_impl impl;   };   struct abstract_weighted_sum_of_variates   : depends_on<>   {   };  }  ///////////////////////////////////////////////////////////////////////////////  // extract::weighted_sum  //  namespace extract  {   extractor const weighted_sum = {};   extractor const weighted_sum_of_variates = {};   BOOST_ACCUMULATORS_IGNORE_GLOBAL(weighted_sum)   BOOST_ACCUMULATORS_IGNORE_GLOBAL(weighted_sum_of_variates)  }  using extract::weighted_sum;  using extract::weighted_sum_of_variates;  template  struct feature_of >   : feature_of  {  };  }} // namespace boost::accumulators  #endif