useDynLib(sensitivity,.registration=TRUE)

import(boot)

importFrom("grDevices", "dev.interactive", "dev.new", "devAskNewPage")
importFrom("graphics", "abline", "axis", "barplot", "box", "legend",
           "lines", "par", "plot", "points", "polygon", "segments",
           "text", "title", "arrows")
importFrom("stats", "coefficients", "cor", "cor.test", "cov", "dist",
           "dnorm", "dunif", "fft", "fitted", "formula", "lm",
           "model.matrix", "nlm", "optimize", "pnorm", "predict",
           "qnorm", "quantile", "rnorm", "runif", "sd", "update", 
           "var", "dbeta", "dexp", "dgamma", "dlnorm", "dweibull",
           "integrate","smooth.spline","ecdf")
importFrom("utils", "combn", "methods") 
importFrom("methods", "is")

export(ask)
export(tell)
export(plotFG)
export(scatterplot)

export(sobol.fun, ishigami.fun, morris.fun, atantemp.fun, campbell1D.fun)

export(src)
S3method(print, src)
S3method(plot, src)

export(pcc)
S3method(print, pcc)
S3method(plot, pcc)

export(morris)
S3method(tell, morris)
S3method(print, morris)
S3method(plot, morris)
export(plot3d.morris)

export(sobol)
S3method(tell, sobol)
S3method(print, sobol)
S3method(plot, sobol)

export(sobolEff)
S3method(tell, sobolEff)
S3method(print, sobolEff)
S3method(plot, sobolEff)

export(sobol2002)
S3method(tell, sobol2002)
S3method(print, sobol2002)
S3method(plot, sobol2002)

export(sobol2007)
S3method(tell, sobol2007)
S3method(print, sobol2007)
S3method(plot, sobol2007)

export(soboljansen)
S3method(tell, soboljansen)
S3method(print, soboljansen)
S3method(plot, soboljansen)

export(sobolmartinez)
S3method(tell, sobolmartinez)
S3method(print, sobolmartinez)
S3method(plot, sobolmartinez)

export(soboltouati)
S3method(tell, soboltouati)
S3method(print, soboltouati)
S3method(plot, soboltouati)

export(sobolmara)
S3method(tell, sobolmara)
S3method(print, sobolmara)
S3method(plot, sobolmara)

export(sobolroalhs)
S3method(tell, sobolroalhs)
S3method(print, sobolroalhs)
S3method(plot, sobolroalhs)

export(sobolowen)
S3method(tell, sobolowen)
S3method(print, sobolowen)
S3method(plot, sobolowen)

export(sobolGP)
S3method(ask, sobolGP)
S3method(tell, sobolGP)
S3method(print, sobolGP)
S3method(plot, sobolGP)

export(sobolTIIlo)
S3method(tell, sobolTIIlo)
S3method(print, sobolTIIlo)
S3method(plot, sobolTIIlo)
S3method(plotFG, sobolTIIlo)

export(sobolTIIpf)
S3method(tell, sobolTIIpf)
S3method(print, sobolTIIpf)
S3method(plot, sobolTIIpf)
S3method(plotFG, sobolTIIpf)

export(fast99)
S3method(tell, fast99)
S3method(print, fast99)
S3method(plot, fast99)

export(sobolMultOut)
S3method(print, sobolMultOut)
S3method(plot, sobolMultOut)

export(sb)
S3method(ask, sb)
S3method(tell, sb)
S3method(print, sb)
S3method(plot, sb)

export(template.replace)

export(delsa)
export(parameterSets)
S3method(tell, delsa)
S3method(print, delsa)
S3method(plot, delsa)

export(PLI)
export(PLIquantile)

export(PoincareConstant)
export(PoincareOptimal)

export(support)
S3method(plot, support)
S3method(scatterplot, support)

export(sensiFdiv)
S3method(tell, sensiFdiv)
S3method(print, sensiFdiv)
S3method(plot, sensiFdiv)

export(sensiHSIC)
S3method(tell, sensiHSIC)
S3method(print, sensiHSIC)
S3method(plot, sensiHSIC)

export(sobolSalt)
S3method(tell, sobolSalt)
S3method(print, sobolSalt)
S3method(plot, sobolSalt)

export(sobolroauc)
S3method(tell, sobolroauc)
S3method(print, sobolroauc)
S3method(plot, sobolroauc)

export(shapleyPermEx)
S3method(tell, shapleyPermEx)
S3method(print, shapleyPermEx)
S3method(plot, shapleyPermEx)

export(shapleyPermRand)
S3method(tell, shapleyPermRand)
S3method(print, shapleyPermRand)
S3method(plot, shapleyPermRand)

export(sobolSmthSpl)
S3method(print, sobolSmthSpl)
S3method(plot, sobolSmthSpl)
