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

CHANGES IN VERSION 5.1.0 (2022-04-01)
-------------------------------------
  NEW FEATURES
    1. Added ability to run ordered annual matrix progressions in function
       projection3().
    2. Function projection3() can now run arithmetic mean matrix projections
       without any modifications required to the input lefkoMat object.
    3. Function plot.lefkoProj() now has an auto-title feature.

  USER-VISIBLE CHANGES
    1. Added cancel handling to verticalize3(), historicalize3(), slambda3(),
       sensitivity3(), elasticity3(), and ltre3().
    2. Added transitions to some supplemental() in function examples and
       vignettes, reflecting more exact transition specification.

  BUG FIXES
    1. Fixed incorrect substochastic correction in projection3() and
       f_projection3() when substoch = 2 and negative survival entries occur.
    2. Cleaned up minor memory issues in some functions.
    3. Corrected class lefkoProj structure output by function f_projection3()
       to correspond exactly to that produced by function projection3().
    4. Fixed bug preventing proxy multipliers from being properly integrated in
       function-based and raw MPMs.
    5. Corrected issue in which truncated distributions occasionally led to NA
       size probabilities when the probability of a 0 under the un-truncated
       distribution was sufficiently high.


CHANGES IN VERSION 5.0.1 (2022-03-08)
-------------------------------------
  USER-VISIBLE CHANGES
    1. Updated help files for projection functions.

  BUG FIXES
    1. Updated primitive class checks in some functions.


CHANGES IN VERSION 5.0.0 (2022-03-01)
-------------------------------------
  NEW FEATURES
    1. New function arlefko2() created to handle raw age-by-stage MPM
       estimation.
    2. Function aflefko2() now fixes the starting age by whether the life
       history model is pre-breeding or post-breeding.
    3. Functions verticalize3() and historicalize3() now handle age offsets and
       automatically offset age by 1 if set to prebreeding = TRUE.
    4. Further output has been added when err_check = TRUE is set in all
       function-based matrix estimators.
    5. New function f_projection3() runs MPM and IPM projections in which
       matrices are developed from vital rate models at each step.

  USER-VISIBLE CHANGES
    1. Default final_age in function aflefko2() is now the final age at time t
       in the original dataset.
    2. All function-based matrix estimators have been sped up.
    3. Population dynamics functions have been sped up.
    4. All population dynamics functions involving actual projection can now be
       cancelled during runs.
    5. Function create_lM() now produces a properly edited stageframe usable
       with all other functions taking lefkoMat objects as input.

  BUG FIXES
    1. Function plot.lefkoProj() now uses the correct default axis labels when
       conducting a state-space plot.
    2. Function hist_null() now correctly estimates the numbers of survival and
       fecundity elements.
    3. Eliminated bug in functions flefko3(), flefko2(), and aflefko2()
       preventing incorporation of random year effects into matrix estimation.
    4. Eliminated bug causing inflation of lambda under some instances of the
       Poisson distribution in function-based matrix estimation.
    5. Fixed erroneous mixing of QC information in lmean() output.
    6. Fixed issue preventing multiple replicates from being displayed in
       plot.lefkoProj under the timeseries option.
    7. Fixed issue causing certain impossible transitions linked to the
       prior stage to be estimated as non-zero in deVries-format function-based
       hMPMs.
    8. Fixed incorrect formatting of deVries hMPMs resulting from function
       hist_null().
    9. Function create_pm() updated to handle maturity status models.


