LEFKO3 NEWS
-----------

CHANGES IN VERSION 3.5.0 (2021-06-29)
-------------------------------------
  NEW FEATURES
    1. Historical MPM estimating functions can now estimate hMPMs in deVries
       format, in which newborns have an unique prior stage. All population
       dynamics functions have also been reworked to handle this format.
    2. New output has been added showing the exact order of age-stage
       combinations across all rows in estimated age-by-stage MPMs, as output
       from function aflefko2().
    3. Stochastic sensitivities of historical MPMs now yield ahistorical
       equivalents in all output.
    4. Added manual designation of ahistorical vs. historical output in
       functions sensitivity3.list() and elasticity3.list().

  USER-VISIBLE CHANGES
    1. Function modelsearch() can now handle invariant response terms.
    2. Functions flefko3() and flefko2() can now handle invariant fecundity.
    3. Function verticalize3() can now handle horizontal datasets without clear
       patterns in order.
    4. Amended overwrite() and supplemental() functions to account for possible
       prior newborn stage in deVries formatted hMPMs.
    5. Function supplemental() now details stage names not accounted for in the
       input stageframe in error messages.
    6. Some error and warning messages have been clarified for better
       understanding.
    7. Many examples have been expanded to include extra conditions.

  BUG FIXES
    1. Function rlefko3() now handles dimension reduction properly.
    2. Function cond_hmpm() now produces conditional matrices from all
       combinations of population, subpopulation, and year, and also properly
       labels them.
    3. Typos and other issues corrected in vignettes.


CHANGES IN VERSION 3.4.0 (2021-03-31)
-------------------------------------
  NEW FEATURES
    1. Zero-truncated Poisson and negative binomial distributions have been
       added to function modelsearch(), and as underlying size and fecundity
       distributions in flefko3(), flefko2(), and aflefko2().
    2. New function image3() created to easily create matrix images for lefkoMat
       and other objects. Function acts as a wrapper for the image() function in
       package SparseM.
    3. New vignette showcasing the estimation and analysis of age x stage MPMs.
  
  USER-VISIBLE CHANGES
    1. Added err_check option to function-based matrix estimators, allowing the
       output of vital rates used in the estimation of U matrices.
    2. The test used to assess overdispersion in size and fecundity has been
       changed to deal more accurately with count-based variance (including
       tests performed and how data are subsetted), and to offer more choices in
       which tests to run.
    3. Function modelsearch() has been rewritten to result in a smaller
       installed package size.
    4. Function parasearch() has been removed pending revision of modeling
       methodology.
    5. Reproductive value vectors are now all standardized to the first non-zero
       value in the vector.
    6. Function sf_create() can now handle stage comments as input.
    7. Functions sensitivity3() and elasticity3() have been redesigned for
       increased speed with unusually large matrices.
    8. Stochastic analysis functions have been streamlined for speed and
       efficiency.
    9. Expanded all examples to include both Lathyrus and Cypripedium versions.
    10. Corrections and expansions to package vignettes.
  
  BUG FIXES
    1. Fixed issue in which loss of one of the year or patch terms in modeling
       of zero-inflated mixed models could lead to errors in function-based
       matrix estimation.
    2. Corrected error in estimation algorithm for size transition probability
       under negative binomial distribution, and difficulty in handling low
       levels of overdispersion in some negative binomial models.
    3. Fixed issue making lmean() unable to take element-wise mean matrices of
       age x stage MPMs produced using aflefko2().
    4. Fixed bug yielding erroneous reproductive values in historical matrices.
    5. Fixed bug yielding erroneous sensitivity elements in historically-
       corrected ahistorical sensitivity matrices.
    6. Fixed bug occasionally yielding 3d arrays in response to stochastic
       calls of sensitivity3() and elasticity3().
    7. Corrected stablestage3() and repvalue3() to properly handle age x stage
       MPMs.
    8. Corrected memory leak issue in aflefko2().


CHANGES IN VERSION 3.3.2 (2021-02-25)
-------------------------------------
  BUG FIXES
    1. Fixed Imports field related to function parasearch().
    2. Fixed loss of fecundity placement in age-by-stage matrices when using
       function supplemental() with function aflefko2().
    3. Fixed default year and patch settings in aflefko2().
    4. Corrected memory allocation issue in historicalize3().


CHANGES IN VERSION 3.3.1 (2021-02-23)
-------------------------------------
  USER-VISIBLE CHANGES
    1. Corrections to vignettes.
    2. Help file typos fixed.


CHANGES IN VERSION 3.3.0 (2021-02-21)
-------------------------------------
  NEW FEATURES
    1. Function supplemental() created to allow greater flexibility in the input
       of reproductive multipliers. All matrix creation functions can now handle
       its output.
    2. Stochastic sensitivity and elasticity analyses now enabled through
       functions sensitivity3() and elasticity3(), respectively.
    3. Functions sensitivity3() and elasticity3() now handle simple lists of A
       matrices, in addition to lefkoMat objects and simple matrices.
    4. Function parasearch() created to allow parallelized model building and
       selection.
  
  USER-VISIBLE CHANGES
    1. Censoring options in verticalize3() and historicalize3() can now handle
       both static and temporally-variable censor variables.
    2. Overwrite and supplemental tables can now include "prop", "immat", and
       "mat" as shorthand for suites of all propagule, immature, and mature
       stages.
    3. Function modelsearch() now gives warning if a dataset is used with NAs in
       individual ID when a mixed modeling approach is requested. It now also
       provides standard diagnostic messages at each step.
    4. Corrections and additions to help files.
  
  BUG FIXES
    1. Fixed censoring protocols in verticalize3(), historicalize3() rlefko3(),
       and rlefko2().
    2. Corrected distribtution algorithm for zero inflation and text output in
       sf_distrib().
    3. Eliminated bug causing high overdispersion parameters from negative
       binomial-based size models to yield function-based matrices with NA
       values for all transitions to stages with positive size.
    4. Fixed issue in which mixed models with a non-zero-inflated negative
       binomial distribution fails to estimate function-based martrices.
    5. Fixed compatibility issues in matrix creation functions with R 3.6.3.
    6. Fixed minor issue in summary.lefkoMat output text.


