![]() |
Home | Libraries | People | FAQ | More |
在這個庫中的所有的統計分佈類型都是具有兩個參數的類模板,這兩個參數都有有意義的缺省值,例如:
namespace boost{ namespace math{ template <class RealType = double, class Policy = policies::policy<> > class fisher_f_distribution; typedef fisher_f_distribution<> fisher_f; }}
這個策略被所有的接收一個策略作為參數的訪問函數使用(accessor function),並且在所有的調用這些策略的函數之前。所以,如果你使用這些分佈類型的short-typedef,那麼你將使用double精度的計算以及所有的缺省策略。
然而,假設我們想要以float精度計算二項分佈的分位點,沒有進行內部的從float到double的類型提升,並且將結果捨入到最接近的整數,那麼這裡是相應的實現方法:
#include <boost/math/distributions/binomial.hpp> // // 定義一個策略類型 // 滿足我們需要的特性: // using namespace boost::math::policies; typedef policy< promote_float<false>, discrete_quantile<integer_round_nearest> > mypolicy; // // 然後定義一個使用這個策略的分佈: // typedef boost::math::binomial_distribution<float, mypolicy> mybinom; // // 然後使用這個分佈來計算分位點: // int main() { std::cout << "quantile is: " << quantile(mybinom(200, 0.25), 0.05) << std::endl; }
輸出結果為:
quantile is: 40