export("FASSMR.kernel.fit",
       "FASSMR.kNN.fit",
       "fsim.kernel.fit", 
       "fsim.kernel.fit.optim",
       "fsim.kernel.test", 
       "fsim.kNN.fit",
       "fsim.kNN.fit.optim",
       "fsim.kNN.test", 
       "IASSMR.kernel.fit", 
       "IASSMR.kNN.fit",
       "lm.pels.fit", 
       "plot.FASSMR.kernel",
       "plot.FASSMR.kNN",
       "plot.fsim.kernel",
       "plot.fsim.kNN", 
       "plot.IASSMR.kernel",
       "plot.IASSMR.kNN",
       "plot.lm.pels", 
       "plot.PVS", 
       "plot.PVS.kernel",
       "plot.PVS.kNN", 
       "plot.sfpl.kernel",
       "plot.sfpl.kNN",
       "plot.sfplsim.kernel",
       "plot.sfplsim.kNN",
       "predict.FASSMR.kernel",
       "predict.FASSMR.kNN",
       "predict.fsim.kernel", 
       "predict.fsim.kNN",
       "predict.IASSMR.kernel", 
       "predict.IASSMR.kNN",
       "predict.lm.pels", 
       "predict.PVS", 
       "predict.PVS.kernel",
       "predict.PVS.kNN", 
       "predict.sfpl.kernel", 
       "predict.sfpl.kNN",
       "predict.sfplsim.kernel",
       "predict.sfplsim.kNN",
       "print.FASSMR.kernel",
       "print.FASSMR.kNN",
       "print.fsim.kernel", 
       "print.fsim.kNN", 
       "print.IASSMR.kernel",
       "print.IASSMR.kNN",
       "print.lm.pels", 
       "print.PVS",
       "print.PVS.kernel",
       "print.PVS.kNN",
       "print.sfpl.kernel",
       "print.sfpl.kNN", 
       "print.sfplsim.kernel",
       "print.sfplsim.kNN",
       "projec", 
       "PVS.fit",
       "PVS.kernel.fit",
       "PVS.kNN.fit", 
       "semimetric.projec",
       "sfpl.kernel.fit",
       "sfpl.kNN.fit",
       "sfplsim.kernel.fit",
       "sfplsim.kNN.fit",
       "summary.FASSMR.kernel",
       "summary.FASSMR.kNN",
       "summary.fsim.kernel", 
       "summary.fsim.kNN",
       "summary.IASSMR.kernel", 
       "summary.IASSMR.kNN",
       "summary.lm.pels", 
       "summary.PVS", 
       "summary.PVS.kernel",
       "summary.PVS.kNN", 
       "summary.sfpl.kernel", 
       "summary.sfpl.kNN",
       "summary.sfplsim.kernel", 
       "summary.sfplsim.kNN")

import(grpreg,ggplot2,parallel)
importFrom("doParallel", "registerDoParallel")
importFrom("DiceKriging", "SCAD")
importFrom("splines", "splineDesign")
importFrom("gtools", "permutations")
importFrom("stats", "fitted", "median", "quantile", "var", "lm", "optim","residuals", "loess","predict")
importFrom("parallelly","availableCores")
importFrom("foreach","foreach","%dopar%")
importFrom("gridExtra", "grid.arrange")
importFrom("tidyr","gather")
S3method(print, fsim.kernel)
S3method(print, fsim.kNN)
S3method(print, sfplsim.kernel)
S3method(print, sfplsim.kNN)
S3method(print, sfpl.kernel)
S3method(print, sfpl.kNN)
S3method(print, FASSMR.kernel)
S3method(print, FASSMR.kNN)
S3method(print, IASSMR.kernel)
S3method(print, IASSMR.kNN)
S3method(print, PVS.kernel)
S3method(print, PVS.kNN)
S3method(print, lm.pels)
S3method(print, PVS)

S3method(summary, fsim.kernel)
S3method(summary, fsim.kNN)
S3method(summary, sfplsim.kernel)
S3method(summary, sfplsim.kNN)
S3method(summary, sfpl.kernel)
S3method(summary, sfpl.kNN)
S3method(summary, FASSMR.kernel)
S3method(summary, FASSMR.kNN)
S3method(summary, IASSMR.kernel)
S3method(summary, IASSMR.kNN)
S3method(summary, PVS.kernel)
S3method(summary, PVS.kNN)
S3method(summary, lm.pels)
S3method(summary, PVS)

S3method(predict, fsim.kernel)
S3method(predict, fsim.kNN)
S3method(predict, sfplsim.kernel)
S3method(predict, sfplsim.kNN)
S3method(predict, sfpl.kernel)
S3method(predict, sfpl.kNN)
S3method(predict, FASSMR.kernel)
S3method(predict, FASSMR.kNN)
S3method(predict, IASSMR.kernel)
S3method(predict, IASSMR.kNN)
S3method(predict, PVS.kernel)
S3method(predict, PVS.kNN)
S3method(predict, lm.pels)
S3method(predict, PVS)


S3method(plot, fsim.kernel)
S3method(plot, fsim.kNN)
S3method(plot, sfplsim.kernel)
S3method(plot, sfplsim.kNN)
S3method(plot, sfpl.kernel)
S3method(plot, sfpl.kNN)
S3method(plot, FASSMR.kernel)
S3method(plot, FASSMR.kNN)
S3method(plot, IASSMR.kernel)
S3method(plot, IASSMR.kNN)
S3method(plot, PVS.kernel)
S3method(plot, PVS.kNN)
S3method(plot, lm.pels)
S3method(plot, PVS)
