Version 3.3-0: 2026-09-18 - REML = TRUE is now the default. Set REML = FALSE explicitly to reproduce the estimation method used by earlier releases. - Enable REML for GP and rGP with R-side student effects and GP with G-side student effects, using the full prediction-error covariance adjustments. - Correct VP persistence updates under REML to include fixed/random prediction-error cross-covariances. - Synchronize returned fixed effects, random effects, likelihood, and covariance matrices at the final iterate. Calculate covariance-parameter information from the profiled likelihood for both ML and REML. Differentiate in scaled coordinates to support small response units. - Use a closed-form residual covariance update for complete data and a positive-definite Cholesky update for incomplete observation patterns. - Scale initial variances to the observed data to avoid premature convergence caused by fixed starting values when response units are large or small. - Report iteration-limit failures with a warning and converged = FALSE. Retain loglik_history and full-precision covariance_parameters. - Correct native residual-moment weighting for noncontiguous row indices and translate native exceptions into R errors. - Preserve full precision in returned covariance matrices and teacher predictions; round only for display. - Validate controls, identifiers, observed response variation, and the fixed-effects design before fitting. Handle one-year fits, unused factor levels, singleton teacher groups, and wholly unobserved students. - Distinguish true missing teachers from identifiers beginning with NA. Retain known teacher histories on missing-score rows for later outcomes. - Interpret year consistently as consecutive numeric indices in fixed-effect formulas for both student-side choices. Use a separate covariate for original numeric year spacing. The default formula remains categorical. - Add coef(), vcov(), fitted(), residuals(), nobs(), and logLik() methods. Fitted values and residuals are returned in observed input-row order. - Enable the bias permutation diagnostic for GP, rGP, and G-side student effects by permuting whole exchangeable blocks. Correct singleton permutations and use finite Monte Carlo p-values (1 + B)/(1 + n_perms). - Add independent plot and verbose controls to bias.test.custom(). Handle degenerate histograms and validate contrasts and permutation counts. - Guard AICc when undefined and return NA for REML; document the existing ML correction as a heuristic for correlated observations. - Correct year labels in diagnostic plots and restore graphics settings after errors. Printing methods return their input invisibly. - Maintain all help through roxygen comments in R source files; regenerate help and S3 registrations with tools/document.R in the maintenance repo. - Add testthat coverage for independent Gaussian equations, ML/REML moments, likelihood Hessians, closed-form variance estimates, missing data, convergence, scaling, input validation, diagnostics, and standard methods. - Correct references and document covariance-estimation and permutation-test assumptions. Bundled data and the GPL-2 license are unchanged. Version 3.2-0: 2024-12-12 - Efficiency improvements for bias.test.custom() Version 3.1-2: 2024-11-17 - Correct permutations in bias.test.custom() to occur independently over random effects belonging to different variance components. Not yet enabled for "GP" or "rGP" persistence. Version 3.1-1: 2024-10-14 - Correct data format check in GPvam.R - Add bias.test.custom() function Version 3.0-9: 2023-01-07 - Changes to DESCRIPTION file. Version 3.0-8: 2022-09-03 - Changes to Matrix() references to conform with Matrix package changes. Version 3.0-7: 2021-01-05 - Changes to Matrix() references to conform with Matrix package changes. Version 3.0-6: 2019-04-25 - Enable REML estimation for persistence = CP, VP, or ZP. Version 3.0-5: 2018-04-18 - Minor updates to package structure to conform with new CRAN requirements. Version 3.0-4: 2017-03-15 - Minor updates to package structure to conform with new CRAN requirements related to compiled C++ code. Version 3.0-3: 2015-07-19 - Minor updates to package structure to conform with new CRAN requirements. Version 3.0-2: 2014-06-22 - Changed method used to calculate rank of X matrix to avoid conversion to a dense matrix. - Added information to documentation about program run time. - Added data set GPvam.benchmark, which contains program run time and memory requirements for various simulated data sets. - Changed default options to Hessian=FALSE and verbose=TRUE. Version 3.0-1: 2014-01-31 - Corrected use of 'break' reserved word Version 3.0-0: 2014-01-30 - The program runs much faster now with student.side="R" due to the use of Rcpp and RcppArmadillo and a re-ordered nested loop. - Added references to recently accepted papers in help files. Version 2.0-0: 2012-07-05 - Improved scalability of program when student.side="R". For smaller data sets, certain operations work faster with dense matrices, but these matrices grow in size with the data. For large data sets, we now rely exclusively on sparse matrices. - Added support for the variable persistence (VP) model, including the ability to estimate the persistence parameters. As special cases, the complete and zero persistence models have also been included. Version 1.1-0: 2012-04-03 - Corrected issue where program crashed when updated covariance matrix was not symmetric due to rounding (i.e. transposed compoenents may have differered by 1E-14 or so). - Added caterpillar plots to plot() output. Version 1.0-0: 2012-02-19 - First public release.