import("methods")
importFrom("stats", "fft", "mvfft", "rnorm", "reshape")
importFrom("httr", "POST", "GET", "content", "stop_for_status", "add_headers")
importFrom("uuid", "UUIDgenerate")
importFrom("utils", "getParseData", "getS3method")
import("Matrix")

exportPattern("^adr[[:alpha:]]+")
exportPattern("^adr.[[:alpha:]]+")
exportPattern("^adr_[[:alpha:]]+")
exportPattern("^dop_[[:alpha:]]+")

exportPattern("^d$")
exportPattern("^adj$")
exportPattern("^adj.rec$")
exportPattern("^adj.ret$")
exportPattern("^dcall$")
exportPattern("^acall.rec$")
exportPattern("^acall.ret$")
exportPattern("^d_zeros$")
exportPattern("^df_[[:alpha:]]+")
exportPattern("^a_[a-zA-Z0-9_.]+$")
exportPattern("^rec_[a-zA-Z0-9_.]+$")
exportPattern("^ret_[a-zA-Z0-9_.]+$")
exportPattern("^partial_[a-zA-Z0-9_.]+$")
exportPattern("^dpartial_[a-zA-Z0-9_.]+$")

exportPattern("^size$")
exportPattern("^numel$")
exportPattern("^eye$")
exportPattern("^zeros$")
exportPattern("^ones$")
exportPattern("^rand$")
exportPattern("^sub2ind$")

exportPattern("^safedim$")
exportPattern("^sqdim$")
exportPattern("^totalNumel$")
exportPattern("^relmaxnorm$")
exportPattern("^bench$")
exportPattern("^globalADMode$")
exportPattern("^globalNDD$")
exportPattern("^globalADROptions$")
exportPattern("^createZeroGradients$")
exportPattern("^createFullGradients$")
exportPattern("^createSeededGradients$")
exportPattern("^createSeededGradientsFor$")
exportPattern("^jacFor$")
exportPattern("^whichargs$")

exportPattern("^advec$")
exportPattern("^[[:alpha:]]+_advec$")
exportPattern("^is.advec$")
exportPattern("^adtay$")
exportPattern("^[[:alpha:]]+.adtay$")
exportClasses(advec, adtay)
exportMethods(dim, length, getdd, setdd, repmat, diag,
              as.array, as.matrix, pnorm, dnorm, norm, solve, svd, rbind2, cbind2,
              array, dimnames, 'dimnames<-')
exportMethods(Conj, Im, Re, diff, rev, sum, t, is.na)
exportMethods('[', '[[', '[<-', '[[<-')
exportMethods(fft, mvfft)
exportMethods(convolve)
exportMethods(aperm)
exportMethods(colSums,colMeans)
