Changes in Version 1.4-2 (2014-08-28)
=====================================

  o Documentation update.

  o A data set has been added to the package : the lesbian data set.


Changes in Version 1.4-1 (2014-07-17)
=====================================

  o Documentation update.



Changes in Version 1.4-0 (2014-07-04)
=====================================

  o Fonction closedpMS.t() has been added to the package. MS stands for Model
    Selection. This function fits every possible hierachical loglinear model
    for a given data set and for given constraints (see closedpMS.t() 
    documentation for details).

  o The name of a hierarchical loglinear model can now be given as 'mX' argument
    to a closedpCI function (see closedpMS.t() documentation to learn about the 
    syntax of hierarchical loglinear model name in Rcapture)

  o Rcapture do not use glmRcapture(), an internal version of glm(), anymore.
    For better maintainability, it is back to calling glm() directly. To avoid
    warnings from fitting the NULL model, the internal function glm.call() asks
    glm() to remove the intercept from the model, but an intercept is added to
    the model manually through an explanatory variable taking a constant value
    of 1. Because of this trick, the NULL deviance might not be exactly correct, 
    but it is not used by Rcapture.

  o Functions calling glm() can now pass arguments to glm() through the special
    argument ... (added to the closedp functions and closedp.bc()). The function
    closedp.Mtb() has also a new argument ..., to pass arguments to optim() as
    the closedpCI functions already do.



Changes in Version 1.3-4 (2014-07-02)
=====================================

  o Improvement of the warnings trace when eta parameters are removed from an
    heterogeneous Chao's lower bound model: the warning messages now indicate
    from which fit it comes.

  o Non-integer capture frequencies in input data set are now accepted, but 
    they still generate warnings from glm().

  o A model design matrix with fewer rows than columns now produce a warning
    instead of an error, but the closedpCI functions do not calculate a 
    multinomial profile likelihood confidence interval in that case.

  o The data set 'catb' has been renamed 'cbird'.



Changes in Version 1.3-3 (2014-06-20) 
=====================================

  o Closed population functions now calculate asymptotic bias for abundance 
    estimators.

  o Closed population functions now calculate a Bayesian Information Criterion
    (BIC) for the fitted models.

  o The way Rcapture treats warnings and errors produced while fitting a closed 
    population model has been revised :
      o If an error occurs while executing a function fitting only one model 
        (closedpCI functions, closedp.bc(), closedp.Mtb()), the execution is 
        stopped and the error message is printed (usual behavior in R, no change 
        here). However, if an error occurs while fitting a model in a call to 
        a function fitting more than one model (closedp functions), the 
        execution of the call is not stopped anymore. Instead, the row in the 
        results table for the problematic model is filled with NA and the
        error message is stored in a new output value called 'glm.err'.
      o Warning messages, if any, are stored in an output value called
        'glm.warn', 'fit.warn' or 'optim.warn', depending on the function. In
        previous versions of Rcapture, warnings produced when fitting a model
        with optim() (normal heterogeneous model or the Mtb model) were not  
        stored. They were printed in the console. However, warnings from calls
        to the glmRcapture() function, used to fit any other model, were stored 
        since version 1.3-1.
      o A new column called 'infoFit' has been added to the 'results' table. It 
        contains a numerical code giving information about errors or warnings 
        encountered (see the Rcapture documentation for details).
      o The output value 'converge' of closedp functions and closedp.bc() has 
        been removed since information about convergence is now given through 
        the column 'infoFit' of the 'results' table. In addition, in case of non 
        convergence, the symbol '**' is not added anymore to the name of the
        model and no more note is added to the print.

  o closedpCI functions now keep a trace of errors and warnings produced while 
    calculating the multinomial profile likelihood confidence interval. They
    are stored in 'CI.err' and 'CI.warn'. A new column in the output value 'CI', 
    named 'infoCI', gives information about errors or warnings encountered (see
    the closedpCI documentation for details).

  o closedp.bc() can now perform a correction for negative eta parameters in the
    Mth Chao lower bound model, just like any other closed population function
    already did. This correction is done by default.

  o Argument modifications for new features (described above) or consistency
    with closedpCI functions:
      o closedp.bc(): 'theta' must now be input through the new argument 
                      'h.control', which also accepts a 'neg' element to control
                       the correction for negative eta parameters in the Mth
                       Chao lower bound model. 
      o closedp.Mtb(): a new argument 'method' as been added to allow the user 
                       to modify the optim() argument 'method'.  

  o Output values modifications for new features (described above) or consistency:
      o closed population functions : 'results' contains three new columns,
                                      named 'bias', 'BIC' and 'infoFit'.
      o closedp functions: 'converge' has been removed, 'glm.err' has been added.
      o closedp.bc(): 'converge' has been removed, 'neg.eta' has been added.
      o closedp.Mtb(): 'fit' has been renamed 'optim', 'optim.warn' has been added.
      o closedpCI functions: 'glm.warn' has been renamed 'fit.warn', 
                             'CI.err' and 'CI.warn' have been added,
                             'CI' contains a new column named 'infoCI'.



