#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#                                       #
# Changes/Updates to the catIrt Package #
#                                       #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

****************************************
* Changes to catIrt 0.4-0 (2013-04-24) *
****************************************

o  Added "it.range" argument to the catStart/catMiddle list and to the itChoose
   function to restrict the difficulty parameters (in a binary response model)
   to be within a particular range.

o  Changed some code to be neater, cleaner, etc.

o  Fixed a bug in catIrt, so that letting catStart$n.select or catMiddle$n.select
   be anything other than 1 would actually select between the top "n.select" items.

o  Fixed a bug in simIrt so that the parameters did not need to have
   column names for the function to correctly work.

o  Fixed a bug in termGLR, so that the stopping rule would use the "range"
   sub-argument of catMiddle rather than the depricated "int" sub-argument to
   calculate the likelihoods.

o  Fixed a bug in termCI, so that the stopping rule would only consider the
   last value of SEM when forming a confidence interval.

o  Fixed a small bug in print.summary.catIrt, so that the function would check
   the n.start argument of catStart (rather than the n.it argument) to determine
   how many starting items that the CAT administered.

o  Fixed several bugs in catMiddle, so that the CAT would choose the starting
   scoring method if the MLE wasn't achieved (and catMiddle$select = "MLE"),
   and wouldn't error if the starting scoring method was "step".

o  Fixed a bug whereby the catIrt function was not adequately determining
   if the first vector of item parameters was the item number.  Now,
   the item number can ONLY be attached if the parameters are outputted from
   a catIrt function.


****************************************
* Changes to catIrt 0.3-0 (2012-09-12) *
****************************************

  o  Added more termination criteria, including when the Fisher Information
     exceeds a particular threshold or when either the Fisher Information or
     SEM change less than a particular amount.  Note that the original v.term
     argument is now obsolete and replaced with p.term and i.term arguments.

  o  Added WFI (Weighted Fisher Information) function (not exported) and added
     two item selection criteria (Posterior WFI and Likelihood WFI) which both
     use the WFI function.

  o  Added IKL (Integrated KL Divergence) function (not exported) and added
     two item selection criteria (Fixed Integral KL and Variable Integral KL)
     which both use the IKL function.

  o  Changed the arguments to itChoose and exported the function so that anybody
     can use itChoose in his/her own CAT algorithm.

  o  Changed simIrt to return params with the item numbers cbind-ed onto the front
     of them, which is required for the itChoose function.

  o  The "var" option of catTerm$term no longer exists and is replaced with
     "precision" and "info".

  o  Changed catMiddle$int to catMiddle$range to reduce confusion.

  o  Changed the argument CI to conf.lev in plot.catIrt so that catIrt and
     plot.catIrt have consistent names for confidence intervals.

  o  Changed thetas in catIrt and simIrt to theta to keep consistency with other
     functions.

  o  Changed catStart$init.thet to catStar$init.theta to reduce confusion.

  o  Plotting the individual CAT progression is more customizable.

  o  The bank info functions/SEM functions are no longer able to be customized
     to prevent plotting conflicts.

  o  Fixed the SEM for WLE/BME/EAP estimation to be appropriate for the particular
     estimation methods, and added numDeriv as a required package for BME
     variance estimation.

  o  Exported [.mod and [<-.mod functions outside of the catIrt function, where
     mod is any of the IRT models.

  o  Changed a lot of the manual entries for clarity and consistency, and added a
     manual entry for the itChoose function.


****************************************
* Changes to catIrt 0.2-1 (2012-07-03) *
****************************************
  o  The format of the catIrt input function was rewritten a bit.

  o  Rather than putting everything as arguments into catSim,
     modules (startCat, middleCat, termCat) were created so that the
     package can be easily updated in the future.

  o  A Sympson-Hetter addendum to the catIrt function was added, in the hope
     of eventually writting a Sympson-Hetter function.

  o  The simple version of the GLR stopping rule was added for classification
     CAT rather than just the original SPRT method.

  o  The confidence interval stopping rule was added for classification CAT.

  o  The call was deleted to the output of catIrt because the process of updating
     the function is too tedious to make it worth while.

  o  Added an option for theta estimation from the full bank of items.  If
     EAP was selected and failed to estimate theta (due to underflow),
     full-test estimation proceeds using the BME method.


****************************************
* Changes to catIrt 0.1-1 (2011-04-02) *
****************************************
  o  Most of the functions were completely rewritten for speed.

  o  summary.catIrt and plot.catIrt were rewritten, and print commands were 
     added.

  o  summary.catIrt and print.catIrt now can display each simulees CAT
     progression.

  o  S3 method FI was added to make the code clearer.

  o  S3 classes "brm" and "grm" were added, and class "cat" was changed to 
     class "catIrt."

  o  The argument "int" was added to catIrt, and a tiny bit of code was 
     rewritten so that cat.thet estimates could not exceed int on either side.

  o  The call was added to the output of catIrt so that the update command
     would work.

  o  The eapSE command was added, and now catIrt gives the posterior
     standard deviation if score = "EAP".