Changes in Version 2.2-7

  o Minor bug fix.


Changes in Version 2.2-6

  o Bug fixes dealing with numerical imprecision.
  
  o The package now uses native routines registration.
  
  o DESCRIPTION and NAMESPACE file updated in order to fulfill new CRAN requirements.
  

Changes in Version 2.2-5

  o Bug fix in C code.


Changes in Version 2.2-4

  o Minor documentation update.


Changes in Version 2.2-3

  o Bug fix for old releases of R.

  o A .Rnw file have been added in the new folder 'vignettes' to generate the PDF already in
    'inst/doc'.


Changes in Version 2.2-2

  o The argument 'initbh' in strata.LH() and the argument 'nclass' in strata.cumrootf() have
    been changed position.

  o The behaviour of Kozak's algorithm for exception cases have been improved (warning 
    generated, NaN values in the output and the print).

  o Changes in parameter default values:
    * 'takeall.adjust' in strata.bh() is now TRUE by default, which is more consistent
      with the rest of the package;
    * the 'minsol' element in 'algo.control' now has the default value 10 000 instead of 
      1000 since the complete enumeration is now coded in C, thus it runs faster;
    * the 'maxstep' element in 'algo.control' now has a larger default value: \code{Nu/10}, 
      rounded up and truncated to 100 (Nu is the number of unique values in the x-vector 
      from which units in the certainty stratum, if any, have been removed);
    * the 'maxstill' element in 'algo.control' now has a smaller default value because
      it was unnecessarily large (which increased Kozak's algorithm computational time):
      new default = maxstep*10, bounded between 50 and 500.

  o In Kozak's algorithm, the value of 'maxstep' and 'maxstill' are now brought down to 3 
    and 50, respectively, when new boundaries are accepted under certain circumstances
    (see help(strata.LH)). It allows the algorithm to run much faster because it needs 
    less iterations to converge.

  o Sethi's algorithm: when a non requested take-all stratum appears at the end of the 
    algorithm run, the algorithm is run again starting from the boundaries at the end of
    the preceding run instead of starting at 'initbh'.

  o Change in strata.LH() output values: run.min, niter and sol.min can now be vectors 
    because more than one run of the algorithm and, less frequently, more than one 
    possible sets of boundaries can lead to the optimal solution.

  o General change in the output values: nh.nonint has been renamed nhnonint.

  o A vignette has been added in the package.

  o var.strata() now returns nhnonint.

  o Correction of an error introduced in version 2.2-0 in the calculation of the output
    values relativebias and propbiasMSE.

  o The option 'trymany=TRUE' have been improved.

  o The arguments 'takeall' and 'takenone' can now be logical objects.


Changes in Version 2.2-1  (non public version)

  o Bug fixes for the exception cases of null stratum variances and takeall stratum larger 
    than a target n.


Changes in Version 2.2-0  (non public version)

  o Major code restructuring. Some features originally coded in R have been translated in C 
    to make strata.LH() faster.

  o By default, strata.LH() runs Kozak's algorithm with three different sets of initial
    boundaries: cumulative root frequency, geometric and robust ones. This option is 
    controlled with the new 'algo.control' element 'trymany' (see help(strata.LH) for more 
    information). This default behaviour helps getting good and consistent results. Before 
    this version, it was problematic to have a default behaviour running the algorithm many 
    times because it was long to run. It can now run pretty quickly because of the code
    improvement done.

  o The modified Kozak's algorithm, which is a non-random version of Kozak's algorithm, is 
    no more available because it never performed as well as the original Kozak's algorithm 
    in our numerical experiments. Therefore, the 'algo.control' element 'method' has been 
    dropped.

  o For Kozak's algorithm, when initial boundaries do not meet the conditions Nh >= minNh 
    and nh>0, they are not replaced by robust boundaries anymore. Instead, a warning is
    printed and the algorithm is not run.

  o Changes in strata.LH() output values:
    * the output value initbh has been removed (one can see which initial boundaries has
      been used in the output value args$initbh);
    * opti.criteria was always opti.nhnonint, this have been corrected;
    * rep.detail and rep.min have been renamed run.detail and run.min;
    * iter.detail, run.detail and sol.detail has been improved: among others, in 
      sol.detail the boundaries are now obtained by averaging two consecutive unit values 
      instead of taking the value of a unit;
    * nsol is now always provided for Kozak's algorithm.

  o General changes in the output values:
    * the 'args' list output by every public function of the package has been improved;
    * the elements order has been improved;
    * the takeall value was sometime incorrect, it has been corrected.

  o Changes in the print of objects of class 'strata':
    * information about stratum type has been added;
    * some column names have been shortened in the table;
    * in the 'Given arguments' section, the algo.control elements have been improved;     
    * for objects produce with strata.LH() with the option 'trymany=TRUE', the initial
      boundaries are not printed anymore.

  o Bug fixes concerning the certainty stratum (target n now reached correctly, n includes
    the certainty stratum).


Changes in Version 2.1-2
 
  o In version 2.1-1, the default values for the algorithm parameters in strata.LH made
    the function long to run. They have been modified by values giving almost as often
    optimal solution and running faster. The default value for the parameter maxstep now 
    equals 3 for the modified Kozak's algorithm and pmin(ceiling(Nu/15),75) for the 
    original one, where Nu stands for the number of unique values in the input data
    (without considering the units in the certainty stratum). The default value for maxstill 
    now takes into account the value of maxstep. It is calculated with the command: 
    floor(maxstep*100/3). Also, by default, rep now equals 5 instead of 3. In the next 
    version of the package, the function strata.LH should be even faster and give better 
    results with its arguments' default values.

  o For Kozak's algorithm, the default initial stratum boundaries are now obtained with 
    the cumulative root frequency method instead of using initial boundaries forming strata 
    of equal sizes, called arithmetic boundaries (see help(strata.LH) for justifications). 
    The default value of 'initbh' remains unchanged for Sethi's algorithm.
   
  o The way the best repetition of the original Kozak's algorithm is chosen has been
    improved. If many repetition lead to the same minimal opti.nh criteria, the repetition
    leading to the smallest opti.nhnonint criteria is chosen.

  o The examples in the help pages have been modified a little to insure that they are not 
    too long to run. 


Changes in Version 2.1-1
 
  o The default values for the algorithm parameters in strata.LH have been changed for 
    values giving typically an equivalent or better solution than the previous default 
    algorithm parameters. They are now (initbh="nh", maxstep=6, rep="change"). They used
    to be (initbh="nhnonint", maxstep=3, rep=3). This change affects the execution time of 
    the function. It is much slower. The next version of the package should improve this.  
  
  o The 'Given arguments' section of the print for an object of class 'strata' has been 
    improved.
   
  o Minor bug fixes in strata.LH. 


Changes in Version 2.1-0 (non public version)
 
  o Prior to this version, the optimization criteria (criteria=RRMSE for a given n 
    and criteria=n for a given CV) was always calculated with non-integer stratum
    sample sizes, called nhnonint (obtained directly from applying the allocation rule, 
    see help(stratification)). The output contained integer sample sizes, called nh, but 
    these were not considered in the optimization criteria calculation. For Kozak's 
    algorithm, it is now possible to choose which sample sizes are used to calculate
    the optimization criteria : integer or non-integer ones.

  o In 'algo.control', the element 'idopti' has been added. This parameter determines which 
    stratum sample sizes are going to be used to calculate the optimization criteria. 
    It can take the value "nh" (criteria calculated with the integer sample sizes nh) 
    or "nhnonint" (criteria calculated with the non-integer sample sizes nhnonint). 
    The default value is "nh" since it gives slightly better results than idopti="nhnonint"
    and also because the integer sample sizes are the ones used in practice. This parameter
    is used by Kozak's algorithms only.
 
  o When a complete enumeration is performed, the criteria is automatically calculated with 
    integer stratum sample sizes.    
 
  o Because Sethi's algorithm works with derivatives to perform optimization, it can only use
    a real optimization criteria, i.e. the one calculated with the non-integer sample sizes.    
   
  o The output value opti.criteria has been replaced by two values, opti.nh and opti.nhnonint,
    for the functions strata.bh(), strata.geo(), strata.cumrootf(). The value opti.nhnonint is in 
    fact equal to the old opti.criteria. Only the name has changed. It is still the criteria 
    to optimize calculated with the non integer stratum sample sizes (nhnonint). The value 
    opti.nh is the same criteria, but calculated with the integer sample sizes (nh). For the 
    function strata.LH, the output value opti.criteria still exists, but its value now depends 
    on the new 'algo.control' element 'idopti'. If idopti="nh", opti.criteria is the criteria 
    to optimize calculated with the integer nh. If idopti="nhnonint", opti.criteria is the 
    criteria to optimize calculated with the non-integer nhnonint.
  
 
Changes in Version 2.0-4

  o A warning is now printed when Kozak's algorithm is not able to move (when it discards
    every updated boundaries and remains at the initial boundaries).

  o Bug fixes for the extreme case of a null optimization criteria for the initial boundaries.

  o Bug fixes in the internal function optiCriteria and the C function strataC. In extreme 
    cases, the quantity V2 + (U / (n - T1)) - V3 - V4 could be negative. Therefore, taking 
    its square root returned NaN, which caused problem later on. This quantity is now 
    truncated to zero. 


Changes in Version 2.0-3

  o Useless files have been deleted from the package source.


Changes in Version 2.0-2

  o Minor correction in plot.strata when a certainty stratum is included in the strata object.

  o Bug fixes for the function strata.cumrootf for some rare cases.

  o The function var.strata now applies the posterior correction for non-response to the 
    non integer stratum sample sizes.

  o The function plot.var.strata now prints correctly the loglinear model parameters.

  o The function plot.strata now prints "model = complete enumeration" if a complete 
    enumeration was carried out.

  o Minor modifications to the documentation.
  
  
Changes in Version 2.0-1
  
  o Bug fixes for the function strata.LH concerning the modification of initial stratum 
    boundaries if they do not meet the condition Nh>=minNh and nh>0.

  
Changes in Version 2.0-0

  o First CRAN release of the stratification package.
