useDynLib(CDM)

########################################################
################ EXPORTS ###############################

export(din, sim.din , gdina ,
    sim.gdina, sim.gdina.prepare ,
    skill.cor  , # , gdina.fit
    equivalent.dina ,
    cdm.est.class.accuracy,
    modelfit.cor.din,
    modelfit.cor ,
    modelfit.cor2 , 
    gdm ,
    din.equivalent.class ,
    itemfit.rmsea ,
    din.validate.qmatrix ,
    din.deterministic ,
    itemfit.sx2 ,
    skillspace.approximation ,
    skillspace.hierarchy ,
    ideal.response.pattern ,
    gdd ,
    sequential.items ,
    cdi.kli ,
    gdina.wald ,
    gdina.dif ,
    skill.polychor ,
    mcdina ,
    slca ,
    entropy.lca ,
    skillspace.full ,
    personfit.appropriateness ,
    IRT.likelihood ,
    IRT.posterior ,
    IRT.irfprob ,
    IRT.factor.scores ,
    IRT.itemfit ,
    IRT.modelfit ,
    IRT.IC ,
    IRT.compareModels ,
    IRT.anova ,
    IRT.expectedCounts ,
    IRT.irfprobPlot ,
    IRT.predict ,
    IRT.data ,
    IRT.se ,
    IRT.repDesign,
    IRT.jackknife,
    IRT.derivedParameters
    )

# internal functions; not intended to be visible to users
# export(check.input, rowMaxs, rowProds2, plot.din, print.din, summary.din,
#        print.summary.din)



#####################################################
######### S3 methods ################################



#*** anova
S3method(anova, din)
S3method(anova, gdina)
S3method(anova, mcdina)
S3method(anova, gdm)
S3method(anova, slca)


#*** coef
S3method(coef, din)
S3method(coef, gdina)
S3method(coef, mcdina)
S3method(coef, gdm)
S3method(coef, slca)
S3method(coef, IRT.jackknife)


#*** confint
S3method(confint,din)


#*** logLik
S3method(logLik, din)
S3method(logLik, gdina)
S3method(logLik, gdm)
S3method(logLik, mcdina)
S3method(logLik, slca)



#*** plot
S3method(plot, din)
S3method(plot, gdina)
S3method(plot, gdm)
S3method(plot, personfit.appropriateness )
S3method(plot, slca)
S3method(plot, itemfit.sx2)



#*** predict
S3method(predict,din)
S3method(predict,gdina)
S3method(predict,mcdina)
S3method(predict,gdm)
S3method(predict,slca)



#*** print
S3method(print, din)
S3method(print, summary.din)
S3method(print, gdina)
S3method(print, gdm)
S3method(print, slca)
S3method(print, mcdina)



#*** summary
S3method(summary, modelfit.cor.din)
S3method(summary, gdina.wald)
S3method(summary, gdina.dif)
S3method(summary, itemfit.sx2)
S3method(summary, din)
S3method(summary, gdina)
S3method(summary, gdm)
S3method(summary, mcdina)
S3method(summary, slca)
S3method(summary, entropy.lca)
S3method(summary, cdi.kli)
S3method(summary, personfit.appropriateness )
S3method(summary, IRT.compareModels )
S3method(summary, IRT.jackknife)


#*** vcov
S3method(vcov,din)
S3method(vcov, IRT.jackknife)


#############################################
######### IRT.xxx methods ###################


#*** IRT.data
S3method(IRT.data, din)
S3method(IRT.data, gdina)
S3method(IRT.data, mcdina)
S3method(IRT.data, gdm)
S3method(IRT.data, slca)


#*** IRT.expectedCounts
S3method(IRT.expectedCounts, din)
S3method(IRT.expectedCounts, gdina)
S3method(IRT.expectedCounts, mcdina)
S3method(IRT.expectedCounts, gdm)
S3method(IRT.expectedCounts, slca)


#*** IRT.factor.scores
S3method(IRT.factor.scores, din)
S3method(IRT.factor.scores, gdina)
S3method(IRT.factor.scores, mcdina)
S3method(IRT.factor.scores, gdm)
S3method(IRT.factor.scores, slca)


#*** IRT.irfprob
S3method(IRT.irfprob, din)
S3method(IRT.irfprob, gdina)
S3method(IRT.irfprob, mcdina)
S3method(IRT.irfprob, gdm)
S3method(IRT.irfprob, slca)


#*** IRT.itemfit
S3method(IRT.itemfit, din)
S3method(IRT.itemfit, gdina)
S3method(IRT.itemfit, gdm)
S3method(IRT.itemfit, slca)


#*** IRT.jackknife
S3method(IRT.jackknife, gdina)



#*** IRT.likelihood
S3method(IRT.likelihood, din)
S3method(IRT.likelihood, gdina)
S3method(IRT.likelihood, mcdina)
S3method(IRT.likelihood, gdm)
S3method(IRT.likelihood, slca)



#*** IRT.modelfit
S3method(IRT.modelfit, din)
S3method(IRT.modelfit, gdina)



#*** IRT.posterior
S3method(IRT.posterior, din)
S3method(IRT.posterior, gdina)
S3method(IRT.posterior, mcdina)
S3method(IRT.posterior, gdm)
S3method(IRT.posterior, slca)


#*** IRT.se
S3method(IRT.se, din)








####################################################
############# IMPORTS ##############################

import(MASS)
importFrom(polycor,polychor)
import(psych)
import(mvtnorm)
import(graphics, stats)
importFrom(utils,packageDescription)
importFrom(sfsmisc,QUnif)
importFrom(Rcpp,evalCpp)
importFrom(plyr,rbind.fill)
importFrom(WrightMap,wrightMap)
importFrom(lattice,xyplot)
