## compiled code
useDynLib(analogue)

## Imports
##
## vegan
importFrom("vegan",
           "pasteCall", "eigenvals", "tolerance", "scores",
           "cca", "rda", "vegdist", "wisconsin", "decostand")
## mgcv
importFrom("mgcv",
           "gam", "s", "smoothCon", "mono.con", "pcls", "Predict.matrix", "gam.control")
## MASS
importFrom("MASS",
           "dose.p")
## lattice
##   -- need here *only* those funs that we define S3 methods for
##      not the functions from lattice we use as they are covered
##      by Depends: lattice in DESCRIPTION
importFrom("lattice",
           "densityplot",
           "dotplot",
           "histogram",
           "xyplot",
           "current.panel.limits",
           "panel.axis",
           "which.packet",
           "axis.default",
           "trellis.par.get",
           "panel.refline",
           "panel.grid",
           "panel.lines",
           "panel.points",
           "panel.polygon",
           "panel.abline")
## stats
importFrom("stats",
           "screeplot",
           "aggregate",
           "approx",
           "as.dist",
           "binomial",
           "coef",
           "cor",
           "cov.wt",
           "density",
           "dist",
           "family",
           "fitted",
           "fivenum",
           "gaussian",
           "glm",
           "loess.smooth",
           "median",
           "model.matrix",
           "model.response",
           "na.pass",
           "napredict",
           "naresid",
           "predict",
           "printCoefmat",
           "qt",
           "quantile",
           "resid",
           "residuals",
           "rnorm",
           "runif",
           "sd",
           "setNames",
           "smooth.spline",
           "terms",
           "var",
           "wilcox.test")
## utils
importFrom("utils",
           "head",
           "tail",
           "flush.console",
           "modifyList",
           "setTxtProgressBar",
           "stack",
           "txtProgressBar")
## graphics
importFrom("graphics",
           "plot",
           "lines",
           "legend",
           "abline",
           "arrows",
           "axis",
           "box",
           "dotchart",
           "hist",
           "layout",
           "lines.default",
           "mtext",
           "panel.smooth",
           "par",
           "plot.default",
           "plot.new",
           "plot.window",
           "points",
           "points.default",
           "polygon",
           "rect",
           "rug",
           "segments",
           "stripchart",
           "strwidth",
           "text",
           "title")
## grDevices
importFrom("grDevices",
           "dev.flush",
           "dev.hold",
           "dev.interactive",
           "devAskNewPage",
           "n2mfrow")
## grid
importFrom("grid",
           "convertWidth",
           "gpar",
           "grid.layout",
           "grid.newpage",
           "grobWidth",
           "frameGrob",
           "placeGrob",
           "rectGrob",
           "textGrob",
           "unit",
           "unit.c")
## brglm
importFrom("brglm",
           "brglm",
           "brglm.control")

## princurve
importFrom("princurve",
           "project_to_curve")

## Exports
export(
    ## export generics imported from lattice
    densityplot,
    dotplot,
    histogram,

    ## export analogue functions
    analog,
    bayesF,
    bootstrap,
    caterpillar,
    caterpillarPlot,
    chooseTaxa,
    cma,
    compare,
    crossval,
    deshrink,
    dissim,
    dissimilarities,
    distance, oldDistance, ## oldDistance is the original R-only code
                                        #distance3,
                                        #distanceX,
    evenSample,
    fuse,
    getK,
    gradientDist,
    join,
    logitreg,
    mat,
    mcarlo,
    minDC,
    n2,
    optima,
    panel.Loess,
    panel.Stratiplot,
    pcr,
    performance,
    prcurve,                            # randomWA,
    reconPlot,
    residLen,
    RMSEP,
    splitSample,
    rankDC,
    roc,
    smoothSpline,
    smoothGAM,
    sppResponse,
    Stratiplot,
    stdError,
    timetrack,
    tran,
    varExpl,
    wa,
    weightedCor,
    "setK<-",
    Hellinger,
    ChiSquare
    )

