# Copyright (c) 2016-2018, The University of Texas at Austin 
# & University of California, Merced.
#
# All Rights reserved.
# See file COPYRIGHT for details.
#
# This file is part of the hIPPYlib library. For more information and source code
# availability see https://hippylib.github.io.
#
# hIPPYlib is free software; you can redistribute it and/or modify it under the
# terms of the GNU General Public License (as published by the Free
# Software Foundation) version 2.0 dated June 1991.


from __future__ import absolute_import, division, print_function

# common
from .linalg import MatMatMult, MatPtAP, MatAtB, Transpose, \
                   to_dense, trace, get_diagonal, estimate_diagonal_inv2,  \
                   amg_method, DiagonalOperator, Solver2Operator, Operator2Solver
from .multivector import MultiVector, MatMvMult, MvDSmatMult

# hIPPYlib algorithms
from .cgsolverSteihaug import CGSolverSteihaug, CGSolverSteihaug_ParameterList
from .NewtonCG import ReducedSpaceNewtonCG, ReducedSpaceNewtonCG_ParameterList
from .bfgs import BFGS_operator, BFGS, BFGS_ParameterList
from .steepestDescent import SteepestDescent, SteepestDescent_ParameterList
from .randomizedEigensolver import singlePass, doublePass, singlePassG, doublePassG
from .lowRankOperator import LowRankOperator, LowRankOperatorUV
from .traceEstimator import TraceEstimator
from .cgsampler import CGSampler