useDynLib(simest, .registration = TRUE)
exportPattern(".")## FIXME!

importFrom("nnls", nnls)
importFrom("cobs", conreg)

importFrom("graphics",
           abline, hist, lines,
           par, plot, plot.window)
importFrom("stats",
           splinefun, predict, qqline, qqnorm, runif, na.omit,
           optim, optimize, rnorm, var)

## MM: It makes a lot of sense to "create" simple S3 classes each with a print() and plot() method
S3method(print, cvx.pen.reg)
S3method(print, cvx.lip.reg)
S3method(print, cvx.lse.reg)
S3method(print, smooth.pen.reg)
S3method(print, sim.est)
S3method(plot, cvx.pen.reg)
S3method(plot, cvx.lse.reg)
S3method(plot, cvx.lip.reg)
S3method(plot, smooth.pen.reg)
S3method(plot, sim.est)
S3method(predict, cvx.pen.reg)
S3method(predict, cvx.lip.reg)
S3method(predict, cvx.lse.reg)
S3method(predict, smooth.pen.reg)
S3method(predict, sim.est)
#
## S3method(solve, pentadiag)
##
## MM: FIXME: It's non sense to have an S3 generic + default method instead of having simple functions for
## --         the convex/smooth estimators  and the  sim.est()  <multistart "simulation">
## S3method(cvx.pen.reg, default)
## S3method(cvx.lse.reg, default)
## S3method(cvx.lse.con.reg, default)
## S3method(cvx.lip.reg, default)
## S3method(smooth.pen.reg, default)
## S3method(sim.est, default)
## S3method(simestgcv, default)