CHANGES IN VERSION 4.2.0 (2022-01-17)
-------------------------------------
  NEW FEATURES
    1. Functions rleslie() and fleslie() created to estimate raw and 
       function-based Leslie MPMs, respectively.
    2. Added a beta term setting K as hard maximum in the logistic function
       using functions density_input() and projection3().
    3. Accuracy check added to size and fecundity models in modelsearch().
    4. Function modelsearch() new runs exhaustive model selection under the
       `suite = "cons"` setting if age, density, or any individual covariate is
       added to the analysis.
    5. Function modelsearch() now performs accuracy checks by default, and
       allows an opt-out.
    6. Function actualstage3() now removes stages if wished, including stage
       NotAlive be default.
    7. New plot.lefkoProj() function added.
    8. All function-based matrix estimators now incorporate a default method
       for continuous distributions using cumulative density functions to
       estimate size transition probabilities. The midpoint rule is now only an
       option (and not advised).
    9. New standalone density dependence functions ricker3(), beverton3(),
       usher3(), and logistic3() added.
    10. Substochasticity options for projection3() now include the option to
        force fecundity to stay non-negative.
    11. Function projection3() now issues warnings if density dependence yields
        matrix impossible matrix values.
    12. Function modelsearch() now also estimates maturity status probability in
        juveniles.
    13. Functions supplemental(), density_input(), and start_input() now also
        include automated handling of keywords "obs" and "nobs", which specify
        the use of all observable or unobservable stages, respectively.

  USER-VISIBLE CHANGES
    1. Functions rlefko2() and rlefko3() now provide warnings if individual
       identity variable name or column number is not provided.
    2. Function summary.lefkoMat() now provides appropriate descriptions of
       data quality control sections with missing values.
    3. Added spatial coordinates to cypdata and cypvert.
    4. Function modelsearch() is now more flexible with input errors in some
       key settings.
    5. Ended dependence on package stringr.
    6. Expanded data frame output with actualstage3() to give individual stage
       designations in times t and t-1.
    7. Function summary.lefkoMat() now yields warnings if any fecundity matrix
       contains a negative value, and if any matrix contains an NA value.
    8. Added equations in key help files.
    9. Corrections and updates to all vignettes.
    10. Function modelsearch() now tries several more parameterizations if the
        global model fails.
    11. Function lmean() now also incorporates modelqc and dataqc elements for
        quality control purposes.
    12. Function aflefko2() now treats missing minimum ages as zeroes, allowing
        estimation even when age info is missing from stageframes.

  BUG FIXES
    1. Matrix quality control summaries corrected when functions add_lM(),
       delete_lM(), and subset_lM() are used.
    2. Corrected errors in documentation regatding censoring variables used in
       rlefko3() and rlefko2().
    3. Corrected issue yielding fatal error in historicalize3() when spatial
       coordinates are set and reduce = TRUE.
    4. Corrected improper matrix formatting in some integer variables used in
       historicalize3().
    5. Fixed bug ignoring coordsRepeat setting in verticalize3().
    6. Fixed bug causing inconsistent coordinate assignment under unobserved
       stages in historicalize3().
    7. Corrected bug capable of causing the logistic function to yield negative
       matrix elements.
    8. Fixed improper handling of numeric entries for year and patch options in
       function modelsearch().
    9. Corrected issue in flefko3(), flefko2(), and aflefko2() affecting the
       incorporation of zero-inflated Poisson and negative binomial models.
    10. Fixed fecundity estimation issue arising in some circumstances with
        deVries-formatted historical models.
    11. Fixed bug leading size of 0 to be treated as zero-inflated in Poisson
        and negative binomial models.
    12. Added tolerance limit to binomial probability estimation in all
        function-based matrix estimators, to prevent some conditions yielding
        NA probabilities.
    13. Eliminated bug causing rare error in formulae creation in modelsearch().
    14. Eliminated bug causing unrealistic pseudo-R^2 in rare runs of
        modelsearch().
    15. Eliminated fatal error in modelsearch() occurring under rare instances
        when all attempts to build a working global model fail.
    16. Fixed bug incorrectly importing non-standard variable names into
        modelsearch().
    17. Fixed error causing density dependent projections under large,
        historical MPMs in projection3() to issue substochasticity warnings
        continuously regardless of actual substochasticity violation.


CHANGES IN VERSION 4.1.1 (2021-12-07)
-------------------------------------
  BUG FIXES
    1. Fixed C++ runtime error in function hist_null().


