## simple_triplet stuff
export("as.simple_triplet_matrix",
       "is.simple_triplet_matrix",
       "simple_triplet_diag_matrix",
       "simple_triplet_matrix",
       "simple_triplet_zero_matrix"
       )

S3method("Ops", "simple_triplet_matrix")
S3method("[", "simple_triplet_matrix")
S3method("as.matrix", "simple_triplet_matrix")
S3method("as.simple_triplet_matrix", "matrix")
S3method("as.simple_triplet_matrix", "simple_triplet_matrix")
S3method("as.simple_triplet_matrix", "dgTMatrix")
S3method("c", "simple_triplet_matrix")
S3method("cbind", "simple_triplet_matrix")
S3method("dim", "simple_triplet_matrix")
S3method("dimnames", "simple_triplet_matrix")
S3method("dimnames<-", "simple_triplet_matrix")
S3method("duplicated", "simple_triplet_matrix")
S3method("is.numeric", "simple_triplet_matrix")
S3method("print", "simple_triplet_matrix")
S3method("rbind", "simple_triplet_matrix")
S3method("t", "simple_triplet_matrix")
S3method("unique", "simple_triplet_matrix")

## enhanced stuff
useDynLib(slam)

export("rowSums",
       "colSums",
       "rowMeans",
       "colMeans"
      )

S3method("rowSums", "default")
S3method("rowSums", "simple_triplet_matrix")

S3method("colSums", "default")
S3method("colSums", "simple_triplet_matrix")

S3method("rowMeans", "default")
S3method("rowMeans", "simple_triplet_matrix")

S3method("colMeans", "default")
S3method("colMeans", "simple_triplet_matrix")


export("tcrossprod.simple_triplet_matrix")

## array stuff
export("as.simple_sparse_array",
       "is.simple_sparse_array",
       "simple_sparse_array"
       )

S3method("[", "simple_sparse_array")
S3method("as.array", "simple_sparse_array")
S3method("as.simple_sparse_array", "array")
S3method("as.simple_sparse_array", "simple_sparse_array")
S3method("dim", "simple_sparse_array")
S3method("dimnames", "simple_sparse_array")
S3method("print", "simple_sparse_array")
