----------------------------------------------------------------
mirt 0.4.0
----------------------------------------------------------------

* Added itemfit() and personfit() functions for uni and multidimensional models. Within itemfit
  empirical response curves can also be plotted for unidimensional models

* Wrapped itemplot() and fscores() into S3 function for better documentation. Also response curve
  now are all contained in individual plots

* Added free.start list option for all estimation functions. Allows a quicker way to 
  specify free and fixed parameters

* Added iteminfo() and extract.item() to calculate the item information and extract 
  desired items

* Multiple group estimation available with the multipleGroup() function. Uses the EM and MHRM
  as the estimation engines. The MHRM seems to be faster at two factors+
  though and naturally should be more accurate, therefore it is set as the default

* wald() function added for testing linear constraints. Useful in situations
  for testing sets of parameters rather than estimating a new model for a likelihood ratio test

* Methods that use the MHRM can now estimate the nominal, gpcm, mcm, and 4PL models

* fscores computable for multiple group objects and in general play nicer with missing data
  (reported by Judith Conijn). Also, using the options full.scores = TRUE has been optimized
  with Rcpp

* Oblique rotation bug fix for fscores and coef (reported by Pedro A. Barbetta)  

* Added the item probability equations in the ?mirt documentation for reference

* General bug fixes as usual that were spawned from all the added features. Overall, stay frosty.

----------------------------------------------------------------
mirt 0.3.1
----------------------------------------------------------------

* Individual classes now correspond to the type of methods: ExploratoryClass, 
  ConfirmatoryClass, and MultipleGroupClass

* plot and itemplot now works for confmirt objects

* mirt can now make use of confmirt.model specified objects and hence be confirmatory as well 

* stochastic estimation of factor scores removed entirely, now only quadrature based methods
  for all objects. Also, bfactor returned objects now will estimate all the factors scores instead
  of just the general dimension

* Standard errors for mirt now automatically calculated (borrowed from running a tweaked
  MHRM run)

----------------------------------------------------------------
mirt 0.3.0
----------------------------------------------------------------

* radically changed the underlying mechanisms for the 
  estimation functions and in doing so have decided that polymirt() was 
  redundant and could be replaced completely by calling confmirt(data, number_of_factors). The
  reason for the change was to facilitate a wider range or MIRT models and to allow for easier
  extensions to future multiple group analysis and multilevel modelling 

* new univariate and MV models are available, including the 1-4 parameter logistic
  generalized partial credit, nominal, and multiple choice models. These are called by specifying a character
  vector called 'itemtype' of length nitems with the options '2PL','3PL','4PL','graded','gpcm',
  'nominal', or 'mcm'; use 'PC2PL' and 'PC3PL' for partially-compensatory items. If itemtype = '1PL' or 'Rasch', 
  then the 1-parameter logistic/1-parameter ordinal or Rasch/partial credit models are estimated for 
  all the data. The default assumes that items are either '2PL' or 'graded', as before. 

* flexible user defined linear equality restrictions may be imposed on all estimation functions, 
  so too can prior parameter distributions, start values, and choice of which parameters to 
  estimate. These all follow these general 2 steps: 

    1) Call the function as you would normally would but use, for example, 
       mirt(data, 1, startvalues = 'index') to return the start values as they are indexed
    2) Edit them as you please (without changing the structure), then input them back into 
       the function as mirt(data, 1, startvalues = editedstartvalues). 

  This is true for the parprior (MAP priors), constrain (linear equality constraints), and 
  freepars (parameters freely estimated), each with their own little quirk. All inputs are lists
  with named parameters for easy identification and manipulation. Note that this means that
  the partial credit model and Rasch models may be calculated 
  as well by modifying either the start values and constraints accordingly (e.g., constrain all
  slopes to be equal to 1/1.702 and not freely estimated for the classical Rasch model, or all equal 
  but estimated for the 1PL model)

* number of confmirt.model() options decreased due to the new way to specify item types, startvalues, prior
  parameter distributions, and constraints

