Changes in Version 0.13.1
  o Bootstrapping now occurs before standardizing the data (thanks to Yiwei Yang and Amanda Montoya)
  o Improved support for N=1 models in dlvm1 (e.g., for true ML estimation)
  o Fixed a bug with missing values in the beta starting values matrix for dlvm1 models
  o Changed partialprune() default for 'return' to "partialprune"; set to "best" to mimic old behavior
  o Added 'final_prune' argument to partialprune() and changed the default to "saturated"; set to "partialprune" to mimic old behavior

Changes in Version 0.13
  o Added bootstrap support:
    o Every model now supports 'bootstrap' (to enable bootstrap), 'boot_sub' (for subsampling) and 'boot_resample' (to resample)
    o Enabling these will bootstrap the data *once* and create a psychonetrics object for the bootstrap sample
    o The function 'aggregate_bootstraps' can be used to aggregate bootstraps:
      o use print(...) for some general info
      o use parameters(...) for the bootstrap results on the parameters
      o use fit(...) for the bootstrap results on the fit indices
      o use CIplot(...) for the bootstrap results on the confidence intervals (enable split0=TRUE if model selection is used)

Changes in Version 0.12
  o Updates for the dlvm1 model family:
    o Changed the starting values for dlvm1 models for better convergence
    o Added the 'start' argument to the dlvm1 model family. Use start = "version1" to use pre 0.12 start values
    o Added the 'baseline' argument to dlvm1 model family, which now defaults to "stationary_random_intercept". Note: this will change incremental fit indices! To recover old behavior, set baseline = "independence"
  o The log(det(kappa)) value used in fit function is now computed in FIML in the same way as computed in ML framework, this should lead to more stability, but might also lead to some different chi-square values
  o The startreduce argument in prune() now defaults to 1
  o Using "empty" for matrix specification is now deprecated; use "diag" or "zero" instead.
  o getmatrix will no longer evaluate a model if it is not computed (now returns start values)
  o the 'startreduce' argument in 'prune' now defaults to 1
  o Added the 'fixstart' function that can aide in fixing startvalues
  o The 'getmatrix' function now supports thresholded PDC matrices
  o Diagnostic functions 'checkJacobian' and 'checkFischer' are now exported
  o Added the transmod function, which can be used to transform one model type (e.g., using a Cholesky decomposition) to another model type (e.g., a GGM).
  o Improved support for models with only one (latent) variable
  o Added the 'logbook' function which can be used to more easily retrieve the psychonetrics logbook
  o The 'partialprune' function has been updated and now allows for pruning specific matrices as well as returning different models
  o Fixed some instances where the 'equal' argument wasn't working
  o 'partialprune' now supports multiple matrices
  o 'unionmodel' and 'intersectionmodel' now support the 'matrices' argument
  o Changed lambda starting value choice to the following: Run an EFA, set the starting values to the loadigs of the factor that has the strongest loadings in the indicators, and set correlations between factors that use the same EFA factor for starting values to 0.8
  o added warning for non computed model in parameters()

Changes in Version 0.11.5
  o Fixes to support Matrix 1.7-0

Changes in Version 0.11.5
  o The groupequal, groupfree, fixpar and freepar functions can now handle multiple rows/columns for symmetric matrices
  o Fixed a bug in the identification function for ml_lvm models
  o Implemented min_sum argument for estimating Ising models on data with a minimum sum score due to selection bias. This method is further discussed in  Boot, de Ron, Haslbeck & Epskamp (in preperation). Correcting for selection bias after sum score selection in the Ising model.
  o The 'warn_improper' argument in runmodel now defaults to FALSE, omitting the warning that a non-positive defnite matrix was encountered in parameter estimation.
  o SEs are now set to NA if the Fischer information matrix could not be inverted normally
  o Added an argument 'approximate_SEs' to runmodel to allow for SEs to be approximated using a pseudoinverse

Changes in Version 0.11
  o Optimised lambda starting value choice
  o Changed warning for when a peusdoinverse was used in model estimation.
  o Added 'threshold' argument to the matrix(...) function for significance thresholding
  o Fixed a bug in psychonetrics:::emergencystart

Changes in Version 0.10.3
  o Added a 'bootstrap' argument to var1() family to facilitate bootstrapping the data
  o Fixed a bug where the saturated log-likelihood under FIML estimation could be incorrect

Changes in Version 0.10.2
  o Built in a check to find NA sample covs
  o added diag argument to getmatrix to obtain diagonal
  o diagonal elements are now also thresholded when using getmatrix(..., threshold = ...)

Changes in Version 0.10.2
  o Added 'threshold' argument to getmatrix()
  o Adjusting p-values is now done by default only for the tested p-values. This means that the number of tests is assumed to be the number of parameters of interest (matrices that are to be pruned), not the total number of parameters. Previous behavior can be reproduced with mode = "all" in prune(..).
  o panelvar and panelgvar now support arguments within_latent and between_latent

Changes in Version 0.10.1
  o Fixed a bug in 'prune' which did not allow intercept/mean vectors to be pruned

Changes in Version 0.10
  o ml_tsdlvm1 now orders data by idvar if beepvar is not supplied.
  o Added 'CIplot' function
  o Standardizing in ts_dlvm1 is now more stable.
  o dlvm1 now uses observed variable names as latent variable names when appropriate.
  o Fixed a bug with the beepvar argument in psychonetrics