CHANGES IN VERSION 4.1.0 (2021-12-06)
-------------------------------------
  NEW FEATURES
    1. Included option to ignore observation status during stage assignment in
       verticalize3() and historicalize3().
    2. Included option to quiet all warnings in verticalize3() and
       historicalize3().
    3. New options to prevent display of overdispersion and zero-inflation tests
       in sf_distrib().
    4. Added hist_null() function to create historically-structured MPM to serve
       as a null model MPM assuming no individual history.
    5. Created function diff_lM() that creates lefkoDiff objects, which are
       MPM style objects that are actually matrix differences between
       two lefkoMat objects with equivalent dimensions.
    6. Added cond_diff() function to create conditional difference matrices
       from supplied lefkoDiff objects.
    7. Created actualstage3() function to calculate actual stage frequencies and
       proportions from input hfv dataset.
    8. Created create_pm() function to create a skeleton paramnames object for
       users building vital rate models manually.

  USER-VISIBLE CHANGES
    1. Introduced an integer check in function sf_distrib() that stops tests on
       non-integer variables.
    2. All vignettes have been updated to the latest functions and results.

  BUG FIXES
    1. Fixed incorrect time step calculation in summary.lefkoMat().
    2. Fixed incorrect P values for zero-inflation when fewer than expected 0s
       found in sf_distrib().
    3. Fixed fatal issue affecting certain kinds of proxy transitions in
       function-based matrix estimation.
    4. Fixed incorrect stage distribution calculation in stochastic
       stablestage3() and projection3().
    5. Fixed fatal error in summary.lefkoProj() that occurred when summarizing
       projections with single replicates.
    6. Fixed fatal errors in flefko2(), flefko3(), aflefko2(), and
       summary.lefkoMat() relating to the use of user-defined vital rate
       functions.
    7. Corrected incorrect assignment of stages in flefko3(), flefko2(), and
       aflefko2() based on use of groups in supplement tables.


CHANGES IN VERSION 4.0.1 (2021-11-15)
-------------------------------------
  BUG FIXES
    1. Function aflefko2() now properly removes agestages rows when 
       reduce = TRUE.
    2. Problems with mathjaxr integration fixed.


CHANGES IN VERSION 4.0.0 (2021-11-14)
-------------------------------------
  NEW FEATURES
    1. Function projection3() can now run density dependent projections using
       the Ricker, Beverton-Holt, Usher, and logistic functions.
    2. Functions start_input() and density_input() have been created to describe
       starting vectors and density dependence in the simplest format possible.
    3. Function modelsearch() now also calculates the accuracy of binomial
       models and adds the output to the QC section of the output. Function
       summary.lefkoMod() reports this output.
    4. Function sf_create() now handles dual- and triple-size classification
    5. Functions sf_create() and supplemental() now handle the designation of
       core stage groups.
    6. Functions verticalize3() and historicalize3() now handle dual- and
       triple-size metric classification.
    7. Function modelsearch() can now test the impacts of three different size
       variables, and can also develop vital rate models for up to three
       separate response size variables.
    8. Function modelsearch() can now test the impacts of spatial density and
       stage group.
    9. Function modelsearch() now allows individual covariates to be
       incorporated as random categorical variables, as well as fixed
       continuous quantitative variables.
    10. Function modelsearch() now also allows the Gamma distribution for size
        and fecundity.
    11. Function flefko2() now handles up to three size metrics, stage groups,
        random categorical variables, and density.
    12. Function sf_distrib() now handles up to three size metrics, and also
        handles fecundity estimation in both times t and t+1.
    13. Function projection3() now allows two forms of enforced
        substochasticity. The first keeps all survival-transition probabilities
        within bounds, while the second keeps all stage survival probabilities
        within bounds.
    
  USER-VISIBLE CHANGES
    1. Function projection3() now creates easier-to-understand output structures
       clearly dividing numbers of individuals from stage distributions from
       reproductive values and population sizes.
    2. Function supplemental() now takes proxy multipliers, and gives errors for
       negative given rates and multipliers.
    3. Corrected some figure dimensions in vignettes.
    4. Corrected help text for some functions.
    5. Functions sf_distrib(), summary.lefkoMat(), summary.lefkoCondMat(),
       summary.lefkoMod(), and image3() no longer return a NULL to the console.
    6. The default for option censorRepeat in function verticalize3() has been
       changed to FALSE, in order to prevent overzealous censoring by default.
    7. Text output from summary functions and sf_distrib() has been altered to
       fit within standard output consoles, including typical page widths.
    8. Added sparse matrix override to slambda3() in case of errors incurred in
       eigen analysis.
    
  BUG FIXES
    1. Corrected bug causing code "npr" to yield propagule stages in time t+1
       in supplement and overwrite tables.
    2. Fixed issue preventing estimation of size transition into observable
       classes with size 0 under the Poisson distribution in flefko3() and
       flefko2().
    3. Corrected porous stage assignment handling in historicalize3().
    4. Eliminated incorrect projection set assignment when running multiple
       patches or populations through function projection3().
    5. Eliminated bug giving warnings when running rlefko2() and rlefko3() with
       specific choices of patches or populations given as input options.
    6. Fixed issue causing rlefko2() and rlefko3() to estimate only some
       transition-survival probabilities and fecundities when patchcol or popcol
       is given without any respective specific patch or pop options given.


