# This file was automatically generated by SWIG (http://www.swig.org).
# Version 3.0.12
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

"""

PyTrilinos.AztecOO is the python interface to the Trilinos iterative
linear solver package AztecOO:

    http://trilinos.sandia.gov/packages/aztecoo

AztecOO is the object-oriented interface to Aztec, Sandia's venerable
Krylov-space linear system solver package.  Note that the C++ version
of AztecOO uses the prefix 'AztecOO_' which has been stripped from the
python version.  AztecOO requires the Epetra module. The IFPACK and ML
modules can extend the preconditioning capabilities of AztecOO.

AztecOO has a single class:

    * AztecOO  - Object-oriented interface to Aztec package

For examples of usage, please consult the following scripts in the
example subdirectory of the PyTrilinos package:

    * exAztecOO.py
    * exAztecOO_Operator.py
    * exAztecOO_RowMatrix.py
    * exAztecOO_BasicRowMatrix.py

"""


from sys import version_info as _swig_python_version_info
if _swig_python_version_info >= (2, 7, 0):
    def swig_import_helper():
        import importlib
        pkg = __name__.rpartition('.')[0]
        mname = '.'.join((pkg, '_AztecOO')).lstrip('.')
        try:
            return importlib.import_module(mname)
        except ImportError:
            return importlib.import_module('_AztecOO')
    _AztecOO = swig_import_helper()
    del swig_import_helper
elif _swig_python_version_info >= (2, 6, 0):
    def swig_import_helper():
        from os.path import dirname
        import imp
        fp = None
        try:
            fp, pathname, description = imp.find_module('_AztecOO', [dirname(__file__)])
        except ImportError:
            import _AztecOO
            return _AztecOO
        try:
            _mod = imp.load_module('_AztecOO', fp, pathname, description)
        finally:
            if fp is not None:
                fp.close()
        return _mod
    _AztecOO = swig_import_helper()
    del swig_import_helper
else:
    import _AztecOO
del _swig_python_version_info

try:
    _swig_property = property
except NameError:
    pass  # Python < 2.2 doesn't have 'property'.

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_setattr_nondynamic(self, class_type, name, value, static=1):
    if (name == "thisown"):
        return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name, None)
    if method:
        return method(self, value)
    if (not static):
        if _newclass:
            object.__setattr__(self, name, value)
        else:
            self.__dict__[name] = value
    else:
        raise AttributeError("You cannot add attributes to %s" % self)


def _swig_setattr(self, class_type, name, value):
    return _swig_setattr_nondynamic(self, class_type, name, value, 0)


def _swig_getattr(self, class_type, name):
    if (name == "thisown"):
        return self.this.own()
    method = class_type.__swig_getmethods__.get(name, None)
    if method:
        return method(self)
    raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name))


def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)

try:
    _object = object
    _newclass = 1
except __builtin__.Exception:
    class _object:
        pass
    _newclass = 0

try:
    import weakref
    weakref_proxy = weakref.proxy
except __builtin__.Exception:
    weakref_proxy = lambda x: x


