Changes in version 2.0.8 BUG FIXES - Cleared up potential memory leak in function-based application of project3(). Changes in version 2.0.7 (2026-02-13) NEW FEATURES - A benchmark option has been added to functions project3(), invade3(), and batch_project3(). - Unit tests added. BUG FIXES - Processing of age-related parameters in batch projection of Leslie MPMs fixed. - Processing of supplements in batch_project3() no longer leads to an occasional memory leak. Changes in version 2.0.0 (2026-02-09) NEW FEATURES - Trait axes now include individual covariate values that can be used to create variants. - Density dependence through the additive limit and absolute limit functions has been added to projection and invasion functions. - Equivalence frames and density frames can now be added per annual matrix. - Community projections with projection3() can now handle post-processing of pre-existing MPMs with argument supplemental. - Function batch_project3() now runs batches of community projections using vectors of alterations input as matrix element offsets, given rate changes, and multipliers. - Function summary.adaptProjBatch() now summarizes batch community projections. - Function project3() now includes aggregate density in the output. - Function summary.adaptProj() now also outputs mean final population sizes for each MPM across replicates. - Function plot.adaptInv() now processes the first variable trait in the trait axis as the source of axis labels by default to PIPs, and to the x axis in elasticity plots. USER-VISIBLE CHANGES - The output list structure for function project3() has changed, with item comm_out renamed to structure, and with its own structure changing such that the top-level list refers to replicates, and the lower-level list refers to input MPMs. BUGS FIXED - Projection via vrm_input with deviance terms now no longer crashes. - Function project3() no longer always incorporates the current MPMs start vector as the vector at time 0, but instead incorporates it only as the correct start time. - Corrected issue resulting in Leslie-format function-based MPMs yielding matrices full of NAs if the format vector is missing. - Fixed fatal error in project3() occurring when the number of MPMs entered is smaller than the times projected using unequal stage weights across MPMs. - Fixed bug that led function summary.adaptProj() to acknowledge only a single replicate. Changes in version 1.0.2 NEW FEATURES - ESS trait value optimization now handled via Golden section Nelder-Mead search algorithm. - Standard error bootstrapping example added to invasibility analysis vignette. USER-VISIBLE CHANGES - Corrections to documentation. - Corrected default axis labels in function plot.adaptInv(). BUGS FIXED - Corrected optimization trait axis calculations in cases where traits span both positive and negative values. - Corrected ESS trait value calculations in cases where traits span both positive and negative values. - Function plot.adaptInv() now correctly labels axes with user-supplied values. - Function summary.adaptInv() now gives the correct number of variants tested. Changes in version 1.0.1 (2025-07-16) USER-VISIBLE CHANGES - Corrections to documentation. Changes in version 1.0.0 NEW FEATURES - New community projection vignette. USER-VISIBLE CHANGES - Corrected help files for certain functions. Changes in version 0.9.9 USER-VISIBLE CHANGES - Invasibility analysis vignette fully created. BUGS FIXED - Function invade3() now correctly subsets converged trait optima rows. Changes in version 0.9.8 NEW FEATURES - Functions plot.adaptInv() and summary.adaptInv() created to plot and summarize invasibility analyses, respectively. Changes in version 0.9.7 NEW FEATURES - Functions plot.adaptProj() and summary.adaptProj() created to plot and summarize community projections, respectively. - ESS optimization routine enabled for function invade3(). - New invasibility analysis vignette added. - Threshold values for 0s created for function invade3(). Changes in version 0.9.6 NEW FEATURES - Function invade3() added to run invasibility analyses. - Function plot.adaptInv() created to plot the results of pairwise invasibility analyses. - Functions ta_skeletion() and trait_axis() created to develop quick trait axis data frames. Changes in version 0.9.5 NEW FEATURES - Full project3() function developed. First full pre-invasion version. USER-VISIBLE CHANGES - Updated error messages. Changes in version 0.9.3 USER-VISIBLE CHANGES - Underlying functions adapted to newest LefkoUtils. Changes in version 0.9.2 NEW FEATURES - Function project3() split up to allow creation of main invasion functions. Changes in version 0.9.1 NEW FEATURES - Cypripedium parviflorum dataset added. Changes in version 0.9 NEW FEATURES - First development version. Core function addyn_proj() function and accessory function equiv_input() developed.