CHANGES IN VERSION 3.2.0 (2021-01-03)
-------------------------------------
  NEW FEATURES
    1. Function cond_hmpm() added to create conditional hMPMs
    2. Function slambda3() added to estimate the log stochastic growth rate
    3. Function summary.lefkoElas() added to summarize elasticities by kind of
       transition
    4. Added citation() data for package
    5. Added NEWS section, using package lme4 NEWS as a template
    
  USER-VISIBLE CHANGES
    1. Corrected inconsistent stage name variable in stage frame creation and
       manipulation functions
    2. Updated and reorganized vignettes
    3. Modified stageframes exported by matrix creation functions now include
       entry status variable
    4. Objects of class lefkoElas now include the original A, U, and F matrices
    5. Elasticity and sensitivity outputs for lefkoMat objects now include the
       original A, U, and F matrices used as input
  
  BUG FIXES
    1. Matrix estimation function now create loy tables treating pop and patch
       as strings by default, eliminating possible conversion errors
    2. Corrected incorrect overwrite() call in lathyrus example used in function
       flefko3() and all population dynamics analysis functions


CHANGES IN VERSION 3.1.2 (2020-11-16)
-------------------------------------
  BUG FIXES
    1. Corrected auto-conversion of characters to factors occurring on R 3.6.3,
       which affected the creation and interpretation of the $labels element in
       matrix estimation


CHANGES IN VERSION 3.1.1 (2020-11-13)
-------------------------------------
  BUG FIXES
    1. Fixed bug in lmean() function resulting from an implicit cast and
       affecting users operating lefko3 on Solaris systems


CHANGES IN VERSION 3.1.0 (2020-11-08)
-------------------------------------
  NEW FEATURES
    1. Added function sfdistrib() to test whether mean = var and the level of
       zero-inflation in count variable data to be used for size and fecundity
    2. Added zero-inflated Poisson and negative binomial distributions
       as choices for the underlying distribution of size and fecundity
    3. Added individual and environmental covariates to function-based
       MPM estimation functions

  USER-VISIBLE CHANGES
    1. Corrected, updated, and reorganized vignettes

  BUG FIXES
    1. Corrected parameterization of negative binomial distribution in
        function modelsarch()



CHANGES IN VERSION 3.0.0 (2020-10-22)
-------------------------------------
  NEW FEATURES
    1. Added function aflefko2() function to estimate age x stage MPMs
    2. Added function sensitivity3() to estimate sensitivity matrices of
       historical and ahistorical MPMs
    3. Added Function elasticity3() to estimate elasticity matrices of
       historical and ahistorical MPMs

  USER-VISIBLE CHANGES
    1. Increased consistency of output variable names across functions
    2. Corrected, updated, and reorganized vignettes
    3. Eliminated faulty parameterization of matrix geometric mean in lmean()
       function

  \subsection{BUG FIXES}{
    1. Corrected core kernel underlying lmean(), and redeveloped in C++ to yield
       faster results
    2. Corrected parameterization of negative binomial distribution
    3. Function summary.lefkoMat() now shows which vital rate models were not
       estimated



CHANGES IN VERSION 2.4.2 (2020-09-12)
-------------------------------------
  USER-VISIBLE CHANGES
    1. All matrix estimators sped up through lapply()-based calls to C++ kernels
    2. Function lmean() now keeps the original names of populations and patches
    3. Corrected incorrect reference links in vignettes

  BUG FIXES
    1. Fixed memory leak in kernel behind function historicalize3()
    2. Fixed faulty indexing affecting all matrix estimators under certain
       conditions
    3. Bugs in Cypripedium candidum vignettes and examples caused by incomplete
       overwrite tables fixed


CHANGES IN VERSION 2.3.0 (2020-08-18)
-------------------------------------
  USER-VISIBLE CHANGES
    1. Major speed up to flefko2() and flefko3() through the
       incorporation of C++ core kernels

  BUG FIXES
    1. Bug fixed that could lead to the erroneous incorporation of mature
       stages as immature in flefko3() under certain rare circumstances
    2. Bug fixed that could fit proxy rates into the wrong elements in all
       matrix construction under certain rare circumstances
    3. Bug fixed that could, under some circumstances, lead to individuals
       being treated as dead when not observed for a period of more than a year


CHANGES IN VERSION 2.2.2 (2020-07-28)
-------------------------------------
  USER-VISIBLE CHANGES
    1. Revised vignettes
    2. Improved default handling of reproductive ratio and fecundity ratio

  BUG FIXES
    1. Fixed calculation of observed lifespan in functions verticalize3() 
       and historicalize3()

