Release 1.4.0:

This version was released in Dec. 2017 to accompany paper: 

Ordonez, C., Oviedo de la Fuente, M., Roca-Pardiñas, J.,  Rodriguez-Perez, J. R. (2017).
 Determining optimum wavelengths for leaf water content estimation from reflectance: A 
 distance correlation approach. \emph{Chemometrics and Intelligent Laboratory Systems.}
 \url{https://doi.org/10.1016/j.chemolab.2017.12.001}. In Press.
New functions implemented: LMDC.select() and LMDC.regression().

'Oviedo de la Fuente M., Febrero-Bande M., Munoz M.P., Dominguez A.
Predicting seasonal influenza transmission using Regression Models with Temporal Dependence'
arXiv:1610.08718, URL  https://arxiv.org/pdf/1610.08718.pdf' 
The functions fregre.gls and fregre.igls implement the functional linear model
with dependent errors (functional GLs and functional iterative GLS respectively).
The "fda.usc/inst/script/" folder contains the code that reproduces the results
of the paper (see the scripts whose prefix is "PLOS").

This package version ALSO companion for the paper:
"Goodness-of-fit tests for the functional linear model
based on randomly projected empirical processes" 
Cuesta-Albertos et al., 2017). The package implements 
goodness-of-fit tests for the functional linear model with scalar response.

A bug in functional derivative by raw derivation 
(function fdata.deriv() with method="diff") has been fixed, thanks to Marcos Matabuena.

A bug in classif.knn() and  predict.classif() has been fixed, thanks to Ricardo Recarey.
A bug in CV.S() function has been fixed, thanks to Miquel Carbajo.
A bug in anova.hetero has been fixed, thanks to Beatriz Bueno.


Release 1.3.0:
This version was released in Nov. 2016 as the working version to
accompany paper: 
'Oviedo de la Fuente M., Febrero-Bande M., Munoz M.P., Dominguez A.
Predicting seasonal influenza transmission using Regression Models with Temporal Dependence'
arXiv:1610.08718, URL  https://arxiv.org/pdf/1610.08718.pdf'
  
Beta version functions to Fit Functional Linear Model Using Generalized Least Squares:
"fregre.gls", "fregre.igls", "GCCV.S", "predict.fregre.gls" and "predict.fregre.igls"
Internal function "auxiliar", "corSigma", "corStruct".

The functionality of the functions "+.fdata", "-.fdata", "*.fdata"
an "/.fdata" has been improved.

S3 functions for fdata class calculations: "is.na.fdata" and "anyNA.fdata".
Function "count.na.fdata"  returns a vector with the number of "NA" of each curve.

Internal function "count.na" is deprecated.

fdata function converts "xtab" and "ftable" class object into "fdata" class object.


Release 1.2.3:
Modification of classif.DD function for DDk classifier.
New functions length.fdata, NROW.fdata, NCOL.fdata, gridfdata and rcombfdata.
depth.KFSD  function implements a depth measure based on Kernelized Functional Spatial Depth.   
depth.FSD  function implements a depth measure based on Functional Spatial Depth.   
A bug in fregre.pc() function has been fixed.
A bug in depth.RPD() function has been fixed.

Release 1.2.2:
Warning message in fregre.basis.cv(), fregre.pc.cv() and fregre.pls.cv(), fregre.basis(),
fregre.pc() and fregre.pls() functions when system is computationally singular.
A bug in predict.classif() function using a fitted object by classif.knn() has been fixed.
The argument "trim" is modified from 0.1 to 0.25 in the function quantile.outliers.trim
The internal distance functions: euclidean, manhattan, minkowski and maximum allow a vector of weights.
In classif.DD function, the  polynomial classifier ("DD1", "DD2" and "DD3") uses the original procedure
 proposed by Li et al. (2012), rotating the DD-plot (to exchange abscise and ordinate). The procedure 
 extend to multi-class problems by incorporating the method of majority voting in the case of polynomial
 classifier and the method One vs the Rest in the logistic case ("glm" and "gam").
The fregre.gkam function only considers  functional covariates (not implemented for non-functional covariates). 
In the depth.FM function it has been renamed the argument "dfunc" by "dfunc2".
subset.fdata is a wrapper function of subset function.


