useDynLib("Rfast2", .registration = TRUE)

importFrom("stats", "pt", "cov", "pchisq", "pf", "cor", "qt", "sd","qnorm", "dpois", "pnorm", "rchisq", 
"rexp", ".lm.fit", "qf", "model.matrix", "aggregate", "prcomp", "qchisq", "optimise", "runif", "dnorm", 
"dbinom", "dexp", "dgeom", "nlm" , "optimize", "optim", "lm.fit", "uniroot", "na.omit")

importFrom("graphics", "contour", "points")

importFrom("Rfast", vm.mle, colvm.mle, colmeans, colsums, eachrow, group, colVars, spdinv, mediandir, 
colMins, nth, gammamle, weibull.mle, poisson_only, logistic_only, multinom.regs, multinom.mle, Var, 
normlog.regs, eachcol.apply, Sort, coldiffs, rowsums, rep_col, colShuffle)

importFrom("Rnanoflann", nn)

importFrom(Rcpp, evalCpp)
importFrom(RcppParallel, RcppParallelLibs)

export(Intersect,Merge,Quantile,Runif,Sample,Sample.int,add.term,batch.logistic,benchmark,bernoulli.nb,bernoullinb.pred,bessel,beta.nb,betanb.pred,bic.regs,big.knn,bigknn.cv,binom.reg,boot.hotel2,boot.james,boot.student2,boot.ttest1,cauchy.nb,cauchy0.mle,cauchynb.pred,cbern.mle,censpois.mle,censweib.reg,censweibull.mle,circ.cor1,circ.cors1,cls,cluster.lm,col.waldpoisrat,colGroup,colQuantile,colTrimMean,colaccs,colbeta.mle,colborel.mle,colcauchy.mle,colcenspois.mle,colcensweibull.mle,colfbscores,colfmis,colfscores,colhalfcauchy.mle,colhalfnorm.mle,coljack.means,collogitnorm.mle,collognorm.mle,colmaes,colmeansvars,colmses,colordinal.mle,colpinar1,colpkl,colpowerlaw.mle,colprecs,colsens,colsp.mle,colspecs,colspml.mle,colukl,colunitweibull.mle,colwlsmeta,cor_test,covar,covdist,covequal,covlikel,covmtest,covrob.lm,dcora,den.contours,depth.mahala,diffic,discrim,eel.cor.test,el.cor.test,embed.circaov,empirical.entropy,eqdist.etest,fbed.reg,fe.lmfit,fedhc.skel,fipois.reg,fisher.da,fp,frechet.nn,gammapois.mle,gammareg,gammaregs,gee.reg,gnormal0.mle,gumbel.reg,halfcauchy.mle,hcf.circaov,hellinger.countreg,het.circaov,het.lmfit,hp.reg,is.lower.tri,is.skew.symmetric,is.upper.tri,jack.mean,jbtest,jbtests,kernel,km,kumar.mle,laplace.nb,laplacenb.pred,leverage,lm.boot,lm.bsreg,lm.drop1,lm.nonparboot,lm.parboot,logiquant.regs,logitnorm.nb,logitnormnb.pred,lr.circaov,lud,mci,mle.lda,mmhc.skel,mmpc,mmpc2,moranI,multinom.reg,multinomreg.cv,multispml.mle,multivm.mle,mv.score.betaregs,mv.score.expregs,mv.score.gammaregs,mv.score.glms,mv.score.invgaussregs,mv.score.weibregs,nb.cv,negbin.reg,negbin.regs,normal.etest,normlog.nb,normlognb.pred,omp2,overdispreg.test,pc.sel,pca,pcr,perm.ttest,perm.ttest1,perm.ttest2,pinar1,pooled.colVars,powerlaw.mle,prophelling.reg,propols.reg,purka.mle,rbeta1,refmeta,reg.mle.lda,regmlelda.cv,riag,rm.hotel,rowQuantile,rowTrimMean,rowjack.means,sclr,score.zipregs,silhouette,simplex.mle,sp.logiregs,sp.mle,spml.nb,spmlnb.pred,stud.ttests,tobit.reg,trim.mean,trunccauchy.mle,truncexpmle,unitweibull.mle,vm.nb,vmnb.pred,wald.poisrat,walter.ci,weib.regs,weibull.nb,weibullnb.pred,welch.tests,wild.boot,wlsmeta,zigamma.mle,zigamma.reg,zil.mle,ziweibull.mle,ztp.reg)

export(.onAttach)

S3method(colQuantile,data.frame)
S3method(colQuantile,matrix)
S3method(colTrimMean,data.frame)
S3method(colTrimMean,matrix)
S3method(print,benchmark)

