A few more distributions.
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 20 Nov 2021 22:47:01 +0000 (14:47 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 20 Nov 2021 22:47:01 +0000 (14:47 -0800)
src/language/stats/matrix.c

index 18fcfdd8197de1a373d263fe2aa86a35c3285867..b709d65e01e0066639d09cc227494c026d31fbd1 100644 (file)
@@ -257,7 +257,12 @@ matrix_var_set (struct matrix_var *var, gsl_matrix *value)
     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
   {
@@ -1872,6 +1877,36 @@ matrix_eval_RV_XPOWER (double a, double b)
   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;