exportPattern("^[[:alpha:]]+") 
export(".evalWrapper", ".wrap_Ltri_t_chol", ".calc_CARdispGammaGLM", ".calc_dispGammaGLM", ".ZWZt",
       ".dispFn", ".dispInv", ".nuFn", ".nuInv", ".rhoFn", ".rhoInv", ".NB_shapeFn", ".NB_shapeInv", 
       ".crossprod", ".tcrossprod",  ".stripOffset", ".stripRanefs", ".modify_list") ## probitgem
export(".HLfit_body_augZXy", ".solve_IRLS_as_ZX", ".solve_IRLS_as_spprec") ## must be exported to be traceable
export(".safe_opt", ".setCluster") ## Infusion
export(".unloads4spaMM",".is_spprec_fit") ## devel convenience
importFrom("graphics", ".filled.contour", "Axis", "abline", "axis", "box", "hist", "layout", 
           "lcm", "lines", "par", "plot.new", "plot.window", "points", "polygon", "rect", "title")
importFrom("graphics", "plot")
importFrom("grDevices", "devAskNewPage", "topo.colors", "adjustcolor", "col2rgb", "rgb", "dev.new")
importFrom("methods", "as", "is", "cbind2", "rbind2", "new", "slot", "getClassDef", "setClass", ".hasSlot")
importFrom("stats", "as.formula", "coefficients", "dgamma", "dnorm", "family", "formula", "getCall", 
           "glm", "lm", "make.link", "model.frame", "model.matrix", "model.offset", "model.response", 
           "optim", "optimize", "pchisq", 
           "qchisq", "qnorm", "qqline", "qqnorm", "qgamma", "qcauchy", "qlogis",
           "rbeta", "rbinom", "rgamma", "rnorm", "rpois", "runif", "terms", "extractAIC", "step",
           "terms.formula", "var", "sd", "weights", "glm.fit",".lm.fit", "lm.wfit", "qbeta",
           "nobs", ## bc spaMM defines an HLfit method, although I do not currently use it
           "hatvalues", ## bc spaMM defines an HLfit method, 
           "simulate", "anova", "confint", "fitted", "predict", "update", "logLik", "vcov", "coef",
           "gaussian", "binomial", "dpois", "Gamma", "resid", "uniroot", "deviance", "dbinom", "plogis", 
           "as.dist", "AIC", "qnbinom", "qpois", "rnbinom", "integrate", "poisson",".getXlevels", 
           "na.omit", "na.exclude", "na.pass",
           "cov2cor", "pcauchy", "pnorm","model.weights", "setNames", "pf", "df.residual", "drop.terms", 
           "stat.anova", "residuals", "pt", "reformulate", "drop.scope", "drop1", "update.formula", 
           "contrasts<-", "delete.response")
importFrom("utils", "relist", "txtProgressBar", "setTxtProgressBar", "modifyList", "strOptions", "str",
           "write.table", "packageVersion", "packageDescription", "capture.output", "tail", "head")
importFrom("Matrix", "Matrix", "drop", "isDiagonal", "diag", "t", "solve", "Diagonal", "crossprod", "tcrossprod", "rowSums", "colSums",
           "sparseMatrix", "qr", "qrR", "qr.R", "qr.Q", "qr.coef", "isSymmetric", "forceSymmetric", "Cholesky","determinant",
           "chol2inv", "drop0", ".symDiagonal",".trDiagonal","chol", "kronecker","nnzero", "sparse.model.matrix", "bandSparse",
           ".sparseDiagonal", "cov2cor")
importFrom("proxy", "dist", "pr_DB")
importFrom("reformulas", "inForm", "replaceForm")
importFrom("Rcpp", "evalCpp")
importFrom("MASS", "ginv", "gamma.shape", "mvrnorm") ## gamma.shape is actually a generic with a 'glm' method.
importFrom("nlme", "getGroups", "fixef", "ranef", "corMatrix", "Initialize", "Variogram", "coef<-", "corFactor", 
           "getCovariate", "logDet", "recalc", "VarCorr")