CHANGES IN VERSION 3.8.0 (2021-09-08)
-------------------------------------
  NEW FEATURES
    1. Function projection3() now includes the ability to produce replicate
       simulations.
    2. Function summary.lefkoProj() created to summarize the results of
       population projection using function projection3().
    3. Functions verticalize3() and historicalize3() now handle true radial
       density estimation, if X and Y coordinates and a valid spacing threshold
       are supplied.
    4. Functions add_lM() and delete_lM() added to add and delete matrices from
       lefkoMat objects.
    5. Function subset_lM() added to create new lefkoMat objects as subsets of
       other lefkoMat objects.
    
  USER-VISIBLE CHANGES
    1. Sensitivity and elasticity descriptions corrected in vignettes.
    2. Increased consistency in terminology used in output for stablestage3()
       and repvalue3().
    3. Function create_lM() now handles age-by-stage matrices.
    
  BUG FIXES
    1. Fixed issue that could lead rlefko2() and rlefko3() to stop processing
       matrices if specific years or patches are called.
    2. Fixed issue affecting stochastic reproductive value estimation in
       historical lefkoMat objects.
    3. Fixed issue affecting some deterministic reproductive value estimates,
       particularly in large historical MPMs, where a base reference value for
       standardization cannot be determined.
    4. Fixed issue preventing proper handling of historical matrix inputs in
       create_lM().


CHANGES IN VERSION 3.7.0 (2021-08-18)
-------------------------------------
  NEW FEATURES
    1. Function ltre3() developed to conduct deterministic and stochastic life
       table response experiments.
    2. Function create_lM() developed to allow the incorporation of lists of
       matrices developed outside of package lefko3.
    3. Function summary.lefkoLTRE() developed to quickly summarize LTRE
       contributions according to transition type.
    4. Added new vignette to showcase LTRE and sLTRE analysis, and the import of
       matrices as lefkoMat objects.

  USER-VISIBLE CHANGES
    1. Altered some terminology in help files and vignettes to reflect most
       recent best practice in population ecology. Updated vignettes with new
       information, particularly related to LTRE and sLTRE analysis.
    2. Option append_mats has been added to sensitivity3.lefkoMat(),
       sensitivity3.list(), elasticity3.lefkoMat(), and elasticity3.list(). This
       option allows users to prevent the incorporation of the original matrices
       into output lefkoSens and lefkoElas objects, resulting in lower memory
       usage.
    3. Function summary.lefkoElas() can now handle age-by-stage MPMs.
    4. Corrected problematic Cypripedium examples involving the construction of
       matrices with stage survival probabilities rising above 1.0.
    
  BUG FIXES
    1. Fixed indexing bug in function summary.lefkoElas() that had led to
       incorrect elasticity summation.
    2. Fixed memory leak affecting sparse matrices in projection3() and related
       functions.


