useDynLib(npRmpi)
import(stats, boot, cubature)
importFrom("grDevices", "boxplot.stats", "extendrange", "grey", "n2mfrow", "rgb")
importFrom("graphics", "axis", "lines", "mtext", "par", "persp", "plot", "plot.new", "plot.window", "points", "polygon")
importFrom("utils", "combn", "flush.console")
importFrom("methods", "is")
importFrom("parallel", "nextRNGStream", "detectCores")
importFrom("quantreg", "rq")
importFrom("quadprog", "solve.QP")
export(b.star
       ,.docall
       ,.force.type
       ,.mpi.undefined
       ,.simplify
       ,.splitIndices
       ,.typeindex
       ,lamhosts
       ,.mpi.worker.exec
       ,.mpi.worker.apply
       ,.mpi.worker.sim
       ,.mpi.worker.applyLB
       ,mpi.abort
       ,mpi.allgather
       ,mpi.allgather.Robj
       ,mpi.allgatherv
       ,mpi.allreduce
       ,mpi.any.source
       ,mpi.any.tag
       ,mpi.apply
       ,mpi.applyLB
       ,mpi.barrier
       ,mpi.bcast
       ,mpi.bcast.Robj
       ,mpi.bcast.Robj2slave
       ,mpi.bcast.Rfun2slave
       ,mpi.bcast.data2slave
       ,mpi.bcast.cmd
       ,mpi.cancel
       ,mpi.cart.coords
       ,mpi.cart.create
       ,mpi.cart.get
       ,mpi.cart.rank
       ,mpi.cart.shift
       ,mpi.cartdim.get
       ,mpi.close.Rslaves
       ,mpi.comm.c2f
       ,mpi.comm.disconnect
       ,mpi.comm.dup
       ,mpi.comm.free
       ,mpi.comm.get.parent
       ,mpi.comm.is.null
       ,mpi.comm.maxsize
       ,mpi.comm.rank
       ,mpi.comm.remote.size
       ,mpi.comm.set.errhandler
       ,mpi.comm.size
       ,mpi.comm.spawn
       ,mpi.comm.test.inter
       ,mpi.dims.create
       ,mpi.exit
       ,mpi.finalize
       ,mpi.gather
       ,mpi.gather.Robj
       ,mpi.gatherv
       ,mpi.get.count
       ,mpi.get.processor.name
       ,mpi.get.sourcetag
       ,mpi.hostinfo
       ,mpi.iapply
       ,mpi.iapplyLB
       ,mpi.info.create
       ,mpi.info.free
       ,mpi.info.get
       ,mpi.info.set
       ,mpi.intercomm.merge
       ,mpi.iparApply
       ,mpi.iparCapply
       ,mpi.iparLapply
       ,mpi.iparMM
       ,mpi.iparRapply
       ,mpi.iparReplicate
       ,mpi.iparSapply
       ,mpi.iprobe
       ,mpi.irecv
       ,mpi.is.master
       ,mpi.isend
       ,mpi.isend.Robj
       ,mpi.parApply
       ,mpi.parCapply
       ,mpi.parLapply
       ,mpi.parMM
       ,mpi.parRapply
       ,mpi.parReplicate
       ,mpi.parSapply
       ,mpi.parSim
       ,mpi.probe
       ,mpi.proc.null
       ,mpi.quit
       ,mpi.realloc.comm
       ,mpi.realloc.request
       ,mpi.realloc.status
       ,mpi.recv
       ,mpi.recv.Robj
       ,mpi.reduce
       ,mpi.remote.exec
       ,mpi.request.maxsize
       ,mpi.scatter
       ,mpi.scatter.Robj
       ,mpi.scatterv
       ,mpi.send
       ,mpi.send.Robj
       ,mpi.sendrecv
       ,mpi.sendrecv.replace
       ,mpi.setup.rngstream
       ,mpi.spawn.Rslaves
       ,mpi.status.maxsize
       ,mpi.test
       ,mpi.test.cancelled
       ,mpi.testall
       ,mpi.testany
       ,mpi.testsome
       ,mpi.universe.size
       ,mpi.wait
       ,mpi.waitall
       ,mpi.waitany
       ,mpi.waitsome
       ,slave.hostinfo
       ,string
       ,tailslave.log
       ,np.mpi.initialize
       ,npRmpi.start
       ,npRmpi.stop
       ,npRmpi.session.info
       ,npudensbw
       ,npudistbw
       ,npudens
       ,npudist
       ,npregbw
       ,npreg
       ,npregiv
       ,npregivderiv       
       ,npplreg
       ,npplregbw
       ,npcdensbw
       ,npcdens
       ,npcdist
       ,npcdistbw
       ,npcopula
       ,npdeptest       
       ,npsdeptest
       ,npplot
       ,npksum
       ,npqreg
       ,npquantile
       ,npcmstest
       ,npconmode
       ,npdeneqtest
       ,npindex
       ,npindexbw
       ,npqcmstest       
       ,npseed
       ,npuniden.boundary
       ,npuniden.reflect
       ,npuniden.sc
       ,np.pairs
       ,np.pairs.plot
       ,npscoef
       ,npscoefbw
       ,npsigtest
       ,npsymtest
       ,npunitest       
       ,uocquantile
       ,se
       ,gradients
       ,nptgauss
       )

