import(Rcpp)
importClassesFrom(Matrix, dgeMatrix, dgCMatrix, dgRMatrix, dsyMatrix)
importMethodsFrom(Matrix, isSymmetric, dim, as.matrix, coerce, colMeans, colSums)

S3method(eigs, matrix)
S3method(eigs, dgeMatrix)
S3method(eigs, dgCMatrix)
S3method(eigs, dgRMatrix)
S3method(eigs, dsyMatrix)
S3method(eigs, dsCMatrix)
S3method(eigs, dsRMatrix)
S3method(eigs, "function")

S3method(eigs_sym, matrix)
S3method(eigs_sym, dgeMatrix)
S3method(eigs_sym, dgCMatrix)
S3method(eigs_sym, dgRMatrix)
S3method(eigs_sym, "function")

S3method(svds, matrix)
S3method(svds, dgeMatrix)
S3method(svds, dgCMatrix)
S3method(svds, dgRMatrix)
S3method(svds, dsyMatrix)
S3method(svds, dsCMatrix)
S3method(svds, dsRMatrix)
S3method(svds, "function")

export(eigs)
export(eigs_sym)
export(svds)

useDynLib(RSpectra)