CHANGES IN VERSION 3.6.0 (2021-07-21)
-------------------------------------
  NEW FEATURES
    1. Automatic sparse matrix detection and override options have been added to
       all population dynamics functions.

  USER-VISIBLE CHANGES
    1. All population dynamics analysis functions have been substantially sped
       up through better memory management techniques.


CHANGES IN VERSION 3.5.3 (2021-07-14)
-------------------------------------
  NEW FEATURES
    1. Function summary.lefkoMat() now also displays column sums from all
       U (survival-transition) matrices as a quality control check.

  USER-VISIBLE CHANGES
    1. Package glmmTMB has been reintegrated, allowing mixed modeling of
       negative binomial, zero-inflated, and zero-truncated response
       distributions again.
    2. Error and warning messages from compiled functions provide cleaner
       messages.

  BUG FIXES
    1. Corrected incorrect handling of missing patch terms in lm, glm, vglm, and
       zeroinfl objects.
    2. Corrected static_cast issue that might prevent package installation in
       Solaris systems.


CHANGES IN VERSION 3.5.2 (2021-07-12)
-------------------------------------
  USER-VISIBLE CHANGES
    1. Negative binomial response, zero-truncated, and zero-inflated
       have been temporarily disabled in function modelsearch() while package
       glmmTMB() is being reprogrammed for compatibility with R 4.1.0. These
       distributions are still available through the glm approach.
    2. Examples have been updated for clarity and consistency.


CHANGES IN VERSION 3.5.1 (2021-07-07)
-------------------------------------
  NEW FEATURES
    1. Function supplemental() now allows entry stage proxies to be marked for
       raw historical MPMs.
    2. Shortcuts included covering non-propagule stages and non-reproductive
       mature stages for functions overwrite() and supplemental().

  USER-VISIBLE CHANGES
    1. Updated Lathyrus vignettes to correct improper handling of entry stages.
    2. Negative binomial response in mixed modeling has been moved to package
       lme4, and zero-truncated and zero-inflated distributions are available
       only through the glm approach in modelsearch() for the time being.

  BUG FIXES
    1. Corrected improper handling of prior forms of entry stages in raw
       historical MPMs.


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.

  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().


CHANGES IN VERSION 2.2.1 (2020-07-18)
-------------------------------------
  USER-VISIBLE CHANGES
    1. Removed some vignettes to reduce size.
    2. Added greater detail to Metadata in DESCRIPTION file

  BUG FIXES
    1. Added on.exit() to modelsearch() to keep user options through that
       routine. 
    2. Fixed bugs in repvalue3.lefkoMat() and repvalue3.matrix().


CHANGES IN VERSION 2.2.0 (2020-07-08)
-------------------------------------
  USER-VISIBLE CHANGES
    1. All internal function documentation now complete.
    2. Reduced vignette sizes.

  BUG FIXES
    1. Fixed bugs in summary.lefkoMod().


CHANGES IN VERSION 2.1.0 (2020-07-06)
-------------------------------------
  NEW FEATURES
    1. Advanced routines developed for deterministic analysis functions,
       including repvalue3() and stablestage3().

  USER-VISIBLE CHANGES
    1. Cleaned up all help pages.

  BUG FIXES
    1. Scattered bugs eliminated.


CHANGES IN VERSION 2.0.0 (2020-06-27)
-------------------------------------
  NEW FEATURES
    1. Stageframe objects now have their own class, and stageframes now handle
       log-size based bin widths.
    2. Sf_create() also now stops if vector lengths are not equal, and can
       create stageframes for IPMs.
    3. Mean matrix function lmean() created.
    4. Added size in time t to juvenile models.
    5. Fecundity models can now use fecundity in t+1 as a response.
    6. Integrated estimation function into verticalize3() and historicalize3().

  USER-VISIBLE CHANGES
    1. All matrix creation functions have been fully rewritten for speed
       (eliminated extraneous find() calls and long loops).
    2. Vignettes split up across chapter files.

  BUG FIXES
    1. Eliminated problems with class interpretation in modelsearch().