Changes in Version 0.9:
  o Changed 'rel.tol=1e-10' in the nlminb optimizer to be in line with lavaan
  o Added 'warn_improper' argument to runmodel(..)
  o The argument 'return_improper' now defaults to TRUE
  o Optimizer no longer uses a spectral shift when inverting a semi-positive definite matrix
  o Detection of non positive definite matrices is now done faster and should lead to less problems
  o Added the 'bounded' argument to runmodel() to define if bounded estimation should be used (defaults to TRUE)
  o Diagonals of symmetrical matrices can no longer be estimated to be negative (avoiding Heywood cases, although doing this with a Cholesky decomposition is nicer!)
  
Changes in Version 0.8.1:
  o The nlminb estimator now uses more iterations.

Changes in Version 0.8:
  o The log determinant is now computer better to be able to include fit measures at higher model complexities
  o The 'return_improper' argument in runmodel( ) now returns improper estimates without trying different starting values
  o Fixed a bug in meta_varcov when using individual estimates of the sampling variation
  o Updated optimizer default control parameters

Changes in version 0.7.6:
  o Model estimations that used improper estimation (pseudoinverse of variance-covariance matrix) now return with an error unless return_improper = TRUE in runmodel()
  o Equality-free MIs are now also computed when all edges are included

Changes in version 0.7.5:
  o Fixed a bug with nu_zeta being constrained in multigroup LGC models.
  o factorscores now supports multi group models

Changes in version 0.7.3:
  o Added the 'covariates_as' argument to latentgrowth() to model covariates with regressions (now default) or covariances

Changes in version 0.7.2:
  o Fixed a bug with removing diagonal elements of sigma_epsilon with single indicators
  o Fixed another bug with models with only one free indicator
  o Added the partialprune function for partially pruning multi-group models


Changes in version 0.7.1:
  o Fixed a bug for Solaris

Changes in version 0.7:
  o Major changes
    o Major restructuring of underlying core code. Most vital functions have been translated to C++, leading to a large speedup!
    o Added C++ based optimizers cpp_L-BFGS-B, cpp_CG, cpp_SANN, and cpp_Nelder. These are faster but slightly less stable than nlminb (now the default optimizer).
    o Verbose now defaults to FALSE everywhere. This can be set with the setverbose function for a model
    o Added meta-analysis model for varcov family (meta_varcov)
    o The ml_tsdlvm1 function now allows for multi-kevek tsdlvm1 models (dlvm1 models) to be specified using syntax familiar to those using mlVAR and graphicalVAR
  o Minor changes
    o Numerous small bugfixes and improvements (e.g., better starting values)
    o Added function 'fullFIML' to use true FIML computing the likelihood per row
    o Changed 'WLS.V' to 'WLS.W'
    o Several warning messages have been updated
  

Changes in version 0.6:
  o The 'dlvm1' model family now also returns the implied latent variance-covarriance matrix as 'sigma_eta_within'
      o The latent lag-1 matrix is also returned as 'sigma_eta_within_lag1'
  o The dlvm1 model family now no longer requires a 'lambda' matrix to be specified (will default to a panelvar model)
  o Most model families now support the 'standardized' argument, which can be set to 'z' for z-scores (helps convergence) or 'quantile' for a semiparametric transformation
  o Added the ml_lvm family for two-level random intercept latent variable models
  o Added the simplestructure function to easily make a lambda matrix
  o addalpha in modelsearch now works as expected
  o addalpha and prunealpha now default to 0.01 in 'modelsearch'
  o recursive now defaults to FALSE in 'prune'

Changes in version 0.5.1:
  o Fixed a bug with responses being missing when summary statistics are used in Ising()
  o Fixed a bug with covtype sometimes being set to UB when corinput = TRUE
  o Added DOI to description field

Changes in version 0.5.0:
  o The Ising model is now supported (only ML estimation) through the Ising() model function
  o Added the covtype option to several models, controlling if maximum likelihood or unbiased estimates are used for the input covariances
  o Added the function 'covML' for maximum likelihood covariance estimates

Changes in version 0.4.1:
  o Small fix for CRAN checks

Changes in version 0.4:
  o type = "cor" is now supported in varcov, with rho representing the correlations and SD the diagonal standard deviations matrix.
      o The 'corr' function is now implemented as shorthand for varcov(..., type = "cor")
  o The scale of the Fisher information matrix has been adjusted to portray unit information to be similar to Lavaan
  o The getVCOV function has been added to obtain the estimated asymptotic var-cov matrix of the parameters.
  o The meanstructure can now be ignored using meanstructure = TRUE in the following model families:
    - varcov
  o A correlation matrix can now be used as input (detected or set with corinput = TRUE) for the following families:
    - varcov (type = "ggm" and type = "cor")
  o The WLS estimator will now not investigate means when meanstructure is ignored, and variances when a correlaton matrix is used as input.
    - The WLS weights matrix must be of the appropriate dimensions!
    - The WLS.V matrix will no longer be adjusted for missing means.
    - Added 'startEPC' argument to stepup and freepar
  o Added the 'modelsearch' function for extensive stepwise model search
  o Fixed several bugs and improved starting values in several models

Changes in version 0.3.3:
  o prune() now removes diagonal values of temporal effects
  o psychonetrics now requires R 3.6
  o Some C++ fixes for Solaris
  
Changes in version 0.3.2:
	o The parameters function now invisibly returns the parameter estimate data frame
	o The MIs function now invisibly returns a data frame with MI estimates
	o fit now invisibly returns a data frame with fit measure estimates


Changes in version 0.3.1:
	o Several help-files are now updated with executable examples

Changes in version 0.3.0: 
  o First version to be submitted to CRAN