S3method(print,bandwidth)
S3method(print,dbandwidth)
S3method(print,npdensity)
S3method(print,npdistribution)
S3method(print,rbandwidth)
S3method(print,npregression)
S3method(print,plbandwidth)
S3method(print,plregression)
S3method(print,conbandwidth)
S3method(print,condbandwidth)
S3method(print,condensity)
S3method(print,condistribution)
S3method(print,npkernelsum)
S3method(print,qregression)
S3method(print,cmstest)
S3method(print,conmode)
S3method(print,deptest)
S3method(print,sdeptest)
S3method(print,sibandwidth)
S3method(print,singleindex)
S3method(print,sigtest)
S3method(print,scbandwidth)
S3method(print,smoothcoefficient)
S3method(print,symtest)
S3method(print,deneqtest)
S3method(print,unitest)
##


S3method(plot, bandwidth)
S3method(plot, dbandwidth)
S3method(plot, rbandwidth)
S3method(plot, conbandwidth)
S3method(plot, condbandwidth)
S3method(plot, plbandwidth)
S3method(plot, sibandwidth)
S3method(plot, scbandwidth)

S3method(plot, npdensity)
S3method(plot, npdistribution)
S3method(plot, npregression)
S3method(plot, plregression)
S3method(plot, condensity)
S3method(plot, condistribution)
S3method(plot, qregression)
S3method(plot, singleindex)
S3method(plot, smoothcoefficient)

S3method(fitted, npdensity)
S3method(fitted, npdistribution)
S3method(fitted, npregression)
S3method(fitted, plregression)
S3method(fitted, condensity)
S3method(fitted, condistribution)
S3method(fitted, conmode)
S3method(fitted, qregression)
S3method(fitted, singleindex)
S3method(fitted, smoothcoefficient)

S3method(residuals, npregression)
S3method(residuals, plregression)
S3method(residuals, singleindex)
S3method(residuals, smoothcoefficient)

S3method(coef, plregression)
S3method(coef, singleindex)
S3method(coef, sibandwidth)
S3method(coef, smoothcoefficient)

S3method(vcov, plregression)
S3method(vcov, singleindex)

S3method(predict, npregression)
S3method(predict, bandwidth)
S3method(predict, dbandwidth)
S3method(predict, conbandwidth)
S3method(predict, condbandwidth)
S3method(predict, condensity)
S3method(predict, condistribution)
S3method(predict, npdensity)
S3method(predict, npdistribution)
S3method(predict, plbandwidth)
S3method(predict, plregression)
S3method(predict, qregression)
S3method(predict, rbandwidth)
S3method(predict, scbandwidth)
S3method(predict, sibandwidth)
S3method(predict, singleindex)
S3method(predict, smoothcoefficient)

S3method(summary, bandwidth)
S3method(summary, dbandwidth)
S3method(summary, conbandwidth)
S3method(summary, condbandwidth)
S3method(summary, rbandwidth)
S3method(summary, plbandwidth)
S3method(summary, sibandwidth)
S3method(summary, scbandwidth)

S3method(summary, npdensity)
S3method(summary, npdistribution)
S3method(summary, condensity)
S3method(summary, condistribution)
S3method(summary, npregression)
S3method(summary, cmstest)
S3method(summary, conmode)
S3method(summary, deptest)
S3method(summary, sdeptest)
S3method(summary, sigtest)
S3method(summary, plregression)
S3method(summary, qregression)
S3method(summary, singleindex)
S3method(summary, smoothcoefficient)
S3method(summary, symtest)
S3method(summary, deneqtest)
S3method(summary, unitest)