Changes in Version 1.3-2 (2014-06-05)
=====================================

  o The vignette from an article in the Journal of Statistical Software
    has been removed because it was outdated.

  o Reorganisation of the internal code for closedpCI functions.

  o Output values added for consistency:
      o 't' and 't0' in closedp.bc(),
      o 't' and 'fit' in closedp.Mtb().

  o Bug fixes:
      o closedpCI functions now work with a formula containing only one term
        (including the intercept only model),
      o profileCI() now works with model Mt and 2 capture occasions.



Changes in Version 1.3-1 (2012-05-31)
=====================================

  o The data set 'ill' has been added to the package to illustrate the new feature
    t=Inf for captures occurring in continuous time. 
    
  o The internal function glm.call() used to call glm() from the 'stats' package
    to fit closed populations models. It now calls glmRcapture(), a new internal 
    function, which is a modify version of glm() that does not calculate a NULL 
    deviance when the model has an offset. This NULL deviance is not used by 
    Rcapture functions. Therefore, glm.fit() is now called only once per model 
    fit and there is no more confusion about which call of glm.fit() generated a
    warning.      

  o The warnings produced by the glmRcapture() function are no longer suppressed 
    for closed population models. Instead, they are stored in the output value 
    'glm.warn' (applies to the 'closedp' functions, the 'closedpCI' functions and
    the function closedp.bc()). This new feature made the 'trace' argument of the
    'closedp' functions useless. Therefore, it has been removed.     
      o When a model does not converge, its name is followed by ** in the output 
        'results' table. The print() method explains this symbol, but warnings are 
        not printed anymore for non-convergence since they were redundant. The
        warning for non-convergence is stored in 'glm.warn' like any other warning. 
  
  o The 'closedpCI' functions now generate an error if unused arguments are given.
    This error was not generated in version 1.3 because of the addition of a ... 
    argument to the 'closedpCI' functions (used to pass argument to optim()).
  
  o Diagnostic messages are now written in a consistent style.

  o Notes are not printed anymore when eta parameters are set to zero for Chao's 
    lower bound models.
  
  o The argument 'mX' of the closedpCI.t() function now accepts a formula (see 
    the documentation for details about how to correctly write this formula).

  o Minor change to the name of the loglinear parameters if a matrix is given as 'mX' 
    argument: they are now named "mX.*" where "*" is the name of the 'mX' columns if 
    the given 'mX' has columns names, otherwise "*" is the number of the 'mX' columns.  
  
  o A new argument has been added to the 'closedpCI' functions, 'fmaxSupCL', which  
    allows to change the upper end point of the interval to be searched by uniroot() 
    to find the upper bound of the multinomial profile likelihood confidence interval.
  
  o Bug fixes in the public functions closedp.bc() and openp() and in the internal 
    functions valid.t(), valid.X() and valid.mname(). 



