useDynLib(GWmodel)
import(Rcpp)
import(sf)
import(robustbase)
import(sp)
import(stats)
import(spacetime)
import(parallel)
importFrom(FNN, get.knn)
importFrom(Rcpp, evalCpp)
importFrom("grDevices", "grey", "rainbow", "rgb")
importFrom("methods", "as", "is", "slot")
importFrom("graphics", "abline", "axis", "hist", "identify", "legend",
             "lines", "points", "rect", "text")
importFrom("spdep", "knearneigh", "poly2nb", "nb2listw","listw2mat","knn2nb")
importFrom("sf", "st_write", "st_as_sf")
importFrom("spatialreg", "errorsarlm", "spautolm","lagsarlm")
export(gwr.scalable,gwr.scalable.loocv,AICc1, gwr_diag1,scgwr_loocv,scgwr_pre,scgwr_reg,bw.gtwr, gtwr.aic, gtwr, ti.distv, ti.distm,ti.dist, st.dist, gwr.bootstrap,generate.lm.data,parametric.bs,parametric.bs.local,se.bs,bias.bs,ci.bs,pval.bs,gwrtvar,gwrt.mlr,gwrt.lag,gwrt.err,gwrt.sma,bw.gwr3,gwr.multiscale,gwr.backfit,gwr.q2, confusion.matrix,gwss.montecarlo,gwda,print.gwda,grouping.xy,wqda,wlda,splitx,wmean,wvarcov,wprior,bw.gwda,wqda.cr,wlda.cr,gwr.hetero,gwr.mixed,gwr.mixed.2,gwr.mixed.trace.fast, gwr.mixed.trace, gwr.mixed.trace.fast,print.mgwr,gwr.q,gwr.collin.diagno,plot.mcsims,bw.gwr, gwr.cv,gwr.cv.contrib, gwr.aic, gold, gw.dist, gw.weight, gwr.basic, F1234.test,extract.mat,Generate.formula,gwr.generalised,gwr.poisson,gwr.binomial,gwss,bw.ggwr,ggwr.basic,ggwr.cv,ggwr.cv.contrib,ggwr.aic,gwr.poisson.wt,gwr.binomial.wt,wpca,robustSvd,wt.median,rwpca,gwpca,bw.gwpca,gwpca.cv,gwpca.cv.contrib,gwr.lcr,ridge.lm,bw.gwr.lcr,gwr.lcr.cv,gwr.lcr.cv.contrib,gwr.t.adjust,gwr.predict,gwr.robust,gw.pcplot,bw.gwr1,gwr.aic1,gwr.cv1,plot.pvlas,gw_reg,gw.fitted,ehat,rss,gwr_diag,AICc,AICc_rss,Ci_mat,gwss.montecarlo,gwpca.montecarlo.1,gwpca.montecarlo.2,gwr.model.selection,gwr.model.view,gwr.model.sort,gwr.montecarlo,gwr.write,gwr.write.shp,gwpca.glyph.plot,gwpca.check.components,gwr.mink.approach,gwr.mink.matrixview,gwr.mink.pval,gwr.mink.pval.forward,gwr.mink.pval.backward,gw.mean.cv,gw.median.cv,gw.average.cv,gw.average.cv.contrib,bw.gwss.average,montecarlo.gwss,montecarlo.gwpca.1,montecarlo.gwpca.2,model.selection.gwr,model.view.gwr,model.sort.gwr,montecarlo.gwr,writeGWR,writeGWR.shp,glyph.plot,check.components,mink.approach,mink.matrixview,gwr_q,gwr_mixed_trace, gwr_mixed_2,gw_dist,gw_weight, gw_weight_vec, gw_weight_mat, gw_reg, gw_reg_1, trhat2, gw_fitted, ehat, rss, gwr_diag, gwr_diag1, AICc, AICc1, AICc_rss, AICc_rss1, Ci_mat, gw_local_r2, gw_BIC, gw_reg_2, gwr_q, scgwr_pre, scgwr_reg, scgwr_loocv, gw_reg_all, gw_reg_all_omp, gw_reg_all_cuda, gw_cv_all, gw_cv_all_omp, gw_cv_all_cuda, e_vec, gwr_mixed_trace, gwr_mixed_2, new_multiscale)
useDynLib(GWmodel, .registration = TRUE)

S3method(print, mcsims)
S3method(print, gwrm)
S3method(print, ggwrm)
S3method(print, gwss)
S3method(print, gwrlcr)
S3method(print, gwrm.pred)
S3method(plot, mcsims)
S3method(plot, pvlas)
S3method(print, gwda)
S3method(print, mgwr)
S3method(print, gwrbsm)
S3method(print, multiscalegwr)
S3method(print, gtwrm)
S3method(print, gwpca)
S3method(print, scgwrm)