module glmSolverjl

include("io.jl")
include("link.jl")
include("family.jl")
include("solver.jl")
include("tools.jl")
include("fit.jl")
include("sample.jl")
include("simulate.jl")

export matrixToBlock,
       write2DArray,
       writeBlockMatrix,
       read2DArray,
       readBlockMatrix,
       writeNDArray,
       readNDArray,
       AbstractLink,
       IdentityLink,
       LogLink,
       InverseLink,
       NegativeBinomialLink,
       LogitLink,
       ProbitLink,
       CauchitLink,
       OddsPowerLink,
       LogComplimentLink,
       LogLogLink,
       ComplementaryLogLogLink,
       PowerLink,
       linkfun,
       deta_dmu,
       linkinv,
       AbstractDistribution,
       BernoulliDistribution,
       BinomialDistribution,
       GammaDistribution,
       PoissonDistribution,
       GaussianDistribution,
       InverseGaussianDistribution,
       NegativeBernoulliDistribution,
       PowerDistribution,
       init!,
       variance,
       devianceResiduals,
       AbstractSolver,
       VanillaSolver,
       QRSolver,
       solve,
       AbstractInverse,
       GETRIInverse,
       POTRIInverse,
       SYTRFInverse,
       GESVDInverse,
       inv,
       GESVSolver,
       POSVSolver,
       SYSVSolver,
       GELSSolver,
       GELSYSolver,
       GELSDSolver,
       AbstractGradientDescentSolver,
       GradientDescentSolver,
       MomentumSolver,
       NesterovSolver,
       AdagradSolver,
       AdadeltaSolver,
       RMSpropSolver,
       AdamSolver,
       AdaMaxSolver,
       NAdamSolver,
       AMSGradSolver,
       XWX,
       solve!,
       cov,
       Z,
       W,
       Control,
       absoluteError,
       relativeError,
       AbstractMatrixType,
       RegularData,
       AbstractGLM,
       GLM,
       GLMBlock1D,
       Block1D,
       Block1DParallel,
       glm,
       generateRandomMatrix,
       cov2cor,
       cor2cov,
       mvrnorm,
       AbstractSampleDistribution,
       BetaSampleDistribution,
       sample,
       UniformSampleDistribution,
       min,
       max,
       range,
       I,
       AbstractRandomCorrelationMatrix,
       BetaGenerator,
       OnionGenerator,
       UniformGenerator,
       VineGenerator,
       randomCorrelationMatrix,
       simulateData,
       AbstractPoissonDistribution,
       PoissonSampleDistribution

end # module
