⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 distributions.cpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 CPP
📖 第 1 页 / 共 2 页
字号:
      for(unsigned j = 0; j < b_size; ++j)\      {\         for(unsigned k = 0; k < c_size; ++k)\         {\            for(unsigned l = 0; l < d_size; ++l)\            {\               result += p##name (random_variable_table[l], param1_table[i], param2_table[j], param3_table[k], 1, 0);\            }\         }\      }\   }\   \   consume_result(result);\   set_call_count(a_size * b_size * c_size * d_size);\   }\   BOOST_MATH_PERFORMANCE_TEST(BOOST_JOIN(dist_pdf_, name), "dist-" #name "-R-pdf")\   {\   double result = 0;\   unsigned a_size = sizeof(param1_table)/sizeof(param1_table[0]);\   unsigned b_size = sizeof(param2_table)/sizeof(param2_table[0]);\   unsigned c_size = sizeof(param3_table)/sizeof(param3_table[0]);\   unsigned d_size = sizeof(random_variable_table)/sizeof(random_variable_table[0]);\   \   for(unsigned i = 0; i < a_size; ++i)\   {\      for(unsigned j = 0; j < b_size; ++j)\      {\         for(unsigned k = 0; k < c_size; ++k)\         {\            for(unsigned l = 0; l < d_size; ++l)\            {\               result += d##name (random_variable_table[l], param1_table[i], param2_table[j], param3_table[k], 0);\            }\         }\      }\   }\   \   consume_result(result);\   set_call_count(a_size * b_size * c_size * d_size);\   }\   BOOST_MATH_PERFORMANCE_TEST(BOOST_JOIN(dist_quant, name), "dist-" #name "-R-quantile")\   {\      double result = 0;\      unsigned a_size = sizeof(param1_table)/sizeof(param1_table[0]);\      unsigned b_size = sizeof(param2_table)/sizeof(param2_table[0]);\      unsigned c_size = sizeof(param3_table)/sizeof(param3_table[0]);\      unsigned d_size = sizeof(probability_table)/sizeof(probability_table[0]);\      \      for(unsigned i = 0; i < a_size; ++i)\      {\         for(unsigned j = 0; j < b_size; ++j)\         {\            for(unsigned k = 0; k < c_size; ++k)\            {\               for(unsigned l = 0; l < d_size; ++l)\               {\                  result += q##name (probability_table[l], param1_table[i], param2_table[j], param3_table[k], 1, 0);\               }\            }\         }\      }\      \      consume_result(result);\      set_call_count(a_size * b_size * c_size * d_size);\   }#define BOOST_MATH_R_DISTRIBUTION2_TEST(name, param1_table, param2_table, random_variable_table, probability_table) \   BOOST_MATH_PERFORMANCE_TEST(BOOST_JOIN(dist, name), "dist-" #name "-R-cdf")\   {\   double result = 0;\   unsigned a_size = sizeof(param1_table)/sizeof(param1_table[0]);\   unsigned b_size = sizeof(param2_table)/sizeof(param2_table[0]);\   unsigned c_size = sizeof(random_variable_table)/sizeof(random_variable_table[0]);\   \   for(unsigned i = 0; i < a_size; ++i)\   {\      for(unsigned j = 0; j < b_size; ++j)\      {\         for(unsigned k = 0; k < c_size; ++k)\         {\            result += p##name (random_variable_table[k], param1_table[i], param2_table[j], 1, 0);\         }\      }\   }\   \   consume_result(result);\   set_call_count(a_size * b_size * c_size);\   }\   BOOST_MATH_PERFORMANCE_TEST(BOOST_JOIN(dist_pdf_, name), "dist-" #name "-R-pdf")\   {\   double result = 0;\   unsigned a_size = sizeof(param1_table)/sizeof(param1_table[0]);\   unsigned b_size = sizeof(param2_table)/sizeof(param2_table[0]);\   unsigned c_size = sizeof(random_variable_table)/sizeof(random_variable_table[0]);\   \   for(unsigned i = 0; i < a_size; ++i)\   {\      for(unsigned j = 0; j < b_size; ++j)\      {\         for(unsigned k = 0; k < c_size; ++k)\         {\            result += d##name (random_variable_table[k], param1_table[i], param2_table[j], 0);\         }\      }\   }\   \   consume_result(result);\   set_call_count(a_size * b_size * c_size);\   }\   BOOST_MATH_PERFORMANCE_TEST(BOOST_JOIN(dist_quant, name), "dist-" #name "-R-quantile")\   {\      double result = 0;\      unsigned a_size = sizeof(param1_table)/sizeof(param1_table[0]);\      unsigned b_size = sizeof(param2_table)/sizeof(param2_table[0]);\      unsigned c_size = sizeof(probability_table)/sizeof(probability_table[0]);\      \      for(unsigned i = 0; i < a_size; ++i)\      {\         for(unsigned j = 0; j < b_size; ++j)\         {\            for(unsigned k = 0; k < c_size; ++k)\            {\               result += q##name (probability_table[k], param1_table[i], param2_table[j], 1, 0);\            }\         }\      }\      \      consume_result(result);\      set_call_count(a_size * b_size * c_size);\   }#define BOOST_MATH_R_DISTRIBUTION1_TEST(name, param1_table, random_variable_table, probability_table) \   BOOST_MATH_PERFORMANCE_TEST(BOOST_JOIN(dist, name), "dist-" #name "-R-cdf")\   {\   double result = 0;\   unsigned a_size = sizeof(param1_table)/sizeof(param1_table[0]);\   unsigned c_size = sizeof(random_variable_table)/sizeof(random_variable_table[0]);\   \   for(unsigned i = 0; i < a_size; ++i)\   {\         for(unsigned k = 0; k < c_size; ++k)\         {\            result += p##name (random_variable_table[k], param1_table[i], 1, 0);\         }\   }\   \   consume_result(result);\   set_call_count(a_size * c_size);\   }\   BOOST_MATH_PERFORMANCE_TEST(BOOST_JOIN(dist_pdf_, name), "dist-" #name "-R-pdf")\   {\   double result = 0;\   unsigned a_size = sizeof(param1_table)/sizeof(param1_table[0]);\   unsigned c_size = sizeof(random_variable_table)/sizeof(random_variable_table[0]);\   \   for(unsigned i = 0; i < a_size; ++i)\   {\         for(unsigned k = 0; k < c_size; ++k)\         {\            result += d##name (random_variable_table[k], param1_table[i], 0);\         }\   }\   \   consume_result(result);\   set_call_count(a_size * c_size);\   }\   BOOST_MATH_PERFORMANCE_TEST(BOOST_JOIN(dist_quant, name), "dist-" #name "-R-quantile")\   {\      double result = 0;\      unsigned a_size = sizeof(param1_table)/sizeof(param1_table[0]);\      unsigned c_size = sizeof(probability_table)/sizeof(probability_table[0]);\      \      for(unsigned i = 0; i < a_size; ++i)\      {\            for(unsigned k = 0; k < c_size; ++k)\            {\               result += q##name (probability_table[k], param1_table[i], 1, 0);\            }\      }\      \      consume_result(result);\      set_call_count(a_size * c_size);\   }BOOST_MATH_R_DISTRIBUTION2_TEST(beta, probabilities, probabilities, probabilities, probabilities)BOOST_MATH_R_DISTRIBUTION2_TEST(binom, int_values, probabilities, int_values, probabilities)BOOST_MATH_R_DISTRIBUTION2_TEST(cauchy, int_values, real_values, int_values, probabilities)BOOST_MATH_R_DISTRIBUTION1_TEST(chisq, int_values, real_values, probabilities)BOOST_MATH_R_DISTRIBUTION1_TEST(exp, real_values, real_values, probabilities)BOOST_MATH_R_DISTRIBUTION2_TEST(f, int_values, int_values, real_values, probabilities)BOOST_MATH_R_DISTRIBUTION2_TEST(gamma, real_values, real_values, real_values, probabilities)BOOST_MATH_R_DISTRIBUTION2_TEST(lnorm, real_values, real_values, real_values, probabilities)BOOST_MATH_R_DISTRIBUTION2_TEST(nbinom, int_values, probabilities, int_values, probabilities)BOOST_MATH_R_DISTRIBUTION2_TEST(norm, real_values, real_values, real_values, probabilities)BOOST_MATH_R_DISTRIBUTION1_TEST(pois, real_values, int_values, probabilities)BOOST_MATH_R_DISTRIBUTION1_TEST(t, int_values, real_values, probabilities)BOOST_MATH_R_DISTRIBUTION2_TEST(weibull, real_values, real_values, real_values, probabilities)BOOST_MATH_R_DISTRIBUTION2_TEST(nchisq, int_values, int_values, real_values, probabilities)BOOST_MATH_R_DISTRIBUTION3_TEST(nf, int_values, int_values, real_values, real_values, probabilities)BOOST_MATH_R_DISTRIBUTION3_TEST(nbeta, int_values, int_values, real_values, real_values, probabilities)BOOST_MATH_R_DISTRIBUTION2_TEST(nt, int_values, small_int_values, real_values, probabilities)#endif#ifdef TEST_CEPHESextern "C"{double bdtr(int k, int n, double p);double bdtri(int k, int n, double p);double chdtr(double df, double x);double chdtri(double df, double p);double fdtr(int k, int n, double p);double fdtri(int k, int n, double p);double nbdtr(int k, int n, double p);double nbdtri(int k, int n, double p);}#define BOOST_MATH_CEPHES_DISTRIBUTION2_TEST(name, param1_table, param2_table, random_variable_table, probability_table) \   BOOST_MATH_PERFORMANCE_TEST(BOOST_JOIN(dist, name), "dist-" #name "-cephes-cdf")\   {\   double result = 0;\   unsigned a_size = sizeof(param1_table)/sizeof(param1_table[0]);\   unsigned b_size = sizeof(param2_table)/sizeof(param2_table[0]);\   unsigned c_size = sizeof(random_variable_table)/sizeof(random_variable_table[0]);\   \   for(unsigned i = 0; i < a_size; ++i)\   {\      for(unsigned j = 0; j < b_size; ++j)\      {\         for(unsigned k = 0; k < c_size; ++k)\         {\            result += name##dtr (param1_table[i], param2_table[j], random_variable_table[k]);\         }\      }\   }\   \   consume_result(result);\   set_call_count(a_size * b_size * c_size);\   }\   BOOST_MATH_PERFORMANCE_TEST(BOOST_JOIN(dist_quant, name), "dist-" #name "-cephes-quantile")\   {\      double result = 0;\      unsigned a_size = sizeof(param1_table)/sizeof(param1_table[0]);\      unsigned b_size = sizeof(param2_table)/sizeof(param2_table[0]);\      unsigned c_size = sizeof(probability_table)/sizeof(probability_table[0]);\      \      for(unsigned i = 0; i < a_size; ++i)\      {\         for(unsigned j = 0; j < b_size; ++j)\         {\            for(unsigned k = 0; k < c_size; ++k)\            {\               result += name##dtri (param1_table[i], param2_table[j], probability_table[k]);\            }\         }\      }\      \      consume_result(result);\      set_call_count(a_size * b_size * c_size);\   }#define BOOST_MATH_CEPHES_DISTRIBUTION1_TEST(name, param1_table, random_variable_table, probability_table) \   BOOST_MATH_PERFORMANCE_TEST(BOOST_JOIN(dist, name), "dist-" #name "-cephes-cdf")\   {\   double result = 0;\   unsigned a_size = sizeof(param1_table)/sizeof(param1_table[0]);\   unsigned c_size = sizeof(random_variable_table)/sizeof(random_variable_table[0]);\   \   for(unsigned i = 0; i < a_size; ++i)\   {\         for(unsigned k = 0; k < c_size; ++k)\         {\            result += name##dtr (param1_table[i], random_variable_table[k]);\         }\   }\   \   consume_result(result);\   set_call_count(a_size * c_size);\   }\   BOOST_MATH_PERFORMANCE_TEST(BOOST_JOIN(dist_quant, name), "dist-" #name "-cephes-quantile")\   {\      double result = 0;\      unsigned a_size = sizeof(param1_table)/sizeof(param1_table[0]);\      unsigned c_size = sizeof(probability_table)/sizeof(probability_table[0]);\      \      for(unsigned i = 0; i < a_size; ++i)\      {\            for(unsigned k = 0; k < c_size; ++k)\            {\               result += name##dtri (param1_table[i], probability_table[k]);\            }\      }\      \      consume_result(result);\      set_call_count(a_size * c_size);\   }// Cephes inverse doesn't actually calculate the quantile!!!// BOOST_MATH_CEPHES_DISTRIBUTION2_TEST(b, int_values, int_values, probabilities, probabilities)BOOST_MATH_CEPHES_DISTRIBUTION1_TEST(ch, int_values, real_values, probabilities)BOOST_MATH_CEPHES_DISTRIBUTION2_TEST(f, int_values, int_values, real_values, probabilities)// Cephes inverse doesn't calculate the quantile!!!// BOOST_MATH_CEPHES_DISTRIBUTION2_TEST(nb, int_values, int_values, probabilities, probabilities)#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -