useDynLib(HiDimDA,.registration=TRUE)
import(stats)
import(splines)

importFrom(graphics, abline, hist, lines, matplot, par, points, text, title)

S3method("*",DMat)
S3method("*",ShrnkMat) 
S3method("*",ShrnkMatInv) 
S3method("*",SigFq)
S3method("*",SigFqInv)
S3method("+",DMat)
S3method("+",ShrnkMat)
S3method("+",ShrnkMatInv)
S3method("+",SigFq) 
S3method("+",SigFqInv) 
S3method("-",DMat) 
S3method("-",ShrnkMat) 
S3method("-",ShrnkMatInv)
S3method("-",SigFq)
S3method("-",SigFqInv)
S3method("/",DMat)
S3method("/",ShrnkMat)
S3method("/",ShrnkMatInv)
S3method("/",SigFq)
S3method("/",SigFqInv)
S3method(CovE,RFcanlda)
S3method(CovE,RFcllda)
S3method(CovE,Scanlda)
S3method(CovE,Scllda)
S3method(Dlda,data.frame)
S3method(Dlda,default)
S3method(ICovE,RFcanlda)
S3method(ICovE,RFcllda)
S3method(ICovE,Scanlda)
S3method(ICovE,Scllda)
S3method(LeftMult,DMat)
S3method(LeftMult,ShrnkMat)
S3method(LeftMult,ShrnkMatInv)
S3method(LeftMult,SigFq)
S3method(LeftMult,SigFqInv)
S3method(LeftMult,matrix)
S3method(Mlda,data.frame)
S3method(Mlda,default)
S3method(RFlda,data.frame)
S3method(RFlda,default)
S3method(RightMult,DMat)
S3method(RightMult,ShrnkMat)
S3method(RightMult,ShrnkMatInv)
S3method(RightMult,SigFq)
S3method(RightMult,SigFqInv)
S3method(RightMult,matrix)
S3method(Slda,data.frame)
S3method(Slda,default)
S3method(as.matrix,DMat)
S3method(as.matrix,ShrnkMat)
S3method(as.matrix,ShrnkMatInv)
S3method(as.matrix,SigFq)
S3method(as.matrix,SigFqInv)
S3method(coef,canldaRes)
S3method(coef,clldaRes)
S3method(predict,canldaRes)
S3method(predict,clldaRes)
S3method(print,DMat)
S3method(print,ShrnkMat)
S3method(print,ShrnkMatInv)
S3method(print,SigFq)
S3method(print,SigFqInv)
S3method(print,canldaRes)
S3method(print,clldaRes)
S3method(solve,DMat)
S3method(solve,ShrnkMat)
S3method(solve,ShrnkMatInv)
S3method(solve,SigFq)
S3method(solve,SigFqInv)

export(DMat, ShrnkMat, ShrnkMatInv, SigFq, SigFqInv, MldaInvE, ShrnkSigE, SelectV, DACrossVal, FrobSigAp, FrobSigAp1, ForbSigap, ForbSigap1)
exportPattern("Dlda.*", "Mlda.*", "Slda.*", "RFlda.*", "LeftMult.*", "RightMult.*", "CovE.*", "ICovE.*", 
"*.canldaRes", "*.clldaRes", "*.ScanldaRes", "*.SclldaRes", "*.RFcanldaRes", "*.RFclldaRes",  
"*.Dlda", "*.RFlda", "*.DMat", "*.ShrnkMat", "*.ShrnkMatInv", "*.SigFq", "*.SigFqInv")