Changes in Version 1.3 (2012-03-22) 
=====================================

  o Normal heterogeneous models have been added to the package. They can be 
    fitted with the closedpCI.t() and closedpCI.0() functions by giving the value
    "Normal" to the argument 'h'. This type of model is fitted with optim() 
    instead of glm(). 

  o For closedpCI.t() and closedpCI.0(), the argument 'theta' and 'neg' have been 
    moved to the new 'h.control' argument. This is a list accepting elements 
    named 'theta', 'neg', 'initcoef', 'initsig' and 'method'. The last three 
    elements concern normal heterogeneous models.

  o For closedpCI.t() and closedpCI.0(), the output value 'glm' has been renamed 
    'fit' since the function glm() is not used to fit normal heterogeneous models. 
    For these models, 'fit' contains various output relative to the model fitted 
    with optim() (see documentation).

  o The print(), boxplot() and plot() methods for objects of class 'closedpCI' 
    has been modified to deal with the new normal heterogeneous models.          

  o descriptive(), closedp.0() and closedpCI.0() now accept the value Inf for  
    the argument 't'. It indicates that captures occur in continuous time (see 
    the help page 'Rcapture-package').
      o Because of this change, the default value of 't0' for closedp.0 and 
        closedpCI.0() is now NULL instead of t. (When t=Inf, by default the 
        frequencies considered for the model fit are those for the units captured 
        between 1 and tmax times, where tmax is the larger number of captures 
        observed.)  

  o The impact of the argument 't0' has been changed in closedp.0(), closedpCI.0() 
    and closedp.bc(). If t0 < t, there is no longer columns added to the design 
    matrix of the loglinear model. Instead, observations are removed from the 
    design matrix, the response vector and the offset vector used to fit the 
    model. This change affects the AIC criteria for every model. For the Mh Chao 
    model only, it also affects the degrees of freedom and the deviance.  

  o The code has been improved and clarified in the following ways:
      o Blocks of code were kept in quotes. The code has been modified in order to 
        eliminate these quotes. Instead, many internal functions have been created.
      o Argument validations and default values have been standardized.
          o In the functions argument definition, 't' and 'mname' had no default 
            value. Their default value is now NULL to make it clear that these 
            arguments are not mandatory, except for 't' when dtype="nbcap".
          o The default value for 'h' is now NULL since when ones ask for a model 
            without heterogeneity, this argument is no used. Also, the vector 
            given in the function definition did not include every possible 
            values for 'h' since it can be a function.
      o plotCI() is no longer a method. It is now a function like uifit().           

  o The documentation has been improved and updated according to the code 
    modifications. 

  o Tests with 'testthat' have been added to the package in the folder 
    'inst/tests'.
    
  o A file Rcapture-Ex.Rout.save has been added to the package source in the 
    folder tests/Examples. Now R CMD check compares the output from the package
    examples to this file and reports any differences.



Changes in Version 1.2-1 (2012-03-28)
=====================================
 
  o Minor bug fixes and changes in the documentation.
    
  o Minor modification to the package vignette : A date has been added in the
    title of the document 'RcaptureJSS'.
    
  o The package vignette is now in the folder 'vignettes'. Only the PDF is left 
    in the folder 'inst/doc'.

  

