\defmodule {fvaria}

This module applies tests from the module {\tt svaria}
to a family of generators of different sizes.

\bigskip
\hrule
\code\hide
/* fvaria.h  for ANSI C */
#ifndef FVARIA_H
#define FVARIA_H
\endhide
#include "ffam.h"
#include "fres.h"
#include "fcho.h"


extern long fvaria_MaxN;
extern long fvaria_Maxn;
extern long fvaria_Maxk;
extern long fvaria_MaxK;
\endcode
\tab
  Upper bounds on $N$, $n$, $k$ and $K$.
  When $N$, $n$, $k$ or $K$ exceed their limit value, the test is not done.
  Default values: $N = 2^{22}$, $n = 2^{22}$, $k = 2^{22}$ and $K = 2^{22}$.
\endtab


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\guisec{The tests}
\code

void fvaria_SampleMean1 (ffam_Fam *fam, fres_Cont *res, fcho_Cho *cho,
                         long n, int r,
                         int Nr, int j1, int j2, int jstep);
\endcode
\tab  This function calls the test {\tt svaria\_SampleMean} with parameters
  $N$,  {\tt n} and  {\tt r} for sample size $N$ chosen by the function
 {\tt cho->Choose(param, i, j)},
 for the first {\tt Nr} generators of family {\tt fam}, for $j$ going from
 {\tt j1} to {\tt j2} by steps of {\tt jstep}. The parameters in {\tt param}
 were set at the creation of {\tt cho} and $i$ is the lsize of the
 generator being tested.
 When $N$ exceeds {\tt fvaria\_MaxN}, the test is not done.
\endtab
\code


void fvaria_SampleCorr1 (ffam_Fam *fam, fres_Cont *res, fcho_Cho *cho,
                         long N, int r, int k,
                         int Nr, int j1, int j2, int jstep);
\endcode
\tab  This function calls the test {\tt svaria\_SampleCorr} with parameters
 {\tt N}, $n$, {\tt r} and {\tt k} for sample size $n$ chosen by the function
 {\tt cho->Choose(param, i, j)},
 for the first {\tt Nr} generators of family {\tt fam}, for $j$ going from
 {\tt j1} to {\tt j2} by steps of {\tt jstep}. The parameters in {\tt param}
 were set at the creation of {\tt cho} and $i$ is the lsize of the
 generator being tested.
 When $n$ exceeds {\tt fvaria\_Maxn}, the test is not done.
\endtab
\code


void fvaria_SampleProd1 (ffam_Fam *fam, fres_Cont *res, fcho_Cho *cho,
                         long N, int r, int t,
                         int Nr, int j1, int j2, int jstep);
\endcode
\tab Similar to {\tt fvaria\_SampleCorr1} but with {\tt svaria\_SampleProd}.
\endtab
\code


void fvaria_SumLogs1 (ffam_Fam *fam, fres_Cont *res, fcho_Cho *cho,
                      long N, int r,
                      int Nr, int j1, int j2, int jstep);
\endcode
\tab  Similar to {\tt fvaria\_SampleCorr1} but with {\tt svaria\_SumLogs}.
\endtab
\code


void fvaria_SumCollector1 (ffam_Fam *fam, fres_Cont *res, fcho_Cho *cho,
                           long N, int r, double g,
                           int Nr, int j1, int j2, int jstep);
\endcode
\tab Similar to {\tt fvaria\_SampleCorr1} but with {\tt svaria\_SumCollector}.
\endtab
\code


void fvaria_Appearance1 (ffam_Fam *fam, fres_Cont *res, fcho_Cho *cho,
                         long N, int r, int s, int L,
                         int Nr, int j1, int j2, int jstep); 
\endcode
\tab Similar to {\tt fvaria\_SampleCorr1} but with
  {\tt svaria\_AppearanceSpacings} and with $K$ as the varying sample size.
\endtab
\code


void fvaria_WeightDistrib1 (ffam_Fam *fam, fres_Cont *res, fcho_Cho2 *cho,
                            long N, long n, int r, long k,
                            double alpha, double beta,
                            int Nr, int j1, int j2, int jstep);
\endcode
\tab This function calls the test {\tt svaria\_WeightDistrib} with
  parameters {\tt N}, {\tt n},  {\tt r},  {\tt k}, {\tt alpha},
  and {\tt beta} for the
  first {\tt Nr} generators of family {\tt fam}, for $j$ going from
  {\tt j1} to {\tt j2} by steps of {\tt jstep}. Either or both of  {\tt n}
  and {\tt k} can be varied as the sample size, by passing a negative value as
  argument of the function. One must then create the corresponding function
  {\tt cho->Chon} or {\tt cho->Chop2} before calling the test.
  One will have either {\tt n} = {\tt cho->Chon->Choose(param, i, j)},
  or {\tt k} = {\tt cho->Chop2->Choose(param, i, j)} or both. A positive
  value for {\tt n} or {\tt k} will be used as is by the test. When {\tt n}
  exceeds {\tt fvaria\_Maxn} or {\tt k} exceeds {\tt fvaria\_Maxk}, 
  the test is not done.
\endtab

\code
\hide 
#endif
\endhide
\endcode