AZ_NOT_MPI = _AztecOO.AZ_NOT_MPI
AZ_MSG_TYPE = _AztecOO.AZ_MSG_TYPE
AZ_NUM_MSGS = _AztecOO.AZ_NUM_MSGS
AZ_MAX_MEMORY_SIZE = _AztecOO.AZ_MAX_MEMORY_SIZE
AZ_MAX_MSG_BUFF_SIZE = _AztecOO.AZ_MAX_MSG_BUFF_SIZE
AZ_MAX_NEIGHBORS = _AztecOO.AZ_MAX_NEIGHBORS
AZ_MAX_MESSAGE_SIZE = _AztecOO.AZ_MAX_MESSAGE_SIZE
AZ_FALSE = _AztecOO.AZ_FALSE
AZ_TRUE = _AztecOO.AZ_TRUE
AZ_MAX_POLY_ORDER = _AztecOO.AZ_MAX_POLY_ORDER
AZ_default = _AztecOO.AZ_default
AZ_cg = _AztecOO.AZ_cg
AZ_gmres = _AztecOO.AZ_gmres
AZ_cgs = _AztecOO.AZ_cgs
AZ_tfqmr = _AztecOO.AZ_tfqmr
AZ_bicgstab = _AztecOO.AZ_bicgstab
AZ_slu = _AztecOO.AZ_slu
AZ_symmlq = _AztecOO.AZ_symmlq
AZ_GMRESR = _AztecOO.AZ_GMRESR
AZ_fixed_pt = _AztecOO.AZ_fixed_pt
AZ_analyze = _AztecOO.AZ_analyze
AZ_lu = _AztecOO.AZ_lu
AZ_cg_condnum = _AztecOO.AZ_cg_condnum
AZ_gmres_condnum = _AztecOO.AZ_gmres_condnum
AZ_BJacobi = _AztecOO.AZ_BJacobi
AZ_row_sum = _AztecOO.AZ_row_sum
AZ_sym_diag = _AztecOO.AZ_sym_diag
AZ_sym_row_sum = _AztecOO.AZ_sym_row_sum
AZ_equil = _AztecOO.AZ_equil
AZ_sym_BJacobi = _AztecOO.AZ_sym_BJacobi
AZ_none = _AztecOO.AZ_none
AZ_Jacobi = _AztecOO.AZ_Jacobi
AZ_sym_GS = _AztecOO.AZ_sym_GS
AZ_Neumann = _AztecOO.AZ_Neumann
AZ_ls = _AztecOO.AZ_ls
AZ_ilu = _AztecOO.AZ_ilu
AZ_bilu = _AztecOO.AZ_bilu
AZ_icc = _AztecOO.AZ_icc
AZ_ilut = _AztecOO.AZ_ilut
AZ_rilu = _AztecOO.AZ_rilu
AZ_recursive = _AztecOO.AZ_recursive
AZ_smoother = _AztecOO.AZ_smoother
AZ_dom_decomp = _AztecOO.AZ_dom_decomp
AZ_multilevel = _AztecOO.AZ_multilevel
AZ_user_precond = _AztecOO.AZ_user_precond
AZ_bilu_ifp = _AztecOO.AZ_bilu_ifp
AZ_r0 = _AztecOO.AZ_r0
AZ_rhs = _AztecOO.AZ_rhs
AZ_Anorm = _AztecOO.AZ_Anorm
AZ_sol = _AztecOO.AZ_sol
AZ_weighted = _AztecOO.AZ_weighted
AZ_expected_values = _AztecOO.AZ_expected_values
AZ_noscaled = _AztecOO.AZ_noscaled
AZTECOO_conv_test = _AztecOO.AZTECOO_conv_test
AZ_inf_noscaled = _AztecOO.AZ_inf_noscaled
AZ_all = _AztecOO.AZ_all
AZ_last = _AztecOO.AZ_last
AZ_summary = _AztecOO.AZ_summary
AZ_warnings = _AztecOO.AZ_warnings
AZ_input_form = _AztecOO.AZ_input_form
AZ_global_mat = _AztecOO.AZ_global_mat
AZ_explicit = _AztecOO.AZ_explicit
AZ_calc = _AztecOO.AZ_calc
AZ_recalc = _AztecOO.AZ_recalc
AZ_reuse = _AztecOO.AZ_reuse
AZ_sys_reuse = _AztecOO.AZ_sys_reuse
AZ_diag = _AztecOO.AZ_diag
AZ_full = _AztecOO.AZ_full
AZ_standard = _AztecOO.AZ_standard
AZ_symmetric = _AztecOO.AZ_symmetric
AZ_classic = _AztecOO.AZ_classic
AZ_modified = _AztecOO.AZ_modified
AZ_single_classic = _AztecOO.AZ_single_classic
AZ_single_modified = _AztecOO.AZ_single_modified
AZ_double_classic = _AztecOO.AZ_double_classic
AZ_double_modified = _AztecOO.AZ_double_modified
AZ_resid = _AztecOO.AZ_resid
AZ_rand = _AztecOO.AZ_rand
AZ_normal = _AztecOO.AZ_normal
AZ_param = _AztecOO.AZ_param
AZ_breakdown = _AztecOO.AZ_breakdown
AZ_maxits = _AztecOO.AZ_maxits
AZ_loss = _AztecOO.AZ_loss
AZ_ill_cond = _AztecOO.AZ_ill_cond
AZ_solver = _AztecOO.AZ_solver
AZ_scaling = _AztecOO.AZ_scaling
AZ_precond = _AztecOO.AZ_precond
AZ_conv = _AztecOO.AZ_conv
AZ_output = _AztecOO.AZ_output
AZ_pre_calc = _AztecOO.AZ_pre_calc
AZ_max_iter = _AztecOO.AZ_max_iter
AZ_poly_ord = _AztecOO.AZ_poly_ord
AZ_overlap = _AztecOO.AZ_overlap
AZ_type_overlap = _AztecOO.AZ_type_overlap
AZ_kspace = _AztecOO.AZ_kspace
AZ_orthog = _AztecOO.AZ_orthog
AZ_aux_vec = _AztecOO.AZ_aux_vec
AZ_reorder = _AztecOO.AZ_reorder
AZ_keep_info = _AztecOO.AZ_keep_info
AZ_recursion_level = _AztecOO.AZ_recursion_level
AZ_print_freq = _AztecOO.AZ_print_freq
AZ_graph_fill = _AztecOO.AZ_graph_fill
AZ_subdomain_solve = _AztecOO.AZ_subdomain_solve
AZ_init_guess = _AztecOO.AZ_init_guess
AZ_keep_kvecs = _AztecOO.AZ_keep_kvecs
AZ_apply_kvecs = _AztecOO.AZ_apply_kvecs
AZ_orth_kvecs = _AztecOO.AZ_orth_kvecs
AZ_ignore_scaling = _AztecOO.AZ_ignore_scaling
AZ_check_update_size = _AztecOO.AZ_check_update_size
AZ_extreme = _AztecOO.AZ_extreme
AZ_diagnostics = _AztecOO.AZ_diagnostics
AZ_tol = _AztecOO.AZ_tol
AZ_drop = _AztecOO.AZ_drop
AZ_ilut_fill = _AztecOO.AZ_ilut_fill
AZ_omega = _AztecOO.AZ_omega
AZ_rthresh = _AztecOO.AZ_rthresh
AZ_athresh = _AztecOO.AZ_athresh
AZ_update_reduction = _AztecOO.AZ_update_reduction
AZ_temp = _AztecOO.AZ_temp
AZ_ill_cond_thresh = _AztecOO.AZ_ill_cond_thresh
AZ_weights = _AztecOO.AZ_weights
AZ_matrix_type = _AztecOO.AZ_matrix_type
AZ_N_internal = _AztecOO.AZ_N_internal
AZ_N_border = _AztecOO.AZ_N_border
AZ_N_external = _AztecOO.AZ_N_external
AZ_N_int_blk = _AztecOO.AZ_N_int_blk
AZ_N_bord_blk = _AztecOO.AZ_N_bord_blk
AZ_N_ext_blk = _AztecOO.AZ_N_ext_blk
AZ_N_neigh = _AztecOO.AZ_N_neigh
AZ_total_send = _AztecOO.AZ_total_send
AZ_name = _AztecOO.AZ_name
AZ_internal_use = _AztecOO.AZ_internal_use
AZ_N_rows = _AztecOO.AZ_N_rows
AZ_neighbors = _AztecOO.AZ_neighbors
AZ_rec_length = _AztecOO.AZ_rec_length
AZ_send_length = _AztecOO.AZ_send_length
AZ_send_list = _AztecOO.AZ_send_list
SIZEOF_MPI_AZCOMM = _AztecOO.SIZEOF_MPI_AZCOMM
AZ_OPTIONS_SIZE = _AztecOO.AZ_OPTIONS_SIZE
AZ_FIRST_USER_OPTION = _AztecOO.AZ_FIRST_USER_OPTION
AZ_PARAMS_SIZE = _AztecOO.AZ_PARAMS_SIZE
AZ_FIRST_USER_PARAM = _AztecOO.AZ_FIRST_USER_PARAM
AZ_PROC_SIZE = _AztecOO.AZ_PROC_SIZE
AZ_STATUS_SIZE = _AztecOO.AZ_STATUS_SIZE
AZ_COMM_SIZE = _AztecOO.AZ_COMM_SIZE
AZ_CONV_INFO_SIZE = _AztecOO.AZ_CONV_INFO_SIZE
AZ_COMMLESS_DATA_ORG_SIZE = _AztecOO.AZ_COMMLESS_DATA_ORG_SIZE
AZ_its = _AztecOO.AZ_its
AZ_why = _AztecOO.AZ_why
AZ_r = _AztecOO.AZ_r
AZ_rec_r = _AztecOO.AZ_rec_r
AZ_scaled_r = _AztecOO.AZ_scaled_r
AZ_first_precond = _AztecOO.AZ_first_precond
AZ_solve_time = _AztecOO.AZ_solve_time
AZ_Aztec_version = _AztecOO.AZ_Aztec_version
AZ_condnum = _AztecOO.AZ_condnum
AZ_lambda_min = _AztecOO.AZ_lambda_min
AZ_lambda_max = _AztecOO.AZ_lambda_max
AZ_lambda_real_min = _AztecOO.AZ_lambda_real_min
AZ_lambda_real_max = _AztecOO.AZ_lambda_real_max
AZ_lambda_imag_min = _AztecOO.AZ_lambda_imag_min
AZ_lambda_imag_max = _AztecOO.AZ_lambda_imag_max
AZ_Comm_MPI = _AztecOO.AZ_Comm_MPI
AZ_node = _AztecOO.AZ_node
AZ_N_procs = _AztecOO.AZ_N_procs
AZ_dim = _AztecOO.AZ_dim
AZ_MPI_Tag = _AztecOO.AZ_MPI_Tag
AZ_Comm_Set = _AztecOO.AZ_Comm_Set
AZ_Done_by_User = _AztecOO.AZ_Done_by_User
AZ_linear = _AztecOO.AZ_linear
AZ_file = _AztecOO.AZ_file
AZ_box = _AztecOO.AZ_box
AZ_ALLOC = _AztecOO.AZ_ALLOC
AZ_CLEAR = _AztecOO.AZ_CLEAR
AZ_REALLOC = _AztecOO.AZ_REALLOC
AZ_SELECTIVE_CLEAR = _AztecOO.AZ_SELECTIVE_CLEAR
AZ_SPEC_REALLOC = _AztecOO.AZ_SPEC_REALLOC
AZ_RESET_STRING = _AztecOO.AZ_RESET_STRING
AZ_SUBSELECTIVE_CLEAR = _AztecOO.AZ_SUBSELECTIVE_CLEAR
AZ_EVERYBODY_BUT_CLEAR = _AztecOO.AZ_EVERYBODY_BUT_CLEAR
AZ_EMPTY = _AztecOO.AZ_EMPTY
AZ_LOOKFOR_PRINT = _AztecOO.AZ_LOOKFOR_PRINT
AZ_CLEAR_ALL = _AztecOO.AZ_CLEAR_ALL
AZ_SYS = _AztecOO.AZ_SYS
AZ_OLD_ADDRESS = _AztecOO.AZ_OLD_ADDRESS
AZ_NEW_ADDRESS = _AztecOO.AZ_NEW_ADDRESS
AZ_SPECIAL = _AztecOO.AZ_SPECIAL
AZ_SOLVER_PARAMS = _AztecOO.AZ_SOLVER_PARAMS
AZ_MSR_MATRIX = _AztecOO.AZ_MSR_MATRIX
AZ_VBR_MATRIX = _AztecOO.AZ_VBR_MATRIX
AZ_USER_MATRIX = _AztecOO.AZ_USER_MATRIX
AZ_SCALE_MAT_RHS_SOL = _AztecOO.AZ_SCALE_MAT_RHS_SOL
AZ_SCALE_RHS = _AztecOO.AZ_SCALE_RHS
AZ_INVSCALE_RHS = _AztecOO.AZ_INVSCALE_RHS
AZ_SCALE_SOL = _AztecOO.AZ_SCALE_SOL
AZ_INVSCALE_SOL = _AztecOO.AZ_INVSCALE_SOL
AZ_DESTROY_SCALING_DATA = _AztecOO.AZ_DESTROY_SCALING_DATA
AZ_NOT_FIRST = _AztecOO.AZ_NOT_FIRST
AZ_FIRST_TIME = _AztecOO.AZ_FIRST_TIME
AZ_QUIT = _AztecOO.AZ_QUIT
AZ_CONTINUE = _AztecOO.AZ_CONTINUE
AZ_PACK = _AztecOO.AZ_PACK
AZ_SEND = _AztecOO.AZ_SEND
AZ_CONVERT_TO_LOCAL = _AztecOO.AZ_CONVERT_TO_LOCAL
AZ_CONVERT_BACK_TO_GLOBAL = _AztecOO.AZ_CONVERT_BACK_TO_GLOBAL
AZ_NO_EXTRA_SPACE = _AztecOO.AZ_NO_EXTRA_SPACE
AZ_ZERO = _AztecOO.AZ_ZERO
AZ_NOT_ZERO = _AztecOO.AZ_NOT_ZERO
AZ_Nspace = _AztecOO.AZ_Nspace
AZ_Nkept = _AztecOO.AZ_Nkept
AZ_left_scaling = _AztecOO.AZ_left_scaling
AZ_right_scaling = _AztecOO.AZ_right_scaling
AZ_left_and_right_scaling = _AztecOO.AZ_left_and_right_scaling
AZ_call_scale_f = _AztecOO.AZ_call_scale_f
AZ_inv_scaling = _AztecOO.AZ_inv_scaling
AZ_low = _AztecOO.AZ_low
AZ_high = _AztecOO.AZ_high
AZ_TEST_ELE = _AztecOO.AZ_TEST_ELE
AZ_ALL = _AztecOO.AZ_ALL
AZ_EXTERNS = _AztecOO.AZ_EXTERNS
AZ_GLOBAL = _AztecOO.AZ_GLOBAL
AZ_LOCAL = _AztecOO.AZ_LOCAL
import PyTrilinos.Epetra
import PyTrilinos.Teuchos