### S3 Methods
##
## main user-visible functions
S3method(analog, default)
S3method(analog, distance)
S3method(bootstrap, default)
S3method(bootstrap, mat)
S3method(bootstrap, wa)
S3method(chooseTaxa, default)
S3method(cma, analog)
S3method(cma, default)
S3method(cma, predict.mat)
S3method(cma, mat)
S3method(compare, default)
S3method(crossval, pcr)
S3method(crossval, wa)
S3method(densityplot, residLen)
S3method(dissimilarities, analog)
S3method(dissimilarities, mat)
S3method(distance, default)
S3method(distance, join)
S3method(oldDistance, default)
S3method(oldDistance, join)
#S3method(distance3, default)
S3method(eigenvals, pcr)
S3method(fuse, dist)
S3method(fuse, matrix)
S3method(getK, default)
S3method(getK, mat)
S3method(getK, bootstrap.mat)
S3method(getK, predict.mat)
S3method(gradientDist, default)
S3method(gradientDist, cca)
S3method(gradientDist, prcurve)
S3method(head, join)
S3method(hist, residLen)
S3method(histogram, residLen)
S3method(logitreg, default)
S3method(logitreg, analog)
S3method(mat, default)
S3method(mat, formula)
S3method(mcarlo, default)
S3method(mcarlo, mat)
S3method(mcarlo, analog)
S3method(minDC, default)
S3method(minDC, predict.mat)
S3method(minDC, analog)
S3method(minDC, wa)
S3method(n2, default)
S3method(optima, default)
S3method(pcr, default)
S3method(pcr, formula)
S3method(performance, bootstrap.wa)
S3method(performance, crossval)
S3method(performance, predict.wa)
S3method(performance, pcr)
S3method(performance, wa)
S3method(RMSEP, default)
S3method(RMSEP, mat)
S3method(RMSEP, bootstrap.mat)
S3method(RMSEP, bootstrap.wa)
##S3method(randomWA, default)
S3method(roc, default)
S3method(roc, analog)
S3method(roc, mat)
S3method(scores, prcurve)
S3method(scores, timetrack)
S3method(sppResponse, prcurve)
S3method(stdError, mat)
S3method(stdError, predict.mat)
S3method("setK<-", default)
S3method("setK<-", mat)
S3method(tail, join)
S3method(tolerance, default)
S3method(tran, default)
S3method(tran, formula)
S3method(varExpl, default)
S3method(varExpl, cca)
S3method(varExpl, prcurve)
S3method(wa, default)
S3method(wa, formula)
S3method(weightedCor, default)
## fitted, predict, coef etc
S3method(coef, pcr)
S3method(coef, wa)
S3method(fitted, pcr)
S3method(fitted, prcurve)
S3method(fitted, bootstrap.mat)
S3method(fitted, logitreg)
S3method(fitted, mat)
S3method(fitted, timetrack)
S3method(fitted, wa)
S3method(predict, logitreg)
S3method(predict, mat)
S3method(predict, pcr)
S3method(predict, prcurve)
S3method(predict, timetrack)
S3method(predict, wa)
S3method(residuals, bootstrap.mat)
S3method(residuals, mat)
S3method(residuals, pcr)
S3method(residuals, prcurve)
## plotting
S3method(caterpillarPlot, default)
S3method(caterpillarPlot, data.frame)
S3method(caterpillarPlot, wa)
S3method(dotplot, rankDC)
S3method(plot, minDC)
S3method(plot, bayesF)
S3method(plot, cma)
S3method(plot, dissimilarities)
S3method(plot, evenSample)
S3method(plot, gradientDist)
S3method(lines, gradientDist)
S3method(points, gradientDist)
S3method(plot, logitreg)
S3method(plot, mat)
S3method(plot, mcarlo)
S3method(plot, prcurve)
S3method(lines, prcurve)
S3method(plot, rankDC)
S3method(plot, residLen)
S3method(plot, roc)
S3method(plot, sppResponse)
S3method(plot, timetrack)
S3method(points, timetrack)
S3method(plot, wa)
S3method(plot, weightedCor)
S3method(reconPlot, default)
S3method(reconPlot, predict.mat)
S3method(reconPlot, predict.wa)
S3method(screeplot, bootstrap.mat)
S3method(screeplot, mat)
S3method(screeplot, pcr)
S3method(Stratiplot, default)
S3method(Stratiplot, formula)
S3method(Stratiplot, matrix)
## print
S3method(print, analog)
S3method(print, bayesF)
S3method(print, bootstrap.mat)
S3method(print, bootstrap.wa)
S3method(print, cma)
S3method(print, crossval)
S3method(print, evenSample)
S3method(print, fitted.bootstrap.mat)
S3method(print, fitted.mat)
S3method(print, logitreg)
S3method(print, mat)
S3method(print, mcarlo)
S3method(print, minDC)
S3method(print, optima)
S3method(print, pcr)
S3method(print, performance)
S3method(print, prcurve)
S3method(print, predict.mat)
S3method(print, predict.wa)
S3method(print, rankDC)
S3method(print, residLen)
S3method(print, residuals.bootstrap.mat)
S3method(print, residuals.mat)
S3method(print, roc)
S3method(print, stdError)
S3method(print, summary.analog)
S3method(print, summary.bootstrap.mat)
S3method(print, summary.cma)
S3method(print, summary.logitreg)
S3method(print, summary.mat)
S3method(print, summary.predict.mat)
S3method(print, summary.roc)
S3method(print, timetrack)
S3method(print, tolerance)
S3method(print, wa)
S3method(print, weightedCor)
## summary
S3method(summary, analog)
S3method(summary, bootstrap.mat)
S3method(summary, cma)
S3method(summary, logitreg)
S3method(summary, mat)
S3method(summary, predict.mat)
S3method(summary, roc)
## utilities
S3method(as.data.frame, optima)
S3method(as.data.frame, tolerance)
