F(PDF_EXP, "PDF.EXP", m_md_e, "a>=0 b>0") \
F(RV_EXP, "RV.EXP", d_d, "a>0") \
F(PDF_XPOWER, "PDF.XPOWER", m_mdd_e, "b>0 c>=0") \
- F(RV_XPOWER, "RV.XPOWER", d_dd, "a>0 c>=0")
+ F(RV_XPOWER, "RV.XPOWER", d_dd, "a>0 c>=0") \
+ F(CDF_F, "CDF.F", m_mdd_e, "a>=0 b>0 c>0") \
+ F(IDF_F, "IDF.F", m_mdd_e, "a[0,1) b>0 c>0") \
+ F(PDF_F, "PDF.F", m_mdd_e, "a>=0 b>0 c>0") \
+ F(RV_F, "RV.F", d_dd, "a>0 b>0") \
+ F(SIG_F, "SIG.F", m_mdd_e, "a>=0 b>0 c>0")
struct matrix_function_properties
{
return gsl_ran_exppow (get_rng (), a, b);
}
+static double
+matrix_eval_CDF_F (double x, double df1, double df2)
+{
+ return gsl_cdf_fdist_P (x, df1, df2);
+}
+
+static double
+matrix_eval_IDF_F (double P, double df1, double df2)
+{
+ return idf_fdist (P, df1, df2);
+}
+
+static double
+matrix_eval_RV_F (double df1, double df2)
+{
+ return gsl_ran_fdist (get_rng (), df1, df2);
+}
+
+static double
+matrix_eval_PDF_F (double x, double df1, double df2)
+{
+ return gsl_ran_fdist_pdf (x, df1, df2);
+}
+
+static double
+matrix_eval_SIG_F (double x, double df1, double df2)
+{
+ return gsl_cdf_fdist_Q (x, df1, df2);
+}
+
struct matrix_function
{
const char *name;