CHANGES IN VERSION 1.0.0 (2020-03-24)
-------------------------------------
  NEW FEATURES
    1. Lathyrus dataset added.
    2. Examples added to all core functions.

  USER-VISIBLE CHANGES
    1. All matrix estimation functions have been rewritten to include core C++
       functions, for speed up and memory efficiency.
    2. Added patch functionality to modelsearch(), flefko3(), and flefko2().

  BUG FIXES
    1. Bugs corrected in probability and rate estimation functions.


CHANGES IN VERSION 0.13.1 (2020-02-16)
-------------------------------------
  USER-VISIBLE CHANGES
    1. Reorganized flefko2() around Rcpp functions.

  BUG FIXES
    1. Cleaned up bugs discovered in rlefko3().


CHANGES IN VERSION 0.13.0 (2020-02-14)
-------------------------------------
  USER-VISIBLE CHANGES
    1. Re-developed core functions of rlefko3() with Rcpp and RcppArmadillo.
       Functions now run lightning quick.


CHANGES IN VERSION 0.12.1 (2020-02-11)
-------------------------------------
  USER-VISIBLE CHANGES
    1. Re-developed rlefko3() function per new approach to rlefko2().


CHANGES IN VERSION 0.12.0 (2020-02-05)
-------------------------------------
  NEW FEATURES
    1. Developed rlefko2() function.

  USER-VISIBLE CHANGES
    1. Developed rlefko2() function.
    2. Redesigned all matrix functions to handle different populations and
       patches.
    3. Made core matrix creators invisible.
    4. Increased standardization of inputs.
    5. Eliminated class lefkoMatMulti.


CHANGES IN VERSION 0.11.0 (2020-01-31)
-------------------------------------
  NEW FEATURES
    1. Created the hfvdata class for standardized, vertical demographic data
       frames.
    2. Added quality control sections to lefkoMod and lefkoMatMulti objects,
       including functions that create these objects.
    3. Created new summary.lefkoMatMulti function.


CHANGES IN VERSION 0.10.2 (2020-01-29)
-------------------------------------
  NEW FEATURES
    1. Added negative binomial functionality to vital rate estimators.

  USER-VISIBLE CHANGES
    1. Massive changes and improvements to tutorials.


CHANGES IN VERSION 0.10.1 (2020-01-22)
-------------------------------------
  NEW FEATURES
    1. Added negative binomial functionality to modelsearch().
    2. Added a summary function for class lefkoMod.


CHANGES IN VERSION 0.10.0 (2020-01-19)
-------------------------------------
  NEW FEATURES
    1. Added Cypripedium candidum vignette.
    2. Data mgmt functions can now prune unused variables from output.

  USER-VISIBLE CHANGES
    1. Replaced all flw and frt entries with repst and fec.


CHANGES IN VERSION 0.9.0 (2020-01-15)
-------------------------------------
  NEW FEATURES
    1. Added cypdata.

  USER-VISIBLE CHANGES
    1. Formatted code and help files.


CHANGES IN VERSION 0.8.3 (2020-01-11)
-------------------------------------
  USER-VISIBLE CHANGES
    1. Eliminated year effect warnings by option.


CHANGES IN VERSION 0.8.2 (2020-01-10)
-------------------------------------
  NEW FEATURES
    1. Added the lefkoMatMulti class.
    2. Gave matrix creation functions the ability to create output with lists of
       A, T, and F matrices for all years requested.


CHANGES IN VERSION 0.8.1 (2020-01-10)
-------------------------------------
  NEW FEATURES
    1. Added greater flexibility to modelsearch() function to allow it to
       estimate binomial models under constant response.

  USER-VISIBLE CHANGES
    1. Synchronized data management function to modelsearch() function.


