Esempio n. 1
0
static void WriteDataWeight (unif01_Gen * gen, char *TestName,
   long N, long n, int r, long k, double Alpha, double Beta)
{
   swrite_Head (gen, TestName, N, n, r);
   printf (",  k = %1ld,  Alpha = %6.4g,  Beta = %6.4g\n\n",
           k, Alpha, Beta);
}
Esempio n. 2
0
static void WriteDataMaxOft (unif01_Gen * gen, char *TestName,
   long N, long n, int r, int d, int t, double NbExp)
{
   swrite_Head (gen, TestName, N, n, r);
   printf (",   d = %4d,   t = %2d\n\n", d, t);
   printf ("      Number of categories = %d\n", d);
   printf ("      Expected number per category  = %.2f\n\n", NbExp);
}
Esempio n. 3
0
void svaria_SampleProd (unif01_Gen * gen, sres_Basic * res,
   long N, long n, int r, int t)
{
   long i;
   int j;
   long Seq;
   double *P;
   double temp;
   double Par[1];
   lebool localRes = FALSE;
   chrono_Chrono *Timer;
   char *TestName = "svaria_SampleProd test";

   Timer = chrono_Create ();
   if (swrite_Basic) {
      swrite_Head (gen, TestName, N, n, r);
      printf (",   t = %d\n\n", t);
   }

   if (res == NULL) {
      localRes = TRUE;
      res = sres_CreateBasic ();
   }
   sres_InitBasic (res, N, "svaria_SampleProd");

   P = util_Calloc ((size_t) n + 1, sizeof (double));
   statcoll_SetDesc (res->sVal1, "SampleProd sVal1:   Uniform [0, 1]");
   Par[0] = t;

   for (Seq = 1; Seq <= N; Seq++) {
      for (i = 1; i <= n; i++) {
         temp = unif01_StripD (gen, r);
         for (j = 2; j <= t; j++)
            temp *= unif01_StripD (gen, r);
         P[i] = temp;
      }
      gofw_ActiveTests1 (P, n, FDistProd, Par, res->sVal2, res->pVal2);
      statcoll_AddObs (res->sVal1, res->pVal2[gofw_AD]);
   }

   gofw_ActiveTests2 (res->sVal1->V, res->pVal1->V, N, wdist_Unif,
      (double *) NULL, res->sVal2, res->pVal2);
   res->pVal1->NObs = N;

   if (swrite_Collectors)
      statcoll_Write (res->sVal1, 5, 14, 4, 3);

   if (swrite_Basic) {
      gofw_WriteActiveTests2 (N, res->sVal2, res->pVal2,
         "Anderson-Darling statistic            :");
      swrite_Final (gen, Timer);
   }
   util_Free (P);
   if (localRes)
      sres_DeleteBasic (res);
   chrono_Delete (Timer);
}
Esempio n. 4
0
static void WriteDataArgMax (unif01_Gen * gen, char *TestName,
   long N, long n, int r, long k, long m)
{
   double x;

   swrite_Head (gen, TestName, N, n, r);
   printf (",   k = %1ld,   m = %1ld\n\n", k, m);
   printf ("   Number of balls = n = %1ld\n", n);
   printf ("   Number of urns  = k = %1ld\n", k);

   x = n;
   x = x * x / (2 * k);
   printf ("   Number (approx) of collisions = n^2 / 2k = %g\n\n\n", x);
}
Esempio n. 5
0
static void WriteDataFour (
   unif01_Gen *gen,      /* generator */
   char *Test,           /* Test name */
   long N,               /* Number of replications */
   int k,                /* Sample size n = 2^k */
   int r,                /* r first bits of each random number dropped */
   int s                 /* s bits of each random number used */
)
{
   long n;
   n = num_TwoExp[k];
   swrite_Head (gen, Test, N, n, r);
   printf (",   s = %4d,   k = %4d\n\n", s, k);
}
Esempio n. 6
0
static void WriteDataDisc (unif01_Gen * gen, char *TestName,
   long N, long n, int r, int s, int L, double Mu, double Sigma)
{
   swrite_Head (gen, TestName, N, n, r);
   printf (",   s = %1d,   L = %1d\n", s, L);

   if (Sigma > 0.0) {
      printf ("   Mu    = ");
      num_WriteD (Mu, 15, 7, 7);
      printf ("\n   Sigma = ");
      num_WriteD (Sigma, 15, 7, 7);
      printf ("\n");
   } else {
      printf ("   Mu and Sigma are unknown.\n");
   }
   printf ("\n\n");
}
Esempio n. 7
0
static void WriteDataRun (unif01_Gen * gen, char *TestName,
   long N, long n, int r, lebool Up)
{
   swrite_Head (gen, TestName, N, n, r);
   printf (",   Up = %5s\n\n", Up ? "TRUE" : "FALSE");
}
Esempio n. 8
0
static void WriteDataCoupCol (unif01_Gen *gen, char *TestName,
   long N, long n, int r, int d)
{
   swrite_Head (gen, TestName, N, n, r);
   printf (",   d = %4d\n\n", d);
}
Esempio n. 9
0
static void WriteDataPoker (unif01_Gen * gen, char *TestName,
   long N, long n, int r, int d, int k)
{
   swrite_Head (gen, TestName, N, n, r);
   printf (",   d = %4d,   k = %4d\n\n", d, k);
}
Esempio n. 10
0
static void WriteDataGap (unif01_Gen *gen, char *TestName,
   long N, long n, int r, double Alpha, double Beta)
{
   swrite_Head (gen, TestName, N, n, r);
   printf (",   Alpha = %8.6g,   Beta  = %8.6g\n\n", Alpha, Beta);
}
Esempio n. 11
0
static void WriteDataSumColl (unif01_Gen * gen, char *TestName,
   long N, long n, int r, double g)
{
   swrite_Head (gen, TestName, N, n, r);
   printf (",   g = %g\n\n", g);
}
Esempio n. 12
0
void svaria_SumLogs (unif01_Gen * gen, sres_Chi2 * res,
   long N, long n, int r)
{
   const double Eps = DBL_EPSILON / 2.0;      /* To avoid log(0) */
   const double Epsilon = 1.E-100;            /* To avoid underflow */
   long i;
   long Seq;
   double u;
   double Prod;
   double Sum;
   double V[1];
   lebool localRes = FALSE;
   chrono_Chrono *Timer;
   char *TestName = "svaria_SumLogs test";
   char chaine[LEN1 + 1] = "";
   char str[LEN2 + 1];

   Timer = chrono_Create ();
   if (swrite_Basic) {
      swrite_Head (gen, TestName, N, n, r);
      printf ("\n\n");
   }
   util_Assert (n < LONG_MAX/2, "2n > LONG_MAX");
   if (res == NULL) {
      localRes = TRUE;
      res = sres_CreateChi2 ();
   }
   sres_InitChi2 (res, N, -1, "svaria_SumLogs");

   strncpy (chaine, "SumLogs sVal1:   chi2 with ", (size_t) LEN1);
   sprintf (str, "%ld", 2 * n);
   strncat (chaine, str, (size_t) LEN2);
   strncat (chaine, " degrees of freedom", (size_t) LEN1);
   statcoll_SetDesc (res->sVal1, chaine);
   res->degFree = 2 * n;
   if (res->degFree < 1) {
      util_Warning (TRUE, "Chi-square with 0 degree of freedom.");
      if (localRes)
         sres_DeleteChi2 (res);
      return;
   }

   for (Seq = 1; Seq <= N; Seq++) {
      Prod = 1.0;
      Sum = 0.0;
      for (i = 1; i <= n; i++) {
         u = unif01_StripD (gen, r);
         if (u < Eps)
            u = Eps;
         Prod *= u;
         if (Prod < Epsilon) {
            Sum += log (Prod);
            Prod = 1.0;
         }
      }
      statcoll_AddObs (res->sVal1, -2.0 * (Sum + log (Prod)));

   }
   V[0] = 2 * n;
   gofw_ActiveTests2 (res->sVal1->V, res->pVal1->V, N, wdist_ChiSquare, V,
                      res->sVal2, res->pVal2);
   res->pVal1->NObs = N;
   sres_GetChi2SumStat (res);

   if (swrite_Collectors)
      statcoll_Write (res->sVal1, 5, 14, 4, 3);

   if (swrite_Basic) {
      swrite_AddStrChi (str, LEN2, res->degFree);
      gofw_WriteActiveTests2 (N, res->sVal2, res->pVal2, str);
      swrite_Chi2SumTest (N, res);
      swrite_Final (gen, Timer);
   }
   if (localRes)
      sres_DeleteChi2 (res);
   chrono_Delete (Timer);
}
Esempio n. 13
0
void svaria_SampleCorr (unif01_Gen * gen, sres_Basic * res,
   long N, long n, int r, int k)
{
   long i;
   long Seq;
   double U;
   double Sum;
   double *Pre;                   /* Previous k generated numbers */
   int pos;                       /* Circular index to element at lag k */
   lebool localRes = FALSE;
   chrono_Chrono *Timer;
   char *TestName = "svaria_SampleCorr test";

   Timer = chrono_Create ();
   if (swrite_Basic) {
      swrite_Head (gen, TestName, N, n, r);
      printf (",   k = %d\n\n", k);
   }
   util_Assert (n > 2, "svaria_SampleCorr:   n <= 2");

   if (res == NULL) {
      localRes = TRUE;
      res = sres_CreateBasic ();
   }
   sres_InitBasic (res, N, "svaria_SampleCorr");
   statcoll_SetDesc (res->sVal1,
      "SampleCorr sVal1:   asymptotic standard normal");

   Pre = util_Calloc ((size_t) (k + 1), sizeof (double));

   for (Seq = 1; Seq <= N; Seq++) {
      /* Generate first k numbers U and keep them in Pre */
      for (i = 0; i < k; i++)
         Pre[i] = unif01_StripD (gen, r);

      Sum = 0.0;
      pos = 0;
      /* Element Pre[pos] is at lag k from U */
      for (i = k; i < n; i++) {
         U = unif01_StripD (gen, r);
         Sum += Pre[pos] * U - 0.25;
         Pre[pos] = U;
         pos++;
         pos %= k;
      }
      /* Save standardized correlation */
      statcoll_AddObs (res->sVal1, Sum * sqrt (12.0 / (n - k)));
   }

   gofw_ActiveTests2 (res->sVal1->V, res->pVal1->V, N, wdist_Normal,
       (double *) NULL, res->sVal2, res->pVal2);
   res->pVal1->NObs = N;
   sres_GetNormalSumStat (res);

   if (swrite_Collectors)
      statcoll_Write (res->sVal1, 5, 14, 4, 3);

   if (swrite_Basic) {
      gofw_WriteActiveTests2 (N, res->sVal2, res->pVal2,
         "Normal statistic                      :");
      swrite_NormalSumTest (N, res);
      swrite_Final (gen, Timer);
   }
   util_Free (Pre);
   if (localRes)
      sres_DeleteBasic (res);
   chrono_Delete (Timer);
}
Esempio n. 14
0
void svaria_SampleMean (unif01_Gen * gen, sres_Basic * res,
   long N, long n, int r)
{
   long i;
   long Seq;
   double Sum;
   double Coef[SAM_LIM + 1];
   lebool localRes = FALSE;
   chrono_Chrono *Timer;
   char *TestName = "svaria_SampleMean test";

   Timer = chrono_Create ();
   if (swrite_Basic) {
      swrite_Head (gen, TestName, N, n, r);
      printf ("\n\n");
   }
   util_Assert (n > 1, "svaria_SampleMean:   n < 2");

   if (res == NULL) {
      localRes = TRUE;
      res = sres_CreateBasic ();
   }
   sres_InitBasic (res, N, "svaria_SampleMean");
   if (n < SAM_LIM)
      InitFDistMeans (n, Coef);

   if (n < SAM_LIM)
      statcoll_SetDesc (res->sVal1, "SampleMean sVal1:   n*<U>");
   else
      statcoll_SetDesc (res->sVal1, "SampleMean sVal1:   standard normal");

   for (Seq = 1; Seq <= N; Seq++) {
      Sum = 0.0;
      for (i = 1; i <= n; i++)
         Sum += unif01_StripD (gen, r);

      if (n < SAM_LIM)
         statcoll_AddObs (res->sVal1, Sum);
      else
         statcoll_AddObs (res->sVal1, sqrt (12.0 / n) * (Sum - 0.5 * n));
   }

   if (n < SAM_LIM) {
      gofw_ActiveTests2 (res->sVal1->V, res->pVal1->V, N, FDistMeans, Coef,
                         res->sVal2, res->pVal2);
   } else {
      /* Normal approximation */
      gofw_ActiveTests2 (res->sVal1->V, res->pVal1->V, N, wdist_Normal,
         (double *) NULL, res->sVal2, res->pVal2);
   }
   res->pVal1->NObs = N;

   if (swrite_Collectors)
      statcoll_Write (res->sVal1, 5, 14, 4, 3);

   if (swrite_Basic) {
      gofw_WriteActiveTests2 (N, res->sVal2, res->pVal2,
         "Statistic value                       :");
      swrite_Final (gen, Timer);
   }
   if (localRes)
      sres_DeleteBasic (res);
   chrono_Delete (Timer);
}
Esempio n. 15
0
static void WriteDataDM (unif01_Gen * gen, char *TestName,
   long N, long n, int r, long m)
{
   swrite_Head (gen, TestName, N, n, r);
   printf (",   m = %1ld\n\n", m);
}