Changes from ver 1.0-4 to ver 1.0-5  (2020-11-30)

1) Bug fix for summary.gsm regarding p-values for smooth terms
	* Previously returned incorrect chi-square and p-values
	* Now uses correct chi-square (or F-test) and p-values

2) Bug fix for penalty_tps with two-dimensional predictor
	* Previously used is.na() instead of is.infinite() resulting in NaN
	* Thanks to Joseph Antonelli at Florida for discovering the bug

3) Improvements to pseudo-significance testing for smooth terms
	* Previously allowed for df < 1, which could result in artificially
	  small p-values for effect functions with df < 1
	* Now uses pmax(df,1) for significance tests to avoid this issue

4) New argument "df" for the "sm" function (supplement to "spar" and "lambda").
	* Fits a smooth with a specified equivalent degrees of freedom.
	* Equivalent degrees of freedom = the trace of the smoother matrix.

5) New argument "bernoulli" to the "basis_poly", "penalty_poly" and "ss" functions
	* If TRUE (default) uses scaled Bernoulli polynomials for kernel
	* If FALSE produces classic definition of smoothing spline

6) Internal improvements for "gsm" with family = NegBin and unknown theta
	* Previously used nlm function to optimize the log-likelihood
	* Now uses theta.mle function, which is faster and more stable

7) Internal improvements for "psolve" when checking symmetry of a
	* Previously used isSymmetric(a) to check for symmetry
	* Now uses isSymmetric(unname(a)) to check for symmetry 

8) Added DOI hyperlink for Helwig (2020+) JCGS





Changes from ver 1.0-3 to ver 1.0-4  (2020-08-09)

1) Bug fix in "gsm" with family = NegBin regarding SE calculation
	* Previously multiplied the se.lp by sqrt(1/theta)
	* Now correctly uses dispersion parameter of one

2) Bug fix in "gsm" with family = NegBin and user supplied spar/lambda
	* Previously resulted in error due to lack of defining est.theta
	* Now correctly estimates theta with a fixed lambda

3) Added more tuning possibilities for "gsm" function
	* PQL (penalized quasi-likelihood) tuning is now available
	* GACV and ACV tuning are now available for non-canonical links

4) Internal improvements to "gsm" for family = NegBin
	* Added suppressWarnings() to eliminate warnings from nlm 
	* Added use of tryCatch to handle any errors product by nlm

5) Added new reference: Helwig (2020+) JCGS




Changes from ver 1.0-2 to ver 1.0-3  (2020-07-06)


1) Bug fix in "gsm" with user supplied weights
	* Previously used weights for likelihood evaluation but not fitting
	* Now uses correct weights for IRPLS algorithm fitting

2) Bug fix in "check_control"
	* Previously only allowed for searching spar between 0 and 1
	* Now allows for any bounds that satisfy lower < upper

3) Bug fix in "print" for models with fixed spar / lambda
	* Previously didn't save method and printed GCV criterion
	* Now prints correct criterion when spar / lambda is provided

4) Bug fix in "summary.gsm" for models with nominal variables that have 2 levels
	* Previously resulted in an error during the SE calculation
	* Now correctly calculates SE for nominal variables have 2 levels

5) Post-processing of GCV and OCV for "gsm" with gaussian response
	* Previously returned non-constant portion of GCV / OCV
	* Now matches "sm" output:  cv.crit.new = 2*cv.crit.old + mean(y^2) 

6) Internal computational improvements to "gsm" function
	* Previously tuned model and then refit w/ optimal parameters
	* Now tuning returns all relevant output w/o refitting

7) Slight update to package name (to clarify "nonparametric regression")
	* Previous name: Nonparametric Regression
	* Updated name:  Nonparametric Regression via Smoothing Splines




Changes from ver 1.0-1 to ver 1.0-2  (2020-05-04)

1) Bug fix in "summary.gsm" for models with null space dimension of one
	* Previously resulted in an error during the SE calculation
	* Now correctly calculates the null space SE with nsdf == 1

2) Bug fix in "summary.gsm" for binomial with factor response variable
	* Previously resulted in an error when calculating deviance residuals
	* Now correctly calculates deviance residuals with factor responses 

3) Bug fix in "predict.sm" and "predict.gsm" for multi-dimensional thin-plates
	* Previously resulted in an error when checking new data
	* Now correctly checks new data and creates predictions

4) Bug fix in "pred_rkhs" (internal function) which affected TPS predictions
	* Previously resulted in error due to lack of initializing Qcont
	* Now correctly initializes Qcont, which avoids the error

5) Improvements to "plotci" function for plotting 'x' as a factor
	* Previously converted factors to integers for plotting
	* Now plots factors with points and error bars (default)

6) Updates to references (added details for Helwig SAGE RMF entry)




Changes from ver 1.0-0 to ver 1.0-1  (2019-12-09)

1) Improvement to "gsm" function for binomial responses
	* Now allows the response variable to be a factor
	* First level is a failure, and others are successes

2) Bug fix in "build_rkhs" for parametric effects of factors
	* Previously provided incorrect namespace to model.matrix
	* Now correctly forms model.matrix for parametric factors

3) Bug fix in "sm" and "gsm" for tprk = FALSE and rank deficient knots
	* Previously produced an error if 1 unique knot per predictor
	* Now correctly computes solution in such cases

4) Bug fix in "summary.gsm" for deviance residuals
	* Previously was returning working residuals from fit object
	* Now correctly outputs the deviance residuals from summary

5) Bug fix in "ss" and "summary.ss" for models with m = 1 and/or and periodic = TRUE
	* Previously resulted in an error during post-processing
	* Now correctly post-processes the result with m = 1 and/or periodic = TRUE

6) Improvement to knot selection method for "ss" when all.knots = FALSE
	* Previously used quantiles of x (instead of observed x)
	* Now uses the observed x values to ensure a "true" smoothing spline

7) Bug fix in "sm" and "summary.sm" for models with null space dimension of one
	* Previously resulted in an error during post-processing
	* Now correctly post-processes the result with nsdf == 1

8) Improvement to "plot.ss" for models with non-equidistant x values
	* Previously fit and CI were plotted at observed x values
	* Now fit and CI are plotted at equidistant x values

9) Updates to references (added Helwig SAGE RMF entry)