useDynLib(mclustAddons, .registration = TRUE)

# importFrom(Rcpp, evalCpp)
importFrom("Rcpp", sourceCpp)
# exportPattern("^[[:alpha:]]+")

# Import all packages listed as Imports or Depends
import("stats", "graphics", "grDevices", "utils", "Rcpp",
       "mclust", "methods", "foreach", "iterators")

# Exported functions and methods

export("densityMclustBounded", 
       "print.densityMclustBounded",
       "summary.densityMclustBounded",
       "print.summary.densityMclustBounded",
       "plot.densityMclustBounded",
       "predict.densityMclustBounded",
       "cdfDensityBounded", "quantileDensityBounded", 
       "densityMclustBounded.diagnostic")
S3method("print", "densityMclustBounded")
S3method("summary", "densityMclustBounded")
S3method("print", "summary.densityMclustBounded")
S3method("plot", "densityMclustBounded")
S3method("predict", "densityMclustBounded")

export("rangepowerTransform", "rangepowerBackTransform")

export("GaussianMixtureMEM",
       "MclustMEM",
       "print.MclustMEM",
       "summary.MclustMEM",
       "print.summary.MclustMEM",
       "plot.MclustMEM")
S3method("print", "MclustMEM")
S3method("summary", "MclustMEM")
S3method("print", "summary.MclustMEM")
S3method("plot", "MclustMEM")

export("EntropyGMM",
       "EntropyGMM.densityMclust",
       "EntropyGMM.densityMclustBounded",
       "EntropyGMM.Mclust",
       "EntropyGMM.matrix",
       "EntropyGMM.data.frame",
       "EntropyGauss",
       "nats2bits",
       "bits2nats")
S3method("EntropyGMM", "densityMclust")
S3method("EntropyGMM", "densityMclustBounded")
S3method("EntropyGMM", "Mclust")
S3method("EntropyGMM", "matrix")
S3method("EntropyGMM", "data.frame")

# export("logsumexp", "softmax", "meWeighted")