Changes in Version 1.2-0 (2009-04-28)
=====================================

  o The functions closedp.mX(), closedp.h() and profile.CI() are now 
    deprecated.  They are replaced by the new function closedpCI.t() which 
    simultaneously fits a loglinear model specified by the user and 
    computes the multinomial profile likelihood confidence interval for 
    the abundance estimation.
	
  o closedpCI() uses the R functions optimize() and uniroot() to obtain the 
    profile likelihood confidence interval.  The deprecated function 
    profile.CI() used its own homemade algorithm. 	
	
  o The new method plotCI(), defined for the class 'closedpCI', allows to plot 
    a profile likelihood confidence interval.  This plot used to be generated
    automatically by profileCI().

  o The plot() method for class 'closedpCI' traces the scatterplot of the 
    Pearson residuals in terms of fi (number of units captured i times) for 
    the customized model. 		
	
  o closedp() is now named closedp.t().

  o closedp.t() now identifies the non-convergent model in the print.  Also, its
    returned list contains an element named 'converge'.  This is a logical vector
    indicating for each model whether it converged or not.
	
  o The new argument 'trace' of closedp.t() allows to print a note for each  
    model while the function runs.  It is useful to identify which model is  
    associated to a warning.
	
  o In closedp.t(), some bugs were fixed in the correction for negative eta 
    parameters in Chao's models when 'neg=TRUE' 	

  o In closedp.t(), the estimation of capture probabilities for Mth models   
    was incorrect, it has been corrected.

  o In closedp.t(), the returned list has changed.  It now has only one glm 
    element, this element is a list of the glm objects for each model.  Also 
    the output now features an element named 'parameters' which is a list of  
    capture-recapture parameter estimates for each model.	

  o The new plot() method for class 'closedp' produces scatterplots of the 
    Pearson residuals in terms of fi (number of units captured i times) for 
    the heterogeneous models Mh Poisson2, Mh Darroch and Mh Gamma3.5 
    if they converged.
	
  o The boxplot() method for class 'closedp' does not trace boxplots for the 
    non-convergent models anymore.
	
	
  o A new heterogeneity model has been added to the package : the gamma model. 
    This means that closedp() has two more models in its output table, 
    Mh Gamma3.5 and Mth Gamma3.5.  Also the 'h' argument of closed population 
    functions and the 'vh' argument of robust design functions accept the 
    value "Gamma".
	
  o The 'a' argument of closed population functions and the 'va' argument of 
    robust design functions are renamed 'theta' and 'vtheta' because the 
    gamma model was added to the package and 'a' was referring to the Poisson 
    heterogeneity model.  'theta' is a more general notation. 	

	
  o Functions for closed populations now work with only 2 capture occasions
    (non-helpful errors were previously produced).  In that case, only models 
    M0, Mt and Mb can be fitted.

	
  o The new functions closedp.0() and closedpCI.0() are equivalent to 
    closedp.t() and closedpCI.t() but they fit model using the number of
    units capture i times instead of the frequencies of the observable
    capture histories.  Consequently, they fit fewer models than the .t
    functions, but they work with much larger data set.
	
  o closedp.0() has the same methods as closedp.t() (print(), plot() and
    boxplot()), closedpCI.0() has the same methods as closedpCI.t()
    (print(), plotCI(), plot() and boxplot()).

  o The new .0 functions accept a new data format. The argument 'dtype', if 
    set to "nbcap", allows the user to give the numbers of captures instead
    of the full capture histories.

  o In the new .0 functions, the argument 't' is required if 'dtype' takes
    the value "nbcap".  It represents the number of capture occasions in the
    experiment.	


  o closedp.bc() now computes bias corrected estimates for a model specified
    using the arguments 'm', 'h' and 'theta' as with the 'closedpCI' functions.
	
  o Bias correction is now possible for any customized Mh model.	

  o For models 'M0' and 'Mh', closedp.bc() accepts a data matrix 'X' in the
    format 'dtype' equals to "nbcap".

  o In closedp.bc(), the computations for model Mt have changed.  The  
    abundance estimate for the Mt model when t=2 has Chapman bias correction 
    and a standard error derived from Seber and  Wittes variance estimate.  
    For t>2, closedp.bc() implements the bias correction of Rivest and 
    Levesque (2001).  The estimate for N and its variance are calculated by 
    solving an estimating equation as proposed in Seber (1982), not by 
    fitting a Poisson regression.  This approach works for large values of t.    	

	
  o The 't0' argument of closedp.0(), closedpCI.0() and closedp.bc() allows to
    fit models considering only the frequencies of units captured 1 to t0 
    times. The frequencies of units caught more than t0 times are given their
    own parameters in the loglinear model.	

	
  o descriptive() now accepts the new data formats, therefore it has two new
    arguments: 'dtype' and 't'.
	
  o The plot method	for class 'descriptive' now traces only the fi plot if 
    'dtype' took the value "nbcap" in the call to descriptive().
	
	
  o The documentation for periodhist() is now more general, it talks about 
    merging capture occasions.
	
  o The new argument 'drop' of perdiohist() allows to omit from the output 
    data set the unobserved capture histories (frequency of 0).	

	
  o histpos.0() now works when 'vt' is a scalar.	
  
  o histfreq.t() and histfreq.0() are now internal functions.
  
  o Some bugs were fixed in the robustd.t and robustd.0 functions : they now 
    work when vh contains R functions and when the data set contains only 
    two primary periods.
  
  o A NAMESPACE has been added to the package, therefore internal functions
    are now hidden (e.g. Xclosedp(), Xomega() and Zdelta())
  
  o The documentation has been updated.
  
  o The paper in inst/doc is now a vignette.

 
 
Changes in Version 1.1 (2008-01-28)
=====================================
  
  o Bug fixes for R 2.7.0.


  
Changes in Version 1.0 (2007-05-02)
===================================

  o First CRAN release of the Rcapture package.