* plink package has not kept up with item information curves, so I'll implement my own for now.
  Replaced plink item plots from 'itemplots' function with ones that I rolled

* package descriptions and documentation updated

* coef() now prints slightly different output, with the new option 'allpars = TRUE' to display all
  the item and group parameters, returned as a list 

* simdata() updated to support new item types 

* more accurate standard errors for MAP and ML factor scores, and specific factors in bfactorClass
  objects can now be estimated for all methods


----------------------------------------------------------------
mirt 0.2.6-1
---------------------------------------------------------------

* dropped the ball and had lots of bug fixes this round. Future
  commits will avoid this problem by utilizing the testthat package
  to test code extensively before release

* internal change in confmirt function to move MHRM engine outside the 
  function for better maintenance

* theta_angle added to mirt and polymirt plots for changing the viewing angle 
  w.r..t theta_1 

* null model no longer calculated when missing data present

* fixed item slope models estimated in mirt() with associated standard errors

----------------------------------------------------------------
mirt 0.2.6
---------------------------------------------------------------

* null model computed, allowing for model statistics such as TLI

* documentation changes

* many back end technical details about estimation moved to technical lists

* support for all GPArotation methods and options, including Target rotations

* polymirt() uses confmirt() estimation engine

* 4PL support for mirt() and bfactor(), treating the upper bound as fixed

* coef() now has a rotate option for returning rotated IRT parameters

----------------------------------------------------------------
mirt 0.2.5
---------------------------------------------------------------

* Fixed translation bug in the C++ code from bfactor() causing illegal 
  vector length throw

* Fixed fscores() bug when using polychotomous items for mirt() and 
  bfactor()

* pass rotate='rotation' from mirt and polymirt to override default 
  'varimax' rotation at estimation time (suggested by 
  Niels Waller)

* RMSEA, G^2, and p set to NaN instead of internal placeholder when 
  there are missing data

* df adjusted when missing data present  

* oblique rotations return invisible factor correlation matrix

----------------------------------------------------------------
mirt 0.2.4
---------------------------------------------------------------

* degrees of freedom correctly adjusted when using noncompensatory
  items

* confmirtClass reorganized to work with S4 methods, now work
  more consistently with methods. 

* fixed G^2 and log-likelihood in logLik() when product terms included

* bugfix in drawThetas when noncompensatory items used

---------------------------------------------------------------
mirt 0.2.3
---------------------------------------------------------------

* bugfixes for fscores, itemplot, and generic functions

* read.mirt() added for creating a suitable plink object

* mirt() and bfactor() can now accommodate polychotomous items using 
  an ordinal IRT scheme

* itemplot() now makes use of the handy plink package plots, giving a 
  good deal of flexibility. 

* Generic plot()'s now use lattice plots extensively

----------------------------------------------------------------
mirt 0.2.2
----------------------------------------------------------------

* Ported src code into Rcpp for future tweaking. 

* Added better fitted() function when missing data exist (noticed by 
  Erin Horn)

----------------------------------------------------------------
mirt 0.2.1
----------------------------------------------------------------

* ML estimation of factor scores for mirt and bfactor

* RMSEA statistic added for all fitted models

* Nonlinear polynomial estimation specification for confmirt models, now
  with more consistent returned labels

* Provide better identification criteria for confmirt() (suggested by 
  Hendrik Lohse)

----------------------------------------------------------------
mirt 0.2.0
----------------------------------------------------------------

* parameter standard errors added for mirt() (1 factor only) and bfactor() models

* bfactor() values that are ommited are recoded to NA in summary and coef 
  for better viewing

* 'technical' added for confmirt function, allowing for various tweaks and 
  varying beta prior weights

* product relations added for confmirt.model(). Specified by enclosing in brackets
  and using an asterisk 

* documentation fixes with roxygenize  

----------------------------------------------------------------
mirt 0.1.20
----------------------------------------------------------------

* allow lower bound beta priors to vary over items (suggested by James Lee)

----------------------------------------------------------------
mirt 0.1.6
----------------------------------------------------------------

* bias fix for mirt() function (noticed by Pedro Barbetta)