CHANGES IN VERSION 0.8.0 (2020-01-01)
-------------------------------------
  NEW FEATURES
    1. Added modelsearch function to handle model building and selection workflow.


CHANGES IN VERSION 0.7.0 (2019-11-22)
-------------------------------------
  NEW FEATURES
    1. All workhorse functions are now generally debugged C++ functions.

  BUG FIXES
    1. Fixed overwriting and estimating portions of matrix creation functions.


CHANGES IN VERSION 0.6.1 (2019-11-22)
-------------------------------------
  BUG FIXES
    1. Fixed overwriting portion of matrix design, so that given transitions are
       properly added to historical matrices.


CHANGES IN VERSION 0.6.0 (2019-11-20)
-------------------------------------
  NEW FEATURES
    1. Fully rebuilt flefko3 and flefko2 so that fecundity is now estimated
       using binaries written in C++.

  USER-VISIBLE CHANGES
    1. Matrix design is reworked to make everything faster.


CHANGES IN VERSION 0.5.1 (2019-11-19)
-------------------------------------
  NEW FEATURES
    1. Rebuilt flefko2 to use C++ precompiled probability density functions.


CHANGES IN VERSION 0.5.0 (2019-11-18)
-------------------------------------
  NEW FEATURES
    1. Rewrote workhorse portions of survival transition estimators as
       precompiled binaries in C++.
    2. Rewrote historical matrix function (flefko3()) to handle reworked pxy
       functions.

  BUG FIXES
    1. Corrected issues in help files.


CHANGES IN VERSION 0.4.4 (2019-11-11)
-------------------------------------
  NEW FEATURES
    1. Added a patch term to ahv2hv() function.

  USER-VISIBLE CHANGES
    1. Changed plantid variable to individ.


CHANGES IN VERSION 0.4.3 (2019-11-08)
-------------------------------------
  NEW FEATURES
    1. Added density3() function.

  USER-VISIBLE CHANGES
    1. Sped up verticalize3() and ahv2hv() functions.

  BUG FIXES
    1. Corrected links throughout.


CHANGES IN VERSION 0.4.2 (2019-11-07)
-------------------------------------
  NEW FEATURES
    1. Added ability to handle character column names to verticalize_h().


CHANGES IN VERSION 0.4.1 (2019-11-06)
-------------------------------------
  BUG FIXES
    1. Corrected issues in verticalize_h function.


CHANGES IN VERSION 0.4.0 (2019-11-03)
-------------------------------------
  NEW FEATURES
    1. Added RSpectra-based population matrix projection analysis functions.

  USER-VISIBLE CHANGES
    1. Added GPL license.


CHANGES IN VERSION 0.3.1 (2019-11-02)
-------------------------------------
  BUG FIXES
    1. Corrected bug leading to infinite mu values in probbin for some models.
    2. Corrected the method of using proxy transitions from certain juvenile
       stages to mature stages in all lefko functions.


CHANGES IN VERSION 0.3.0 (2019-11-01)
-------------------------------------
  USER-VISIBLE CHANGES
    1. Increased ability to choose which unobserved stages lead to which
      vobserved stages.
    2. Standardized terms in more functions for cross-compatibility and easier
       workflow.


CHANGES IN VERSION 0.2.1 (2019-10-29)
-------------------------------------
  NEW FEATURES
    1. Added Gaussian probability calculation.
    2. Developed sf_create function.
    3. First version of rlefko3() created.


CHANGES IN VERSION 0.1.1 (2019-10-26)
-------------------------------------
  NEW FEATURES
    1. Matrix creation functions now discriminate size and fecundity on the
       basis of probability distribution.

  USER-VISIBLE CHANGES
    1. Adds numeric class recognition.
    2. Documentation improvements.


CHANGES IN VERSION 0.1.0 (2019-10-25)
-------------------------------------
  NEW FEATURES
    1. First development version. Main 2d and 3d matrix functions created.

