useDynLib("Rfast", .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")

importFrom(Rcpp, evalCpp)
importFrom("zigg", "zrnorm", "zsetseed")
importFrom(RcppParallel, RcppParallelLibs)

export("Elem<-",AddToNamespace,Choose,Crossprod,Diag.fill,Diag.matrix,Digamma,Dist,Elem,Hash,Hash.key.multi,Lbeta,Lchoose,Lgamma,Log,Mad,Match,Median,Norm,Order,Outer,Pmax,Pmin,Pmin_Pmax,Rank,RemoveFromNamespace,Rnorm,Round,Sort,Sort.int,Stack,Table,Table.sign,Tcrossprod,Trigamma,Unique,Var,XopY.sum,acg.mle,allbetas,allttests,ancova1,ancovas,anova1,anova_propreg,anova_qpois.reg,anova_quasipois.reg,anovas,apply.condition,ar1,as.Rfast.function,as_integer,auc,bc,bcdcor,beta.mle,betabinom.mle,betageom.mle,betaprime.mle,bic.corfsreg,bic.fs.reg,binary_search,bincomb,binom.mle,block.anova,block.anovas,boot.ttest2,borel.mle,bs.reg,btmprobs,cat.goftests,cauchy.mle,checkAliases,checkExamples,checkNamespace,checkTF,checkUsage,check_data,chi2Test,chi2Test_univariate,chi2tests,chisq.mle,cholesky,circlin.cor,coeff,col.coxpoisrat,col.yule,colAll,colAny,colCountValues,colCumMaxs,colCumMins,colCumProds,colCumSums,colFalse,colMads,colMaxs,colMedians,colMins,colMinsMaxs,colOrder,colPmax,colPmin,colRanks,colShuffle,colSort,colTabulate,colTrue,colTrueFalse,colVars,colanovas,colar1,colaucs,colcvs,coldiffs,colexp2.mle,colexpmle,colgammamle,colgeom.mle,colhameans,colinvgauss.mle,colkurtosis,collaplace.mle,collindley.mle,colmaxboltz.mle,colmeans,colnormal.mle,colnormlog.mle,colnth,colpareto.mle,colpois.tests,colpoisdisp.tests,colpoisson.anovas,colpoisson.mle,colprods,colquasipoisson.anovas,colrange,colrayleigh.mle,colrint.regbx,colrow.value,colskewness,colsums,columns,colvarcomps.mle,colvarcomps.mom,colvm.mle,colwatsons,colweibull.mle,comb_n,cor.fbed,cor.fsreg,cora,corpairs,correls,count_value,cova,cox.poisrat,cqtest,cqtests,ct.mle,data.frame.to_matrix,dcor,dcor.ttest,dcov,design_matrix,diri.nr2,dirimultinom.mle,dirknn,dirknn.cv,dista,dmvnorm,dmvt,dvar,eachcol.apply,eachrow,edist,eel.test1,eel.test2,eigen.sym,el.test1,el.test2,env.copy,exact.ttest2,exp2.mle,expmle,expregs,fish.kent,floyd,foldnorm.mle,freq.max,freq.min,fs.reg,ftest,ftests,g2Test,g2Test_perm,g2Test_univariate,g2Test_univariate_perm,g2tests,g2tests_perm,gammacon,gammamle,gammamle,gammanb,gammanb.pred,gammareg,gammaregs,gaussian.nb,gaussiannb.pred,gchi2Test,geom.anova,geom.anovas,geom.mle,geom.nb,geom.regs,geomnb.pred,gini,ginis,glm_logistic,glm_poisson,group,group.sum,groupcorrels,gumbel.mle,halfnorm.mle,hash.find,hash.list,hash2list,hd.eigen,hsecant01.mle,iag.mle,ibeta.mle,invdir.mle,invgauss.mle,invgauss.reg,invgauss.regs,is.symmetric,is_element,is_integer,iterator,james,knn,knn.cv,kruskaltest,kruskaltests,kuiper,kurt,kurt.test2,laplace.mle,lindley.mle,list.ftests,lmfit,logcauchy.mle,logistic.cat1,logistic.mle,logistic_only,logitnorm.mle,loglogistic.mle,lognorm.mle,logseries.mle,lomax.mle,lower_tri,lower_tri.assign,mahala,mat.mat,mat.mult,match.coefs,matrnorm,maxboltz.mle,mcnemar,mcnemars,med,mediandir,min_max,multinom.mle,multinom.nb,multinom.reg,multinom.regs,multinomnb.pred,multivmf.mle,mv.eeltest1,mv.eeltest2,mvbetas,mvkurtosis,mvlnorm.mle,mvnorm.mle,mvt.mle,negative,negbin.mle,normal.mle,normlog.mle,normlog.reg,normlog.regs,nth,odds,odds.ratio,omp,ompr,ordinal.mle,pareto.mle,pc.skel,pdcor,percent.ttest,percent.ttests,permcor,permutation,permutation.next,permutation.prev,pois.test,poisdisp.test,poisson.anova,poisson.anovas,poisson.cat1,poisson.mle,poisson.nb,poisson_only,poissonnb.pred,poly.cor,pooled.cov,positive,positive.negative,prop.reg,prop.regs,proptest,proptests,qpois.reg,qpois.regs,quasi.poisson_only,quasipoisson.anova,quasipoisson.anovas,racg,rayleigh.mle,rbing,rbingham,read.directory,read.examples,regression,rel.risk,rep_col,rep_row,rint.mle,rint.reg,rint.regbx,rint.regs,rm.anova,rm.anovas,rm.lines,rmdp,rmvlaplace,rmvnorm,rmvt,rowAll,rowAny,rowCountValues,rowFalse,rowMads,rowMaxs,rowMedians,rowMins,rowMinsMaxs,rowOrder,rowRanks,rowShuffle,rowSort,rowTabulate,rowTrue,rowTrueFalse,rowVars,rowcvs,rowhameans,rowmeans,rownth,rowprods,rowrange,rows,rowsums,rvmf,rvonmises,score.betaregs,score.expregs,score.gammaregs,score.geomregs,score.glms,score.invgaussregs,score.multinomregs,score.negbinregs,score.weibregs,score.ztpregs,sftest,sftests,skew,skew.test2,sort_cor_vectors,sort_mat,sort_unique,sort_unique.length,sourceR,sourceRd,spat.med,spatmed.reg,spdinv,spml.mle,spml.reg,spml.regs,squareform,sscov,standardise,submatrix,tmle,tobit.mle,topological_sort,total.dist,total.dista,transpose,ttest,ttest1,ttest2,ttests,ttests.pairs,twoway.anova,twoway.anovas,ufactor,univglms,univglms2,upper_tri,upper_tri.assign,var2test,var2tests,varcomps.mle,varcomps.mom,vartest,vartests,vecdist,vm.mle,vmf.mle,watson,weib.reg,weibull.mle,which.is,wigner.mle,wrapcauchy.mle,yule,zip.mle,ztp.mle)

export(.onAttach)

S3method("!=",iterator)
S3method("==",iterator)
S3method("Elem<-",iterator)
S3method("[",Hash)
S3method("[",ufactor)
S3method("[<-",Hash)
S3method(Elem,iterator)
S3method(colVars,data.frame)
S3method(colVars,matrix)
S3method(colmeans,data.frame)
S3method(colmeans,matrix)
S3method(length,Hash)
S3method(print,Hash)
S3method(print,iterator)
S3method(print,ufactor)