Release 1.2.1:
The functions dcor.xy, dcor.test(), bcdcor.dist() and dcor.dist() 
(wrapper function of energy package) are added.
fregre.gsam() function can be used without smoothed vairables.
A bug in "selec" argument of summary.fregre.gkam() has been fixed.
A bug in "h" argument of fregre.plm() has been fixed.
A bug in sigma="vexponential" of rproc2fdata() has been fixed. 
The default values depth.RPp, depth.RP and rproc2fdata() have been modified.
A classif.DD function uses
 the same bandwidth "h" for k groups in modal depth.
 the same projections "proj" for k groups in RP depth.
A bug in predict.fregre.gsam() when PLS are previously estimated using norm=TRUE has been fixed.


Release 1.2.0:
New functions, 
classif.DD, fits Nonparametric Classification Procedure Based on DD–plot (depth-versus-depth plot) for G groups.
depth.FMp, depth.modep and depth.RPp functions provide the depth measure for a list of p--functional data objects.
metric.ldata, computes distance for a list of p--functional data objects.
metric.hausdorff, computes hausdorff distance.
Multivariate depth functions have been renamed: "depth." to "mdepth.".


Release 1.1.0:
New functions, 
fregre.basis.fr fits functional response model.
metric.kl computes Kullback--Leibler distance.
anova.onefactor: tests one--way anova model for functional data.
split.fdata, unlist.fdata: A wrapper functions of the split and unlist function for functional data.
func.mean.formula computes the mean curve for the each level of grouping variable.

New dataset, Mithochondiral calcium overload (MCO) data set.

New utilities, 
fdata converts arrays of 3 dimension in a functional data of 2 dimension plot.fdata allows functional data of 2 dimension.
The functions fdata2ppc, fdata2ppls, fregre.ppc, fregre.ppls, fregre.ppc.cv, fregre.ppls.cv 
are deprecated in favor of fdata2pc,fdata2pls, fregre.pc, fregre.pc.cv, fregre.pls, fregre.pls.cv. These latter functions include penalty arguments. 


Release 1.0.5:
"pls" package dependency has been removed.
A bug in outlier.ltr() function has been fixed in the case of the rownames (of fdata) can not be converted to numeric values.
A bug in fregre.lm() function has been fixed in the case of one of the covariates is a factor and penalization argument is required (rn or lambda greater than zero). 
The new argument "lambda" in fregre.lm() penalizes the derivative of second order of the functional data.
New arguments in predict.fregre.fd() and predict.fregre.lm() produce confidence or prediction intervals at the specified level mimicking predict.lm().
New argument "verbose" in min.basis(), min.np() and rproc2fdata().
The argument "mu" in rproc2fdata() allows vector and also fdata class object.

Release 1.0.4:
A bug in fregre.pls() function has been fixed in the case of the FPLS basis are created with the argument norm is TRUE (the curves are centred and scaled). 
A bug in outliers.depth.trim() function has been fixed in the case of the procedure requires more than one iteration step.

Release 1.0.3 introduces new function classif.depth() that fits a nonparametric classification procedure based on maximum depth measure.
Penalized FPC an FPLS basis are computed in create.pc.basis and create.pls.basis by the new arguments "lambda" and "P".
A bug in predict.fregre.fd() function has been fixed (in the case of the "object" is fitted using funtional partial least square basis). 

Release 1.0.2 introduces new functions:
New argument "se.fit" in predict.fregre.fd() and predict.fregre.lm() function.
A bug in CV.S() function when "y" argument is a fdata object has been fixed. 
This "bug" has involved the min.np() function.
In metric.lp() function NA values are returned, if the fdata has NA's values. 
In metric.lp() function supremum distance is computed, if "lp" argument is 0.

Release 1.0.1 
New functions:
New depth functions and its corresponding shortcut functions (see help(Descriptive) form more details):
 depth.SD() provides the simplicial depth measure for bivariate data.
 depth.PD() provides the depth measure using random projections for multivariate data.
 depth.MhD() provides the Mahalanobis depth measure for multivariate data.
 depth.HD() provides the half-space depth measure for multivariate data.
It introduces a new functions for functional PC and PLS regression:
fregre.ppc,fregre.ppls, fregre.ppc.cv,fregre.ppls.cv,
and the auxiliary functions:  fdata2ppc,fdata2ppls,P.penalty.
The function rber.gold() has been renamed by rwild() function. 
Now, rwild() contructs the Wild bootstrap residuals. 
order.fdata() is a wrapper function of order function.

