useDynLib(collapse, .registration=TRUE) # , .fixes = "C_"
importFrom(Rcpp, evalCpp)
importFrom("graphics", "hist", "par", "plot")
importFrom("grDevices", "rainbow")
# importFrom("lfe", "demeanlist")
importFrom("parallel", "mclapply")
importFrom("utils", "packageVersion")
importFrom("stats", "as.formula", "complete.cases", "cor", "cov", "var", "pt",
           "setNames", "terms.formula", "ts", "ts.plot", "model.matrix.default",
           "quantile", ".lm.fit", "cov2cor")

 export(add_stub)
 export(rm_stub)
 export(all_identical)
 export(all_obj_equal)
 # export(as.factor.GRP)
 export(as.factor_GRP)
 export(as.factor_qG)
 export(atomic_elem)
 export(`atomic_elem<-`)
 export(B)
 export(fbetween)
 export(fbetween.data.frame)
 export(fbetween.default)
 export(fbetween.matrix)
 export(fselect)
 export(slt)
 export(`fselect<-`)
 export(`slt<-`)
 export(ss)
 export(fsubset)
 export(sbt)
 export(fsubset.data.frame)
 export(fsubset.default)
 export(fsubset.matrix)
 export(fsummarise)
 export(smr)
 export(ftransform)
 export(tfm)
 export(`ftransform<-`)
 export(`tfm<-`)
 export(ftransformv)
 export(tfmv)
 export(settransform)
 export(settfm)
 export(settransformv)
 export(settfmv)
 export(fcompute)
 export(BY)
 export(BY.data.frame)
 export(BY.default)
 export(BY.matrix)
 export(cat_vars)
 export(`cat_vars<-`)
 export(char_vars)
 export(`char_vars<-`)
 export(collap)
 export(collapv)
 export(collapg)
 export(D)
 export(Dlog)
 export(dapply)
 export(Date_vars)
 export(`Date_vars<-`)
 export(F)
 export(fFtest)
 export(fact_vars)
 export(`fact_vars<-`)
 export(fdiff)
 export(fdiff.data.frame)
 export(fdiff.default)
 export(fdiff.matrix)
 export(ffirst)
 export(ffirst.data.frame)
 export(ffirst.default)
 export(ffirst.matrix)
 export(fgrowth)
 export(fgrowth.data.frame)
 export(fgrowth.default)
 export(fgrowth.matrix)
 export(flag)
 export(flag.data.frame)
 export(flag.default)
 export(flag.matrix)
 export(flast)
 export(flast.data.frame)
 export(flast.default)
 export(flast.matrix)
 export(fmax)
 export(fmax.data.frame)
 export(fmax.default)
 export(fmax.matrix)
 export(fmean)
 export(fmean.data.frame)
 export(fmean.default)
 export(fmean.matrix)
 export(fmedian)
 export(fmedian.data.frame)
 export(fmedian.default)
 export(fmedian.matrix)
 export(fnth)
 export(fnth.data.frame)
 export(fnth.default)
 export(fnth.matrix)
 export(fmin)
 export(fmin.data.frame)
 export(fmin.default)
 export(fmin.matrix)
 export(fmode)
 export(fmode.data.frame)
 export(fmode.default)
 export(fmode.matrix)
 export(fNdistinct)
 export(fNdistinct.data.frame)
 export(fNdistinct.default)
 export(fNdistinct.matrix)
 export(fNobs)
 export(fNobs.data.frame)
 export(fNobs.default)
 export(fNobs.matrix)
 export(varying)
 export(varying.data.frame)
 export(varying.default)
 export(varying.matrix)
 export(fprod)
 export(fprod.data.frame)
 export(fprod.default)
 export(fprod.matrix)
 export(fscale)
 export(fscale.data.frame)
 export(fscale.default)
 export(fscale.matrix)
 export(fsd)
 export(fsd.data.frame)
 export(fsd.default)
 export(fsd.matrix)
 export(fsum)
 export(fsum.data.frame)
 export(fsum.default)
 export(fsum.matrix)
 export(fvar)
 export(fvar.data.frame)
 export(fvar.default)
 export(fvar.matrix)
 export(G)
 export(get_elem)
 export(get_vars)
 export(`get_vars<-`)
 export(gv)
 export(gvr)
 export(`gv<-`)
 export(`gvr<-`)
 export(add_vars)
 export(av)
 export(`add_vars<-`)
 export(`av<-`)
 export(radixorder)
 export(radixorderv)
 export(seqid)
 export(groupid)
 export(GRP)
 export(GRP.default)
 export(fgroup_by)
 export(gby)
 export(fgroup_vars)
 export(fungroup)
 export(GRPnames)
 # export(group_names.GRP)
 export(has_elem)
 export(flm)
 export(cinv)
 export(HDB)
 export(fHDbetween)
 export(fHDbetween.default)
 export(fHDbetween.matrix)
 export(fHDbetween.data.frame)
 export(HDW)
 export(fHDwithin)
 export(fHDwithin.default)
 export(fHDwithin.matrix)
 export(fHDwithin.data.frame)
 export(irreg_elem)
 export(is.categorical)
 export(is.Date)
 export(is.GRP)
 export(is.qG)
 export(is.regular)
 export(is.unlistable)
 export(L)
 export(ldepth)
 export(list_elem)
 export(`list_elem<-`)
 export(logi_vars)
 export(`logi_vars<-`)
 export(mctl)
 export(mrtl)
 export(namlab)
 export(num_vars)
 export(`num_vars<-`)
 export(nv)
 export(`nv<-`)
 export(psacf)
 export(psacf.default)
 export(psacf.data.frame)
 export(pspacf)
 export(pspacf.default)
 export(pspacf.data.frame)
 export(psccf)
 export(psccf.default)
 export(psmat)
 export(psmat.default)
 export(psmat.data.frame)
 export(qDF)
 export(qDT)
 export(qTBL)
 export(qF)
 export(qG)
 export(qM)
 export(qsu)
 export(qsu.default)
 export(qsu.matrix)
 export(qsu.data.frame)
 export(descr)
 export(rapply2d)
 export(t_list)
 export(rsplit)
 export(rsplit.default)
 export(rsplit.data.frame)
 export(fdroplevels)
 export(fdroplevels.factor)
 export(fdroplevels.data.frame)
 export(reg_elem)
 export(STD)
 export(TRA)
 export(TRA.data.frame)
 export(TRA.default)
 export(TRA.matrix)
 export(unlist2d)
 export(vlabels)
 export(vclasses)
 export(vtypes)
 export(`vlabels<-`)
 export(W)
 export(fwithin)
 export(fwithin.data.frame)
 export(fwithin.default)
 export(fwithin.matrix)
 export(seq_row)
 export(seq_col)
 export(.c)
 export(setRownames)
 export(setColnames)
 export(setDimnames)
 export(unattrib)
 # export(setAttr)
 export(setAttrib)
 export(copyAttrib)
 export(copyMostAttrib)
 export(pwcor)
 export(pwcov)
 export(pwNobs)
 export(allNA)
 export(missing_cases)
 export(na_rm)
 export(na_omit)
 export(na_insert)
 export(`%!in%`)
 export(`%rr%`)
 export(`%r+%`)
 export(`%r-%`)
 export(`%r*%`)
 export(`%r/%`)
 export(`%cr%`)
 export(`%c+%`)
 export(`%c-%`)
 export(`%c*%`)
 export(`%c/%`)
 export(ckmatch)
 export(Recode)
 export(recode_num)
 export(recode_char)
 export(replace_NA)
 export(replace_Inf)
 export(replace_non_finite)
 export(replace_outliers)
 export(print.qsu)
 export(print.pwcor)
 export(print.pwcov)
 export(fnlevels)
 export(roworder)
 export(roworderv)
 export(frename)
 export(setrename)
 export(colorder)
 export(colorderv)
 export(funique)
 export(funique.default)
 export(funique.data.frame)
 export(finteraction)
 export(fnrow)
 export(fncol)
 export(fdim)
 export(as.numeric_factor)
 export(as.character_factor)
 # export(.NA_RM)
 export(.FAST_FUN)
 export(.FAST_STAT_FUN)
 export(.OPERATOR_FUN)
 export(.COLLAPSE_TOPICS)
 export(.COLLAPSE_ALL)
 export(.COLLAPSE_GENERIC)
 export(.COLLAPSE_DATA)

 S3method(B, data.frame)
 S3method(B, list)
 S3method(B, default)
 S3method(B, grouped_df)
 S3method(B, matrix)
 S3method(B, pdata.frame)
 S3method(B, pseries)
 S3method(fbetween, data.frame)
 S3method(fbetween, list)
 S3method(fbetween, default)
 S3method(fbetween, grouped_df)
 S3method(fbetween, matrix)
 S3method(fbetween, pdata.frame)
 S3method(fbetween, pseries)
 S3method(fsubset, data.frame)
 S3method(fsubset, default)
 S3method(fsubset, matrix)
 S3method(rsplit, default)
 S3method(rsplit, data.frame)
 S3method(fdroplevels, default)
 S3method(fdroplevels, factor)
 S3method(fdroplevels, list)
 S3method(fdroplevels, data.frame)
 S3method(BY, data.frame)
 S3method(BY, list)
 S3method(BY, default)
 S3method(BY, grouped_df)
 S3method(BY, matrix)
 S3method(D, data.frame)
 S3method(D, list)
 S3method(D, default)
 S3method(D, expression)
 S3method(D, call)
 S3method(D, name)
 S3method(D, grouped_df)
 S3method(D, matrix)
 S3method(D, pdata.frame)
 S3method(D, pseries)
 S3method(Dlog, data.frame)
 S3method(Dlog, list)
 S3method(Dlog, default)
 S3method(Dlog, grouped_df)
 S3method(Dlog, matrix)
 S3method(Dlog, pdata.frame)
 S3method(Dlog, pseries)
 S3method(F, data.frame)
 S3method(F, list)
 S3method(F, default)
 S3method(F, grouped_df)
 S3method(F, matrix)
 S3method(F, pdata.frame)
 S3method(F, pseries)
 S3method(fdiff, data.frame)
 S3method(fdiff, list)
 S3method(fdiff, default)
 S3method(fdiff, grouped_df)
 S3method(fdiff, matrix)
 S3method(fdiff, pdata.frame)
 S3method(fdiff, pseries)
 S3method(ffirst, data.frame)
 S3method(ffirst, list)
 S3method(ffirst, default)
 S3method(ffirst, grouped_df)
 S3method(ffirst, matrix)
 S3method(fgrowth, data.frame)
 S3method(fgrowth, list)
 S3method(fgrowth, default)
 S3method(fgrowth, grouped_df)
 S3method(fgrowth, matrix)
 S3method(fgrowth, pdata.frame)
 S3method(fgrowth, pseries)
 S3method(flag, data.frame)
 S3method(flag, list)
 S3method(flag, default)
 S3method(flag, grouped_df)
 S3method(flag, matrix)
 S3method(flag, pdata.frame)
 S3method(flag, pseries)
 S3method(flast, data.frame)
 S3method(flast, list)
 S3method(flast, default)
 S3method(flast, grouped_df)
 S3method(flast, matrix)
 S3method(fmax, data.frame)
 S3method(fmax, list)
 S3method(fmax, default)
 S3method(fmax, grouped_df)
 S3method(fmax, matrix)
 S3method(fmean, data.frame)
 S3method(fmean, list)
 S3method(fmean, default)
 S3method(fmean, grouped_df)
 S3method(fmean, matrix)
 S3method(fmedian, data.frame)
 S3method(fmedian, list)
 S3method(fmedian, default)
 S3method(fmedian, grouped_df)
 S3method(fmedian, matrix)
 S3method(fnth, data.frame)
 S3method(fnth, list)
 S3method(fnth, default)
 S3method(fnth, grouped_df)
 S3method(fnth, matrix)
 S3method(fmin, data.frame)
 S3method(fmin, list)
 S3method(fmin, default)
 S3method(fmin, grouped_df)
 S3method(fmin, matrix)
 S3method(fmode, data.frame)
 S3method(fmode, list)
 S3method(fmode, default)
 S3method(fmode, grouped_df)
 S3method(fmode, matrix)
 S3method(fNdistinct, data.frame)
 S3method(fNdistinct, list)
 S3method(fNdistinct, default)
 S3method(fNdistinct, grouped_df)
 S3method(fNdistinct, matrix)
 S3method(funique, data.frame)
 S3method(funique, list)
 S3method(funique, default)
 S3method(fNobs, data.frame)
 S3method(fNobs, list)
 S3method(fNobs, default)
 S3method(fNobs, grouped_df)
 S3method(fNobs, matrix)
 S3method(varying, data.frame)
 S3method(varying, pdata.frame)
 S3method(varying, pseries)
 S3method(varying, list)
 S3method(varying, default)
 S3method(varying, grouped_df)
 S3method(varying, matrix)
 S3method(fprod, data.frame)
 S3method(fprod, list)
 S3method(fprod, default)
 S3method(fprod, grouped_df)
 S3method(fprod, matrix)
 S3method(fscale, data.frame)
 S3method(fscale, list)
 S3method(fscale, default)
 S3method(fscale, grouped_df)
 S3method(fscale, matrix)
 S3method(fscale, pdata.frame)
 S3method(fscale, pseries)
 S3method(fsd, data.frame)
 S3method(fsd, list)
 S3method(fsd, default)
 S3method(fsd, grouped_df)
 S3method(fsd, matrix)
 S3method(fsum, data.frame)
 S3method(fsum, list)
 S3method(fsum, default)
 S3method(fsum, grouped_df)
 S3method(fsum, matrix)
 S3method(fvar, data.frame)
 S3method(fvar, list)
 S3method(fvar, default)
 S3method(fvar, grouped_df)
 S3method(fvar, matrix)
 S3method(G, data.frame)
 S3method(G, list)
 S3method(G, default)
 S3method(G, grouped_df)
 S3method(G, matrix)
 S3method(G, pdata.frame)
 S3method(G, pseries)
 S3method(GRP, default)
 S3method(GRP, GRP)
 S3method(GRP, factor)
 S3method(GRP, grouped_df)
 S3method(GRP, pdata.frame)
 S3method(GRP, pseries)
 S3method(GRP, qG)
 S3method(HDB, data.frame)
 S3method(HDB, default)
 S3method(HDB, matrix)
 S3method(HDB, pdata.frame)
 S3method(HDB, pseries)
 S3method(fHDbetween, default)
 S3method(fHDbetween, matrix)
 S3method(fHDbetween, data.frame)
 S3method(fHDbetween, pdata.frame)
 S3method(fHDbetween, pseries)
 S3method(HDW, data.frame)
 S3method(HDW, default)
 S3method(HDW, matrix)
 S3method(HDW, pdata.frame)
 S3method(HDW, pseries)
 S3method(fHDwithin, default)
 S3method(fHDwithin, matrix)
 S3method(fHDwithin, data.frame)
 S3method(fHDwithin, pdata.frame)
 S3method(fHDwithin, pseries)
 S3method(L, data.frame)
 S3method(L, list)
 S3method(L, default)
 S3method(L, grouped_df)
 S3method(L, matrix)
 S3method(L, pdata.frame)
 S3method(L, pseries)
 S3method(plot, GRP)
 S3method(print, GRP)
 S3method(print, GRP_df)
 # S3method(head, GRP_df)
 # S3method(tail, GRP_df)
 S3method(print, qsu)
 S3method(print, descr)
 S3method(print, pwcor)
 S3method(print, pwcov)
 S3method(print, fFtest)
 S3method(print, psmat)
 S3method(print, invisible)
 S3method(aperm, psmat)
 S3method(aperm, qsu)
 S3method('[', psmat)
 S3method('[', qsu)
 S3method('[', GRP_df)
 S3method('[[', GRP_df)
 S3method('[<-', GRP_df)
 S3method('[[<-', GRP_df)
 S3method(as.data.frame, descr)
 S3method(psacf, data.frame)
 S3method(psacf, default)
 S3method(psacf, pdata.frame)
 S3method(psacf, pseries)
 S3method(psccf, default)
 S3method(psccf, pseries)
 S3method(psmat, data.frame)
 S3method(psmat, default)
 S3method(psmat, pdata.frame)
 S3method(psmat, pseries)
 S3method(plot, psmat)
 S3method(pspacf, data.frame)
 S3method(pspacf, default)
 S3method(pspacf, pdata.frame)
 S3method(pspacf, pseries)
 S3method(qsu, data.frame)
 S3method(qsu, default)
 S3method(qsu, matrix)
 S3method(qsu, pdata.frame)
 S3method(qsu, list)
 S3method(qsu, pseries)
 S3method(STD, data.frame)
 S3method(STD, list)
 S3method(STD, default)
 S3method(STD, grouped_df)
 S3method(STD, matrix)
 S3method(STD, pdata.frame)
 S3method(STD, pseries)
 S3method(TRA, data.frame)
 S3method(TRA, list)
 S3method(TRA, default)
 S3method(TRA, grouped_df)
 S3method(TRA, matrix)
 S3method(W, data.frame)
 S3method(W, list)
 S3method(W, default)
 S3method(W, grouped_df)
 S3method(W, matrix)
 S3method(W, pdata.frame)
 S3method(W, pseries)
 S3method(fwithin, data.frame)
 S3method(fwithin, list)
 S3method(fwithin, default)
 S3method(fwithin, grouped_df)
 S3method(fwithin, matrix)
 S3method(fwithin, pdata.frame)
 S3method(fwithin, pseries)