def AztecOO_Version(*args):
    """AztecOO_Version() -> std::string"""
    return _AztecOO.AztecOO_Version(*args)

__version__ = AztecOO_Version().split()[3]

class AztecOO(_object):
    """Proxy of C++ AztecOO class."""

    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, AztecOO, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, AztecOO, name)
    __repr__ = _swig_repr

    def __init__(self, *args):
        """
        __init__(AztecOO self, Operator A, MultiVector X, MultiVector B) -> AztecOO
        __init__(AztecOO self, RowMatrix A, MultiVector X, MultiVector B) -> AztecOO
        __init__(AztecOO self, Epetra_LinearProblem LinearProblem) -> AztecOO
        __init__(AztecOO self) -> AztecOO
        __init__(AztecOO self, AztecOO Solver) -> AztecOO
        """
        this = _AztecOO.new_AztecOO(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _AztecOO.delete_AztecOO

    def SetProblem(self, *args):
        """SetProblem(AztecOO self, Epetra_LinearProblem prob, bool call_SetPrecMatrix=False) -> int"""
        return _AztecOO.AztecOO_SetProblem(self, *args)


    def SetUserOperator(self, *args):
        """SetUserOperator(AztecOO self, Operator UserOperator) -> int"""
        return _AztecOO.AztecOO_SetUserOperator(self, *args)


    def SetUserMatrix(self, *args):
        """SetUserMatrix(AztecOO self, RowMatrix UserMatrix, bool call_SetPrecMatrix=False) -> int"""
        return _AztecOO.AztecOO_SetUserMatrix(self, *args)


    def SetLHS(self, *args):
        """SetLHS(AztecOO self, MultiVector X) -> int"""
        return _AztecOO.AztecOO_SetLHS(self, *args)


    def SetRHS(self, *args):
        """SetRHS(AztecOO self, MultiVector B) -> int"""
        return _AztecOO.AztecOO_SetRHS(self, *args)


    def UnsetLHSRHS(self, *args):
        """UnsetLHSRHS(AztecOO self) -> int"""
        return _AztecOO.AztecOO_UnsetLHSRHS(self, *args)


    def SetPrecMatrix(self, *args):
        """SetPrecMatrix(AztecOO self, RowMatrix PrecMatrix) -> int"""
        return _AztecOO.AztecOO_SetPrecMatrix(self, *args)


    def SetPrecOperator(self, *args):
        """SetPrecOperator(AztecOO self, Operator PrecOperator) -> int"""
        return _AztecOO.AztecOO_SetPrecOperator(self, *args)


    def SetStatusTest(self, *args):
        """SetStatusTest(AztecOO self, AztecOO_StatusTest * StatusTest) -> int"""
        return _AztecOO.AztecOO_SetStatusTest(self, *args)


    def SetOutputStream(self, *args):
        """SetOutputStream(AztecOO self, std::ostream & ostrm)"""
        return _AztecOO.AztecOO_SetOutputStream(self, *args)


    def SetErrorStream(self, *args):
        """SetErrorStream(AztecOO self, std::ostream & errstrm)"""
        return _AztecOO.AztecOO_SetErrorStream(self, *args)


    def SetPreconditioner(self, *args):
        """
        SetPreconditioner(AztecOO self, AZ_PRECOND * Prec) -> int
        SetPreconditioner(AztecOO self, AZ_PREC_FUN prec_function, void * prec_data) -> int
        """
        return _AztecOO.AztecOO_SetPreconditioner(self, *args)


    def SetScaling(self, *args):
        """SetScaling(AztecOO self, AZ_SCALING * Scaling) -> int"""
        return _AztecOO.AztecOO_SetScaling(self, *args)


    def SetMatrixName(self, *args):
        """SetMatrixName(AztecOO self, int label) -> int"""
        return _AztecOO.AztecOO_SetMatrixName(self, *args)


    def SetLabel(self, *args):
        """SetLabel(AztecOO self, char const *const Label)"""
        return _AztecOO.AztecOO_SetLabel(self, *args)


    def GetLabel(self, *args):
        """GetLabel(AztecOO self) -> char const *"""
        return _AztecOO.AztecOO_GetLabel(self, *args)


    def ConstructPreconditioner(self, *args):
        """ConstructPreconditioner(AztecOO self, double & condest) -> int"""
        return _AztecOO.AztecOO_ConstructPreconditioner(self, *args)


    def DestroyPreconditioner(self, *args):
        """DestroyPreconditioner(AztecOO self) -> int"""
        return _AztecOO.AztecOO_DestroyPreconditioner(self, *args)


    def Condest(self, *args):
        """Condest(AztecOO self) -> double"""
        return _AztecOO.AztecOO_Condest(self, *args)


    def CheckInput(self, *args):
        """CheckInput(AztecOO self) -> int"""
        return _AztecOO.AztecOO_CheckInput(self, *args)


    def GetProblem(self, *args):
        """GetProblem(AztecOO self) -> Epetra_LinearProblem"""
        return _AztecOO.AztecOO_GetProblem(self, *args)


    def GetUserOperator(self, *args):
        """GetUserOperator(AztecOO self) -> Operator"""
        return _AztecOO.AztecOO_GetUserOperator(self, *args)


    def GetUserMatrix(self, *args):
        """GetUserMatrix(AztecOO self) -> RowMatrix"""
        return _AztecOO.AztecOO_GetUserMatrix(self, *args)


    def GetPrecOperator(self, *args):
        """GetPrecOperator(AztecOO self) -> Operator"""
        return _AztecOO.AztecOO_GetPrecOperator(self, *args)


    def GetPrecMatrix(self, *args):
        """GetPrecMatrix(AztecOO self) -> RowMatrix"""
        return _AztecOO.AztecOO_GetPrecMatrix(self, *args)


    def GetLHS(self, *args):
        """GetLHS(AztecOO self) -> MultiVector"""
        return _AztecOO.AztecOO_GetLHS(self, *args)


    def GetRHS(self, *args):
        """GetRHS(AztecOO self) -> MultiVector"""
        return _AztecOO.AztecOO_GetRHS(self, *args)


    def PrintLinearSystem(self, *args):
        """PrintLinearSystem(AztecOO self, char const * name)"""
        return _AztecOO.AztecOO_PrintLinearSystem(self, *args)


    def SetParameters(self, *args):
        """SetParameters(AztecOO self, ParameterList parameterlist, bool cerr_warning_if_unused=False) -> int"""
        return _AztecOO.AztecOO_SetParameters(self, *args)


    def SetAztecDefaults(self, *args):
        """SetAztecDefaults(AztecOO self) -> int"""
        return _AztecOO.AztecOO_SetAztecDefaults(self, *args)


    def SetAztecOption(self, *args):
        """SetAztecOption(AztecOO self, int option, int value) -> int"""
        return _AztecOO.AztecOO_SetAztecOption(self, *args)


    def GetAztecOption(self, *args):
        """GetAztecOption(AztecOO self, int option) -> int"""
        return _AztecOO.AztecOO_GetAztecOption(self, *args)


    def SetAztecParam(self, *args):
        """SetAztecParam(AztecOO self, int param, double value) -> int"""
        return _AztecOO.AztecOO_SetAztecParam(self, *args)


    def SetAllAztecOptions(self, *args):
        """SetAllAztecOptions(AztecOO self, int const * options) -> int"""
        return _AztecOO.AztecOO_SetAllAztecOptions(self, *args)


    def SetAllAztecParams(self, *args):
        """SetAllAztecParams(AztecOO self, double const * params) -> int"""
        return _AztecOO.AztecOO_SetAllAztecParams(self, *args)


    def Iterate(self, *args):
        """
        Iterate(AztecOO self, long long MaxIters, double Tolerance) -> int
        Iterate(AztecOO self, RowMatrix A, MultiVector X, MultiVector B, int MaxIters, double Tolerance) -> int
        """
        return _AztecOO.AztecOO_Iterate(self, *args)


    def recursiveIterate(self, *args):
        """recursiveIterate(AztecOO self, int MaxIters, double Tolerance) -> int"""
        return _AztecOO.AztecOO_recursiveIterate(self, *args)


    def SetUseAdaptiveDefaultsTrue(self, *args):
        """SetUseAdaptiveDefaultsTrue(AztecOO self) -> int"""
        return _AztecOO.AztecOO_SetUseAdaptiveDefaultsTrue(self, *args)


    def SetAdaptiveParams(self, *args):
        """SetAdaptiveParams(AztecOO self, int NumTrials, double * athresholds, double * rthresholds, double condestThreshold, double maxFill, int maxKspace) -> int"""
        return _AztecOO.AztecOO_SetAdaptiveParams(self, *args)


    def AdaptiveIterate(self, *args):
        """AdaptiveIterate(AztecOO self, int MaxIters, int MaxSolveAttempts, double Tolerance) -> int"""
        return _AztecOO.AztecOO_AdaptiveIterate(self, *args)


    def NumIters(self, *args):
        """NumIters(AztecOO self) -> int"""
        return _AztecOO.AztecOO_NumIters(self, *args)


    def TrueResidual(self, *args):
        """TrueResidual(AztecOO self) -> double"""
        return _AztecOO.AztecOO_TrueResidual(self, *args)


    def ScaledResidual(self, *args):
        """ScaledResidual(AztecOO self) -> double"""
        return _AztecOO.AztecOO_ScaledResidual(self, *args)


    def RecursiveResidual(self, *args):
        """RecursiveResidual(AztecOO self) -> double"""
        return _AztecOO.AztecOO_RecursiveResidual(self, *args)


    def SolveTime(self, *args):
        """SolveTime(AztecOO self) -> double"""
        return _AztecOO.AztecOO_SolveTime(self, *args)


    def GetAllAztecOptions(self, *args):
        """GetAllAztecOptions(AztecOO self) -> PyObject *"""
        return _AztecOO.AztecOO_GetAllAztecOptions(self, *args)


    def GetAllAztecParams(self, *args):
        """GetAllAztecParams(AztecOO self) -> PyObject *"""
        return _AztecOO.AztecOO_GetAllAztecParams(self, *args)


    def GetAztecStatus(self, *args):
        """GetAztecStatus(AztecOO self) -> PyObject *"""
        return _AztecOO.AztecOO_GetAztecStatus(self, *args)

AztecOO_swigregister = _AztecOO.AztecOO_swigregister
AztecOO_swigregister(AztecOO)

class MatrixData(_object):
    """Proxy of C++ AztecOO::MatrixData class."""

    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, MatrixData, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, MatrixData, name)
    __repr__ = _swig_repr
    __swig_setmethods__["A"] = _AztecOO.MatrixData_A_set
    __swig_getmethods__["A"] = _AztecOO.MatrixData_A_get
    if _newclass:
        A = _swig_property(_AztecOO.MatrixData_A_get, _AztecOO.MatrixData_A_set)
    __swig_setmethods__["X"] = _AztecOO.MatrixData_X_set
    __swig_getmethods__["X"] = _AztecOO.MatrixData_X_get
    if _newclass:
        X = _swig_property(_AztecOO.MatrixData_X_get, _AztecOO.MatrixData_X_set)
    __swig_setmethods__["Y"] = _AztecOO.MatrixData_Y_set
    __swig_getmethods__["Y"] = _AztecOO.MatrixData_Y_get
    if _newclass:
        Y = _swig_property(_AztecOO.MatrixData_Y_get, _AztecOO.MatrixData_Y_set)
    __swig_setmethods__["SourceVec"] = _AztecOO.MatrixData_SourceVec_set
    __swig_getmethods__["SourceVec"] = _AztecOO.MatrixData_SourceVec_get
    if _newclass:
        SourceVec = _swig_property(_AztecOO.MatrixData_SourceVec_get, _AztecOO.MatrixData_SourceVec_set)
    __swig_setmethods__["TargetVec"] = _AztecOO.MatrixData_TargetVec_set
    __swig_getmethods__["TargetVec"] = _AztecOO.MatrixData_TargetVec_get
    if _newclass:
        TargetVec = _swig_property(_AztecOO.MatrixData_TargetVec_get, _AztecOO.MatrixData_TargetVec_set)

    def __init__(self, *args):
        """__init__(AztecOO::MatrixData self, RowMatrix inA=None, Vector inX=None, Vector inY=None, Vector inSourceVec=None, Vector inTargetVec=None) -> MatrixData"""
        this = _AztecOO.new_MatrixData(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _AztecOO.delete_MatrixData
MatrixData_swigregister = _AztecOO.MatrixData_swigregister
MatrixData_swigregister(MatrixData)

class OperatorData(_object):
    """Proxy of C++ AztecOO::OperatorData class."""

    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, OperatorData, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, OperatorData, name)
    __repr__ = _swig_repr
    __swig_setmethods__["A"] = _AztecOO.OperatorData_A_set
    __swig_getmethods__["A"] = _AztecOO.OperatorData_A_get
    if _newclass:
        A = _swig_property(_AztecOO.OperatorData_A_get, _AztecOO.OperatorData_A_set)
    __swig_setmethods__["X"] = _AztecOO.OperatorData_X_set
    __swig_getmethods__["X"] = _AztecOO.OperatorData_X_get
    if _newclass:
        X = _swig_property(_AztecOO.OperatorData_X_get, _AztecOO.OperatorData_X_set)
    __swig_setmethods__["Y"] = _AztecOO.OperatorData_Y_set
    __swig_getmethods__["Y"] = _AztecOO.OperatorData_Y_get
    if _newclass:
        Y = _swig_property(_AztecOO.OperatorData_Y_get, _AztecOO.OperatorData_Y_set)

    def __init__(self, *args):
        """__init__(AztecOO::OperatorData self, Operator inA=None, Vector inX=None, Vector inY=None) -> OperatorData"""
        this = _AztecOO.new_OperatorData(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _AztecOO.delete_OperatorData
OperatorData_swigregister = _AztecOO.OperatorData_swigregister
OperatorData_swigregister(OperatorData)


def Epetra_Aztec_matvec(*args):
    """Epetra_Aztec_matvec(double [] x, double [] y, AZ_MATRIX * Amat, int [] proc_config)"""
    return _AztecOO.Epetra_Aztec_matvec(*args)

def Epetra_Aztec_matnorminf(*args):
    """Epetra_Aztec_matnorminf(AZ_MATRIX * Amat) -> double"""
    return _AztecOO.Epetra_Aztec_matnorminf(*args)

def Epetra_Aztec_operatorvec(*args):
    """Epetra_Aztec_operatorvec(double [] x, double [] y, AZ_MATRIX * Amat, int [] proc_config)"""
    return _AztecOO.Epetra_Aztec_operatorvec(*args)

def Epetra_Aztec_operatornorminf(*args):
    """Epetra_Aztec_operatornorminf(AZ_MATRIX * Amat) -> double"""
    return _AztecOO.Epetra_Aztec_operatornorminf(*args)

def Epetra_Aztec_precond(*args):
    """Epetra_Aztec_precond(double [] x, int [] input_options, int [] proc_config, double [] input_params, AZ_MATRIX * Amat, AZ_PRECOND * prec)"""
    return _AztecOO.Epetra_Aztec_precond(*args)

def Epetra_Aztec_getrow(*args):
    """Epetra_Aztec_getrow(int [] columns, double [] values, int [] row_lengths, AZ_MATRIX * Amat, int N_requested_rows, int [] requested_rows, int allocated_space) -> int"""
    return _AztecOO.Epetra_Aztec_getrow(*args)

def Epetra_Aztec_comm_wrapper(*args):
    """Epetra_Aztec_comm_wrapper(double [] vec, AZ_MATRIX * Amat) -> int"""
    return _AztecOO.Epetra_Aztec_comm_wrapper(*args)

def AztecOO_StatusTest_wrapper(*args):
    """AztecOO_StatusTest_wrapper(void * conv_test_obj, void * res_vector_obj, int iteration, double * res_vector, int print_info, int sol_updated, int * converged, int * isnan, double * rnorm, int * r_avail)"""
    return _AztecOO.AztecOO_StatusTest_wrapper(*args)
# This file is compatible with both classic and new-style classes.