importFrom("pbapply", "pbapply", "pblapply", "pboptions", "pbreplicate")
importFrom("minqa","bobyqa")
importFrom("ROI", "L_constraint", "OP", "ROI_solve", "V_bound", "bounds<-", "constraints<-", "leq", "solution")
importFrom("boot", "boot.ci")
importFrom("numDeriv", "hessian", "grad", "jacobian")
export(coef) ## from stats namespace
# From nlme namespace:
export("fixef", "ranef", "corMatrix", "Initialize", "Variogram", "coef<-", "corFactor", "getCovariate", "logDet", "recalc", "VarCorr") 
S3method(dimnames, bigq)
S3method(corMatrix, corMatern)
S3method(Initialize, corMatern)
S3method(Variogram, corMatern)
S3method(coef, corMatern)
S3method("coef<-", corMatern)
S3method(corFactor, corMatern)
S3method(getCovariate, corMatern)
S3method(logDet, corMatern)
S3method(recalc, corMatern)
S3method(dim, precision)
S3method(dim, Kronfacto)
S3method(VarCorr, HLfit)
S3method(getCall, HLfit)
S3method(deviance, HLfit)
S3method(anova, HLfit)
S3method(drop1, HLfit)
S3method(anova, LMLT)
S3method(drop1, LMLT)
S3method(coef,corMatern)
S3method(AIC, HLfit)
S3method(extractAIC, HLfit)
S3method(confint, HLfit)
S3method(family, HLfit)
S3method(model.frame, HLfit)
S3method(formula, HLfit)
S3method(terms, HLfit)
S3method(model.matrix, HLfit)
S3method(model.matrix, LMLTslots)
S3method(nobs, HLfit)
S3method(logLik, HLfit)
S3method(logLik, HLfitlist)
S3method(fitted, HLfit)
S3method(coef, HLfit)
S3method(fixef, HLfit)
S3method(ranef, HLfit)
S3method(fitted, HLfitlist)
S3method(residuals, HLfit)
S3method(df.residual, HLfit)
S3method(weights, HLfit)
S3method(hatvalues, HLfit)
S3method(plot, HLfit)
S3method(predict, HLfit)
S3method(predict, pois4mlogit)
S3method(simulate, HLfitlist)
S3method(simulate, HLfit)
S3method(summary, HLfit)
S3method(summary, HLfitlist)
S3method(summary, fixedLRT)
S3method(print, vcov.HLfit)
S3method(print, HLfit)
S3method(print, HLfitlist)
S3method(print, fixedLRT)
S3method(print, predictor)
S3method(print, arglist)
S3method(print, ranef)
S3method(print, spaMM_predictions)
S3method(print, corr_family)
S3method(print, bootci4print)
S3method(print, singeigs)
S3method(update, HLfit)
S3method(vcov, HLfit)
S3method(MaternCorr, default)
S3method(MaternCorr, dsCMatrix)
S3method(MaternCorr, dgCMatrix)
S3method(CauchyCorr, default)
S3method(CauchyCorr, dsCMatrix)
S3method(CauchyCorr, dgCMatrix)
S3method("[", spaMM_predictions)
#S3method(as.matrix, spaMM_predictions)
S3method("[", precision)
#S3method(get_from_MME,sXaug_EigenDense_QRP_scaled)
S3method(get_from_MME,sXaug_EigenDense_QRP_Chol_scaled)
#S3method(get_from_MME,sXaug_EigenDense_QR_scaled)
#S3method(get_from_MME,sXaug_baseDense_QRP_scaled)
#S3method(get_from_MME,sXaug_EigenSparse_QR_scaled)
#S3method(get_from_MME,sXaug_EigenSparse_QRP_scaled)
#S3method(get_from_MME,sXaug_EigenSparse_LDLP_scaled)
#S3method(get_from_MME,sXaug_EigenSparse_LDL_scaled)
#S3method(get_from_MME,sXaug_EigenSparse_LLP_scaled)
#S3method(get_from_MME,sXaug_Matrix_QRP_scaled)
S3method(get_from_MME,sXaug_Matrix_QRP_CHM_scaled)
#S3method(get_from_MME,sXaug_Matrix_cholP_scaled)
S3method(get_from_MME,sXaug_Matrix_CHM_H_scaled)
S3method(get_from_MME,AUGI0_ZX_spprec)
S3method(get_from_MME,sparseMatrix)
S3method(get_from_MME,default)
S3method(get_from_MME_default,matrix)
S3method(get_from_MME_default,Matrix)
S3method(how,default)
S3method(how,HLfit)
S3method(how,HLfitlist)
#
#S3method(update,default) # redefine update() generic...
S3method(update,HLfit) 
#S3method(update,formula) # and update.formula() : we redefine it as a generic, so it itself has methods:
#S3method(update.formula,default) # 
#S3method(update.formula,HLfit)
#
S3method(str,inla.spde2)
# S4 class ZAXlist
S3method(t,ZAXlist)
# S4 methods:
exportMethods("%*%")
exportMethods(crossprod)
exportMethods(tcrossprod)
importFrom("methods", "slotNames")
#
useDynLib(spaMM, .registration=TRUE)  #  exposes to user level => objects need doc.