New arguments and options:
New arguments "wild" and "type.wild" in fregre.bootstrap().
In fregre.glm(), fregre.gsam(), classif.glm2boost(), classif.gsam2boost() the
"fdataobj" argument allows a multivariate data or functional data.
fregre.lm() allows penalization by "rn" parameter (ridge regression).
fregre.pc() and fregre.basis() allow weighted least squares by "weights" argument.

Correction of bugs:
A bug in "draw" argument of fdata.bootstrap() has been fixed.
A bug in predict.classif() function ussing a fitted object by classif.knn() has been fixed.
A bug in create.pc.basis() function when "l" argument has length 1 has been fixed. 
This "bug" has involved the following functions: fregre.lm(), fregre.glm() and fregre.gsam().


Release 1.0.0 was released in Oct. 2012 as the working version to
accompany 'Febrero-Bande, M. and  Oviedo de la Fuente, M. (2012).
'Statistical Computing in Functional Data Analysis: The R Package fda.usc.
Journal of Statistical Software, 51(4), 1-28., URL http://www.jstatsoft.org/v51/i04/.'
New functions added: 
    depth.RT() implements a random Tukey depth (RT)
	and its corresponding  some shortcut functions.
    metric.dist() methods as wrappers for dist(),
New arguments in depth.FM(), depth.RP(), depth.mode() and fdata().
The functions: fregre.glm(), fregre.gsam(), fregre.gkam(), classif.np(),
classif.glm(), classi.glm() allow functional and multivariate analysis. 


Release 0.9.8.1 introduces new functions flm.Ftest() and 
dfv.test(). The first performs a functional F-test and the 
second implements the test of Delsol, Ferraty and Vieu (2010). 
Function flm.test() now has a better computational performance 
and function Aijr() has been replaced by Adot().
New argument "lambda" in fdata2fd() function.
New argument "rn" in create.pc.basis() function.
fregre.kgam() has been renamed to fregre.gkam().


Release 0.9.8 introduces a new function flm.test() that 
allows to test for the Functional Linear Model with scalar 
response for a given dataset. Is based on the new functions 
PCvM.statistic(), Aijr() and rber.gold().
A bug in fregre.kgam has been fixed.

Release 0.9.7
New functions: 
fregre.kgam(), classif.kgam(), dev.S(),
predict.fregre.kgam(), print.fregre.kgam(), 
summary.fregre.kgam(), fregre.gsam(), 
classif.np(), classif.kgam(), classif.gsam().

New argument "par.S" in: fregre.np(), 
fregre.np.cv(), fregre.plm(), S.NW(), 
S.KNN(), S.LLR().

New attributes for: metric.lp(), 
semimetric.basis() and semimetric.NPFDA()


Release 0.9.6 renames the functions: 
  pc.fdata()-->fdata2pc()
  pls.fdata()-->fdata2pls()
  pc.cor()-->summary.fdata.comp()
  pc.fdata()-->summary.fdata.comp()
It added create.pls.basis(), Math.fdata(), 
Ops.fdata(), Summary.fdata() and
dis.cos.cor() function.

New argument par.S in: fregre.np, 
fregre.np.cv, fregre.plm,
New argument cv in: S.NW,S.KNN, S.LLR,
In metric.lp the argument p now is called lp.



Release 0.9.5 improves fdata.bootstrap() function
(better computational efficiency). It introduces a new 
functions: for Partial Linear Square (pls.fdata(), fregre.pls() 
and fregre.pls.cv()) and Simpson integration (int.simpson()
and int.simpson2()). It modifies the functions metric.lp(), 
inprod.fdata(), summary.fregre.fd() and predict.fregre.fd().

 
Release 0.9.4 added 3 script files: Outliers_fdata.R, 
flm_beta_estimation_brownian_data.R and Classif_phoneme.R.
It has introduced the functions fregre.glm() and 
predict.fregre.glm() which allow fit and predict
respectively Functional Generalized Linear Models.
It has introduced the functions create.pc.basis and 
create.fdata.basis  which allow to create basis objects
for functional data of class "fdata".

Release 0.9 introduces a new function h.default() that 
simplifies the calculation of the bandwidth parameter
"h" in the functions: fregre.np(), fregre.np.cv() and fregre.plm().  
In most of the functions has added a stop control when the
dataset has missing data (NA's). It adds the attribute "call"
to the distance  matrix calculated in metric.lp(), 
semimetric.basis()  and semimetric.NPFDA() functions.