S3method(se, npdensity)
S3method(se, npdistribution)
S3method(se, condensity)
S3method(se, condistribution)
S3method(se, npregression)
S3method(se, qregression)
S3method(se, singleindex)
S3method(se, smoothcoefficient)

S3method(gradients, condensity)
S3method(gradients, condistribution)
S3method(gradients, npregression)
S3method(gradients, qregression)
S3method(gradients, singleindex)

S3method(mode, conmode)

S3method(quantile, qregression)

S3method(npudensbw, NULL)
S3method(npudensbw, formula)
S3method(npudensbw, default)
S3method(npudensbw, bandwidth)

S3method(as.double,bandwidth)

S3method(npudens, formula)
S3method(npudens, call)
S3method(npudens, default)
S3method(npudens, bandwidth)

S3method(npudistbw, NULL)
S3method(npudistbw, formula)
S3method(npudistbw, default)
S3method(npudistbw, dbandwidth)

S3method(as.double, dbandwidth)

S3method(npudist, formula)
S3method(npudist, call)
S3method(npudist, default)
S3method(npudist, dbandwidth)

S3method(npregbw, NULL)
S3method(npregbw, formula)
S3method(npregbw, default)
S3method(npregbw, rbandwidth)

S3method(npreg, formula)
S3method(npreg, call)
S3method(npreg, default)
S3method(npreg, rbandwidth)

S3method(npsigtest, formula)
S3method(npsigtest, call)
S3method(npsigtest, default)
S3method(npsigtest, npregression)
S3method(npsigtest, rbandwidth)

S3method(npplreg, formula)
S3method(npplreg, call)
S3method(npplreg, default)
S3method(npplreg, plbandwidth)

S3method(npplregbw, NULL)
S3method(npplregbw, formula)
S3method(npplregbw, default)
S3method(npplregbw, plbandwidth)

S3method(npcdensbw, NULL)
S3method(npcdensbw, formula)
S3method(npcdensbw, default)
S3method(npcdensbw, conbandwidth)

S3method(npcdens, formula)
S3method(npcdens, call)
S3method(npcdens, default)
S3method(npcdens, conbandwidth)

S3method(npcdist, formula)
S3method(npcdist, default)
S3method(npcdist, call)
S3method(npcdist, condbandwidth)

S3method(npcdistbw, NULL)
S3method(npcdistbw, formula)
S3method(npcdistbw, default)
S3method(npcdistbw, condbandwidth)

S3method(npplot, rbandwidth)
S3method(npplot, bandwidth)
S3method(npplot, dbandwidth)
S3method(npplot, plbandwidth)
S3method(npplot, conbandwidth)
S3method(npplot, condbandwidth)
S3method(npplot, sibandwidth)
S3method(npplot, scbandwidth)

S3method(compute.bootstrap.errors, rbandwidth)
S3method(compute.bootstrap.errors, bandwidth)
S3method(compute.bootstrap.errors, dbandwidth)
S3method(compute.bootstrap.errors, conbandwidth)
S3method(compute.bootstrap.errors, condbandwidth)

S3method(npksum, integer)
S3method(npksum, numeric)
S3method(npksum, formula)
S3method(npksum, default)

S3method(npqreg, formula)
S3method(npqreg, call)
S3method(npqreg, default)
S3method(npqreg, conbandwidth)
S3method(npqreg, condbandwidth)

S3method(npconmode, formula)
S3method(npconmode, call)
S3method(npconmode, default)
S3method(npconmode, conbandwidth)

S3method(npindexbw, NULL)
S3method(npindexbw, formula)
S3method(npindexbw, default)
S3method(npindexbw, sibandwidth)

S3method(npscoefbw, NULL)
S3method(npscoefbw, formula)
S3method(npscoefbw, default)
S3method(npscoefbw, scbandwidth)

S3method(npindex, default)
S3method(npindex, call)
S3method(npindex, formula)
S3method(npindex, sibandwidth)

S3method(npscoef, default)
S3method(npscoef, call)
S3method(npscoef, formula)
S3method(npscoef, scbandwidth)
