
I've created a library for data series calculation and analysis. I've received permission to open-source the library and I would like to submit it for review to the boost if there is sufficient interest. Simple Example 1: Calculate the 10-day simple-moving-average of the 15 exponential-moving-average. (Demonstrates: boost::algorithm::compose). std::vector<double> v1; v1 += 3,4,4,6,7,8,4,7,8,3,2,3,2,5; typedef boost::algorithm::compose<double, boost::function<double (double)>, boost::function<double (double)> > COMPOSE; std::vector<double> v; std::transform(v1.begin(), v1.end(), std::back_inserter(v), COMPOSE(moving_average(15), exponential_moving_average(10))); Simple Example 2 (contrived): * Add 100 to the results from above. * then divide by 100, * then subtract by 100, * then multiply by 100. std::vector<double> v1; v1 += 3,4,4,6,7,8,4,7,8,3,2,3,2,5; typedef boost::algorithm::compose<double, boost::function<double (double)>, boost::function<double (double), boost::function<double (double), boost::function<double (double)> > COMPOSE2; std::vector<double> v2; std::transform(v.begin(), v.end(), std::back_inserter(v2), COMPOSE2(_1 += 100, _1 /= 100, _1 -= 100, _1 *= 100)); Here is a paritial list of functors currently provided by the library. Many additional functors have been written but are fairly specific to our problem domain. moving_average triangle_moving_average rate_of_change momentum vertical_horizontal_filter volatility weighted_moving_average exponential_moving_average variable_moving_average accumulate_n relative_strengh_index cumulative_sum max_numeric_limit variance standard_deviation correlation z_score Please tell me if there is any interest in this library. I will boostify it and submit it for review if there is sufficient interest. Regards, Tom Brinkman __________________________________ Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger. http://messenger.yahoo.com/