useDynLib(mclust)

# Export all names
# exportPattern(".")

# Import all packages listed as Imports or Depends
import(stats, utils)

# export(.mclust)
export(mclust.options, emControl)

export(em, emE, emEEE, emEEI, emEEV, emEII, emEVI,
           emV, emVEI, emVEV, emVII, emVVI, emVVV,
           emEVV, emVEE, emEVE, emVVE,
           emX, emXII, emXXI, emXXX)
export(me, meE, meEEE, meEEI, meEEV, meEII, meEVI,
           meV, meVEI, meVEV, meVII, meVVI, meVVV,
           meEVV, meVEE, meEVE, meVVE,
           meX, meXII, emXXI, emXXX)
export(sim, simE, simEEE, simEEI, simEEV, simEII, simEVI, 
            simV, simVEI, simVEV, simVII, simVVI, simVVV,
            simEVV, simVEE, simEVE, simVVE)
export(estep, estepE, estepEEE, estepEEI, estepEEV, estepEII, estepEVI, 
              estepV, estepVEI, estepVEV, estepVII, estepVVI, estepVVV,
              estepEVV, estepVEE, estepEVE, estepVVE)
export(mstep, mstepE, mstepEEE, mstepEEI, mstepEEV, mstepEII, mstepEVI, 
              mstepV, mstepVEI, mstepVEV, mstepVII, mstepVVI, mstepVVV,
              mstepEVV, mstepVEE, mstepEVE, mstepVVE)
export(mvn, mvnX, mvnXII, mvnXXI, mvnXXX)
export(cdens, cdensE, cdensEEE, cdensEEI, cdensEEV, cdensEII, cdensEVI, 
              cdensV, cdensVEI, cdensVEV, cdensVII, cdensVVI, cdensVVV, 
              cdensEVV, cdensVEE, cdensEVE, cdensVVE,
              cdensX, cdensXII, cdensXXI, cdensXXX)

export(bic, pickBIC, nVarParams, nMclustParams)

export(map, unmap, partconv, partuniq)

export(mclustModel, mclustModelNames, checkModelName, mclustVariance)

export(decomp2sigma, sigma2decomp)

export(imputeData, imputePairs)

export(mapClass, classError, adjustedRandIndex)

export(clPairs, mclust1Dplot, mclust2Dplot, mvn2plot, surfacePlot, uncerPlot)
export(coordProj, randProj)

export(priorControl, defaultPrior, hypvol)

export(hc, print.hc)
S3method("print", "hc")
export(hcE, hcEEE, hcEII, hcV, hcVII, hcVVV)
export(hclass, randomPairs)

export(mclustBIC, print.mclustBIC, summary.mclustBIC, 
       print.summary.Mclust, plot.mclustBIC,
       summaryMclustBIC, summaryMclustBICn)
S3method("print", "mclustBIC")
S3method("summary", "mclustBIC")
S3method("print", "summary.mclustBIC")
S3method("plot", "mclustBIC")

export(Mclust, print.Mclust, summary.Mclust, print.summary.Mclust, plot.Mclust,
       predict.Mclust, logLik.Mclust)
S3method("print", "Mclust")
S3method("summary", "Mclust")
S3method("print", "summary.Mclust")
S3method("plot", "Mclust")
S3method("predict", "Mclust")
S3method("logLik", "Mclust")

export(densityMclust, plot.densityMclust, dens, predict.densityMclust, 
       cdfMclust, quantileMclust, densityMclust.diagnostic, 
       plotDensityMclust1, plotDensityMclust2, plotDensityMclustd)
S3method("plot", "densityMclust")
S3method("predict", "densityMclust")

export(MclustDA, print.MclustDA, summary.MclustDA, print.summary.MclustDA,
       plot.MclustDA, predict.MclustDA, cvMclustDA, getParameters.MclustDA,
       logLik.MclustDA)
S3method("print", "MclustDA")
S3method("summary", "MclustDA")
S3method("print", "summary.MclustDA")
S3method("plot", "MclustDA")
S3method("predict", "MclustDA")
S3method("logLik", "MclustDA")

export(MclustDR, print.MclustDR, summary.MclustDR, print.summary.MclustDR,
       plot.MclustDR, plotEvalues.MclustDR, projpar.MclustDR, 
       predict.MclustDR, predict2D.MclustDR)
S3method("print", "MclustDR")
S3method("summary", "MclustDR")
S3method("print", "summary.MclustDR")
S3method("plot", "MclustDR")
S3method("predict", "MclustDR")

export(clustCombi, print.clustCombi, plot.clustCombi, combiPlot, entPlot, combMat)
S3method("plot", "clustCombi")
S3method("print", "clustCombi")

export(me.weighted)

export(icl, mclustICL, print.mclustICL, 
       summary.mclustICL, print.summary.mclustICL, 
       plot.mclustICL)
S3method( "icl", "Mclust")
S3method( "icl", "MclustDA")
S3method( "print", "mclustICL")
S3method( "summary", "mclustICL")
S3method( "print", "summary.mclustICL")
S3method( "plot", "mclustICL")

export(mclustBootstrapLRT, print.mclustBootstrapLRT, plot.mclustBootstrapLRT)
S3method( "print", "mclustBootstrapLRT")
S3method( "plot", "mclustBootstrapLRT")

export(MclustBootstrap, print.MclustBootstrap, 
       summary.MclustBootstrap, print.summary.MclustBootstrap)
S3method( "print", "MclustBootstrap")
S3method( "summary", "MclustBootstrap")
S3method( "print", "summary.MclustBootstrap")

# deprecated functions
export(cv.MclustDA, cv1EMtrain, bicEMtrain)
