
/*** DO NOT EDIT THIS FILE DIRECTLY (use ../config/gen_code.sh to generate) ***/

#ifndef HYPRE_STRUCT_LS_MUP_HEADER
#define HYPRE_STRUCT_LS_MUP_HEADER

#ifdef __cplusplus
extern "C" {
#endif

#if defined (HYPRE_MIXED_PRECISION)

/*** DO NOT EDIT THIS FILE DIRECTLY (use ../config/gen_code.sh to generate) ***/

/******************************************************************************
 * Copyright (c) 1998 Lawrence Livermore National Security, LLC and other
 * HYPRE Project Developers. See the top-level COPYRIGHT file for details.
 *
 * SPDX-License-Identifier: (Apache-2.0 OR MIT)
 ******************************************************************************/



/*** DO NOT EDIT THIS FILE DIRECTLY (use ../config/gen_code.sh to generate) ***/

/******************************************************************************
 * Copyright (c) 1998 Lawrence Livermore National Security, LLC and other
 * HYPRE Project Developers. See the top-level COPYRIGHT file for details.
 *
 * SPDX-License-Identifier: (Apache-2.0 OR MIT)
 ******************************************************************************/


HYPRE_Int
HYPRE_StructBiCGSTABCreate_flt( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructBiCGSTABCreate_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructBiCGSTABCreate_long_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructBiCGSTABCreate( MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructBiCGSTABDestroy_flt( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructBiCGSTABDestroy_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructBiCGSTABDestroy_long_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructBiCGSTABDestroy( HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructBiCGSTABGetFinalRelativeResidualNorm_flt( HYPRE_StructSolver solver, hypre_float *norm );
HYPRE_Int
HYPRE_StructBiCGSTABGetFinalRelativeResidualNorm_dbl( HYPRE_StructSolver solver, hypre_double *norm );
HYPRE_Int
HYPRE_StructBiCGSTABGetFinalRelativeResidualNorm_long_dbl( HYPRE_StructSolver solver, hypre_long_double *norm );
HYPRE_Int
HYPRE_StructBiCGSTABGetFinalRelativeResidualNorm( HYPRE_StructSolver solver, void *norm );

HYPRE_Int
HYPRE_StructBiCGSTABGetNumIterations_flt( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructBiCGSTABGetNumIterations_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructBiCGSTABGetNumIterations_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructBiCGSTABGetNumIterations( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_StructBiCGSTABGetResidual_flt( HYPRE_StructSolver solver, void **residual );
HYPRE_Int
HYPRE_StructBiCGSTABGetResidual_dbl( HYPRE_StructSolver solver, void **residual );
HYPRE_Int
HYPRE_StructBiCGSTABGetResidual_long_dbl( HYPRE_StructSolver solver, void **residual );
HYPRE_Int
HYPRE_StructBiCGSTABGetResidual( HYPRE_StructSolver solver, void **residual );

HYPRE_Int
HYPRE_StructBiCGSTABSetAbsoluteTol_flt( HYPRE_StructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_StructBiCGSTABSetAbsoluteTol_dbl( HYPRE_StructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_StructBiCGSTABSetAbsoluteTol_long_dbl( HYPRE_StructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_StructBiCGSTABSetAbsoluteTol( HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructBiCGSTABSetLogging_flt( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructBiCGSTABSetLogging_dbl( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructBiCGSTABSetLogging_long_dbl( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructBiCGSTABSetLogging( HYPRE_StructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_StructBiCGSTABSetMaxIter_flt( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructBiCGSTABSetMaxIter_dbl( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructBiCGSTABSetMaxIter_long_dbl( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructBiCGSTABSetMaxIter( HYPRE_StructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_StructBiCGSTABSetPrecond_flt( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );
HYPRE_Int
HYPRE_StructBiCGSTABSetPrecond_dbl( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );
HYPRE_Int
HYPRE_StructBiCGSTABSetPrecond_long_dbl( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );
HYPRE_Int
HYPRE_StructBiCGSTABSetPrecond( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );

HYPRE_Int
HYPRE_StructBiCGSTABSetPrintLevel_flt( HYPRE_StructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_StructBiCGSTABSetPrintLevel_dbl( HYPRE_StructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_StructBiCGSTABSetPrintLevel_long_dbl( HYPRE_StructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_StructBiCGSTABSetPrintLevel( HYPRE_StructSolver solver, HYPRE_Int level );

HYPRE_Int
HYPRE_StructBiCGSTABSetTol_flt( HYPRE_StructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_StructBiCGSTABSetTol_dbl( HYPRE_StructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_StructBiCGSTABSetTol_long_dbl( HYPRE_StructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_StructBiCGSTABSetTol( HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructBiCGSTABSetup_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructBiCGSTABSetup_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructBiCGSTABSetup_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructBiCGSTABSetup( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructBiCGSTABSolve_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructBiCGSTABSolve_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructBiCGSTABSolve_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructBiCGSTABSolve( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructCycRedCreate_flt( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructCycRedCreate_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructCycRedCreate_long_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructCycRedCreate( MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructCycRedDestroy_flt( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructCycRedDestroy_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructCycRedDestroy_long_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructCycRedDestroy( HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructCycRedSetBase_flt( HYPRE_StructSolver solver, HYPRE_Int ndim, HYPRE_Int *base_index, HYPRE_Int *base_stride );
HYPRE_Int
HYPRE_StructCycRedSetBase_dbl( HYPRE_StructSolver solver, HYPRE_Int ndim, HYPRE_Int *base_index, HYPRE_Int *base_stride );
HYPRE_Int
HYPRE_StructCycRedSetBase_long_dbl( HYPRE_StructSolver solver, HYPRE_Int ndim, HYPRE_Int *base_index, HYPRE_Int *base_stride );
HYPRE_Int
HYPRE_StructCycRedSetBase( HYPRE_StructSolver solver, HYPRE_Int ndim, HYPRE_Int *base_index, HYPRE_Int *base_stride );

HYPRE_Int
HYPRE_StructCycRedSetTDim_flt( HYPRE_StructSolver solver, HYPRE_Int tdim );
HYPRE_Int
HYPRE_StructCycRedSetTDim_dbl( HYPRE_StructSolver solver, HYPRE_Int tdim );
HYPRE_Int
HYPRE_StructCycRedSetTDim_long_dbl( HYPRE_StructSolver solver, HYPRE_Int tdim );
HYPRE_Int
HYPRE_StructCycRedSetTDim( HYPRE_StructSolver solver, HYPRE_Int tdim );

HYPRE_Int
HYPRE_StructCycRedSetup_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructCycRedSetup_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructCycRedSetup_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructCycRedSetup( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructCycRedSolve_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructCycRedSolve_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructCycRedSolve_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructCycRedSolve( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructDiagScale_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix HA, HYPRE_StructVector Hy, HYPRE_StructVector Hx );
HYPRE_Int
HYPRE_StructDiagScale_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix HA, HYPRE_StructVector Hy, HYPRE_StructVector Hx );
HYPRE_Int
HYPRE_StructDiagScale_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix HA, HYPRE_StructVector Hy, HYPRE_StructVector Hx );
HYPRE_Int
HYPRE_StructDiagScale( HYPRE_StructSolver solver, HYPRE_StructMatrix HA, HYPRE_StructVector Hy, HYPRE_StructVector Hx );

HYPRE_Int
HYPRE_StructDiagScaleSetup_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector y, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructDiagScaleSetup_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector y, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructDiagScaleSetup_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector y, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructDiagScaleSetup( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector y, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructFlexGMRESCreate_flt( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructFlexGMRESCreate_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructFlexGMRESCreate_long_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructFlexGMRESCreate( MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructFlexGMRESDestroy_flt( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructFlexGMRESDestroy_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructFlexGMRESDestroy_long_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructFlexGMRESDestroy( HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructFlexGMRESGetFinalRelativeResidualNorm_flt( HYPRE_StructSolver solver, hypre_float *norm );
HYPRE_Int
HYPRE_StructFlexGMRESGetFinalRelativeResidualNorm_dbl( HYPRE_StructSolver solver, hypre_double *norm );
HYPRE_Int
HYPRE_StructFlexGMRESGetFinalRelativeResidualNorm_long_dbl( HYPRE_StructSolver solver, hypre_long_double *norm );
HYPRE_Int
HYPRE_StructFlexGMRESGetFinalRelativeResidualNorm( HYPRE_StructSolver solver, void *norm );

HYPRE_Int
HYPRE_StructFlexGMRESGetNumIterations_flt( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructFlexGMRESGetNumIterations_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructFlexGMRESGetNumIterations_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructFlexGMRESGetNumIterations( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_StructFlexGMRESSetAbsoluteTol_flt( HYPRE_StructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_StructFlexGMRESSetAbsoluteTol_dbl( HYPRE_StructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_StructFlexGMRESSetAbsoluteTol_long_dbl( HYPRE_StructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_StructFlexGMRESSetAbsoluteTol( HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructFlexGMRESSetKDim_flt( HYPRE_StructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_StructFlexGMRESSetKDim_dbl( HYPRE_StructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_StructFlexGMRESSetKDim_long_dbl( HYPRE_StructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_StructFlexGMRESSetKDim( HYPRE_StructSolver solver, HYPRE_Int k_dim );

HYPRE_Int
HYPRE_StructFlexGMRESSetLogging_flt( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructFlexGMRESSetLogging_dbl( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructFlexGMRESSetLogging_long_dbl( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructFlexGMRESSetLogging( HYPRE_StructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_StructFlexGMRESSetMaxIter_flt( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructFlexGMRESSetMaxIter_dbl( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructFlexGMRESSetMaxIter_long_dbl( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructFlexGMRESSetMaxIter( HYPRE_StructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_StructFlexGMRESSetModifyPC_flt( HYPRE_StructSolver solver, HYPRE_PtrToModifyPCFcn modify_pc );
HYPRE_Int
HYPRE_StructFlexGMRESSetModifyPC_dbl( HYPRE_StructSolver solver, HYPRE_PtrToModifyPCFcn modify_pc );
HYPRE_Int
HYPRE_StructFlexGMRESSetModifyPC_long_dbl( HYPRE_StructSolver solver, HYPRE_PtrToModifyPCFcn modify_pc );
HYPRE_Int
HYPRE_StructFlexGMRESSetModifyPC( HYPRE_StructSolver solver, HYPRE_PtrToModifyPCFcn modify_pc );

HYPRE_Int
HYPRE_StructFlexGMRESSetPrecond_flt( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );
HYPRE_Int
HYPRE_StructFlexGMRESSetPrecond_dbl( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );
HYPRE_Int
HYPRE_StructFlexGMRESSetPrecond_long_dbl( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );
HYPRE_Int
HYPRE_StructFlexGMRESSetPrecond( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );

HYPRE_Int
HYPRE_StructFlexGMRESSetPrintLevel_flt( HYPRE_StructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_StructFlexGMRESSetPrintLevel_dbl( HYPRE_StructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_StructFlexGMRESSetPrintLevel_long_dbl( HYPRE_StructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_StructFlexGMRESSetPrintLevel( HYPRE_StructSolver solver, HYPRE_Int level );

HYPRE_Int
HYPRE_StructFlexGMRESSetTol_flt( HYPRE_StructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_StructFlexGMRESSetTol_dbl( HYPRE_StructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_StructFlexGMRESSetTol_long_dbl( HYPRE_StructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_StructFlexGMRESSetTol( HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructFlexGMRESSetup_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructFlexGMRESSetup_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructFlexGMRESSetup_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructFlexGMRESSetup( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructFlexGMRESSolve_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructFlexGMRESSolve_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructFlexGMRESSolve_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructFlexGMRESSolve( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructGMRESCreate_flt( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructGMRESCreate_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructGMRESCreate_long_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructGMRESCreate( MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructGMRESDestroy_flt( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructGMRESDestroy_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructGMRESDestroy_long_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructGMRESDestroy( HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructGMRESGetFinalRelativeResidualNorm_flt( HYPRE_StructSolver solver, hypre_float *norm );
HYPRE_Int
HYPRE_StructGMRESGetFinalRelativeResidualNorm_dbl( HYPRE_StructSolver solver, hypre_double *norm );
HYPRE_Int
HYPRE_StructGMRESGetFinalRelativeResidualNorm_long_dbl( HYPRE_StructSolver solver, hypre_long_double *norm );
HYPRE_Int
HYPRE_StructGMRESGetFinalRelativeResidualNorm( HYPRE_StructSolver solver, void *norm );

HYPRE_Int
HYPRE_StructGMRESGetNumIterations_flt( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructGMRESGetNumIterations_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructGMRESGetNumIterations_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructGMRESGetNumIterations( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_StructGMRESSetAbsoluteTol_flt( HYPRE_StructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_StructGMRESSetAbsoluteTol_dbl( HYPRE_StructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_StructGMRESSetAbsoluteTol_long_dbl( HYPRE_StructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_StructGMRESSetAbsoluteTol( HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructGMRESSetKDim_flt( HYPRE_StructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_StructGMRESSetKDim_dbl( HYPRE_StructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_StructGMRESSetKDim_long_dbl( HYPRE_StructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_StructGMRESSetKDim( HYPRE_StructSolver solver, HYPRE_Int k_dim );

HYPRE_Int
HYPRE_StructGMRESSetLogging_flt( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructGMRESSetLogging_dbl( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructGMRESSetLogging_long_dbl( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructGMRESSetLogging( HYPRE_StructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_StructGMRESSetMaxIter_flt( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructGMRESSetMaxIter_dbl( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructGMRESSetMaxIter_long_dbl( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructGMRESSetMaxIter( HYPRE_StructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_StructGMRESSetPrecond_flt( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );
HYPRE_Int
HYPRE_StructGMRESSetPrecond_dbl( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );
HYPRE_Int
HYPRE_StructGMRESSetPrecond_long_dbl( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );
HYPRE_Int
HYPRE_StructGMRESSetPrecond( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );

HYPRE_Int
HYPRE_StructGMRESSetPrintLevel_flt( HYPRE_StructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_StructGMRESSetPrintLevel_dbl( HYPRE_StructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_StructGMRESSetPrintLevel_long_dbl( HYPRE_StructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_StructGMRESSetPrintLevel( HYPRE_StructSolver solver, HYPRE_Int level );

HYPRE_Int
HYPRE_StructGMRESSetTol_flt( HYPRE_StructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_StructGMRESSetTol_dbl( HYPRE_StructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_StructGMRESSetTol_long_dbl( HYPRE_StructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_StructGMRESSetTol( HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructGMRESSetup_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructGMRESSetup_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructGMRESSetup_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructGMRESSetup( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructGMRESSolve_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructGMRESSolve_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructGMRESSolve_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructGMRESSolve( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructHybridCreate_flt( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructHybridCreate_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructHybridCreate_long_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructHybridCreate( MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructHybridDestroy_flt( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructHybridDestroy_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructHybridDestroy_long_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructHybridDestroy( HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructHybridGetDSCGNumIterations_flt( HYPRE_StructSolver solver, HYPRE_Int *ds_num_its );
HYPRE_Int
HYPRE_StructHybridGetDSCGNumIterations_dbl( HYPRE_StructSolver solver, HYPRE_Int *ds_num_its );
HYPRE_Int
HYPRE_StructHybridGetDSCGNumIterations_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *ds_num_its );
HYPRE_Int
HYPRE_StructHybridGetDSCGNumIterations( HYPRE_StructSolver solver, HYPRE_Int *ds_num_its );

HYPRE_Int
HYPRE_StructHybridGetFinalRelativeResidualNorm_flt( HYPRE_StructSolver solver, hypre_float *norm );
HYPRE_Int
HYPRE_StructHybridGetFinalRelativeResidualNorm_dbl( HYPRE_StructSolver solver, hypre_double *norm );
HYPRE_Int
HYPRE_StructHybridGetFinalRelativeResidualNorm_long_dbl( HYPRE_StructSolver solver, hypre_long_double *norm );
HYPRE_Int
HYPRE_StructHybridGetFinalRelativeResidualNorm( HYPRE_StructSolver solver, void *norm );

HYPRE_Int
HYPRE_StructHybridGetNumIterations_flt( HYPRE_StructSolver solver, HYPRE_Int *num_its );
HYPRE_Int
HYPRE_StructHybridGetNumIterations_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_its );
HYPRE_Int
HYPRE_StructHybridGetNumIterations_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_its );
HYPRE_Int
HYPRE_StructHybridGetNumIterations( HYPRE_StructSolver solver, HYPRE_Int *num_its );

HYPRE_Int
HYPRE_StructHybridGetPCGNumIterations_flt( HYPRE_StructSolver solver, HYPRE_Int *pre_num_its );
HYPRE_Int
HYPRE_StructHybridGetPCGNumIterations_dbl( HYPRE_StructSolver solver, HYPRE_Int *pre_num_its );
HYPRE_Int
HYPRE_StructHybridGetPCGNumIterations_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *pre_num_its );
HYPRE_Int
HYPRE_StructHybridGetPCGNumIterations( HYPRE_StructSolver solver, HYPRE_Int *pre_num_its );

HYPRE_Int
HYPRE_StructHybridGetRecomputeResidual_flt( HYPRE_StructSolver solver, HYPRE_Int *recompute_residual );
HYPRE_Int
HYPRE_StructHybridGetRecomputeResidual_dbl( HYPRE_StructSolver solver, HYPRE_Int *recompute_residual );
HYPRE_Int
HYPRE_StructHybridGetRecomputeResidual_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *recompute_residual );
HYPRE_Int
HYPRE_StructHybridGetRecomputeResidual( HYPRE_StructSolver solver, HYPRE_Int *recompute_residual );

HYPRE_Int
HYPRE_StructHybridGetRecomputeResidualP_flt( HYPRE_StructSolver solver, HYPRE_Int *recompute_residual_p );
HYPRE_Int
HYPRE_StructHybridGetRecomputeResidualP_dbl( HYPRE_StructSolver solver, HYPRE_Int *recompute_residual_p );
HYPRE_Int
HYPRE_StructHybridGetRecomputeResidualP_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *recompute_residual_p );
HYPRE_Int
HYPRE_StructHybridGetRecomputeResidualP( HYPRE_StructSolver solver, HYPRE_Int *recompute_residual_p );

HYPRE_Int
HYPRE_StructHybridSetConvergenceTol_flt( HYPRE_StructSolver solver, hypre_float cf_tol );
HYPRE_Int
HYPRE_StructHybridSetConvergenceTol_dbl( HYPRE_StructSolver solver, hypre_double cf_tol );
HYPRE_Int
HYPRE_StructHybridSetConvergenceTol_long_dbl( HYPRE_StructSolver solver, hypre_long_double cf_tol );
HYPRE_Int
HYPRE_StructHybridSetConvergenceTol( HYPRE_StructSolver solver, hypre_long_double cf_tol );

HYPRE_Int
HYPRE_StructHybridSetDSCGMaxIter_flt( HYPRE_StructSolver solver, HYPRE_Int ds_max_its );
HYPRE_Int
HYPRE_StructHybridSetDSCGMaxIter_dbl( HYPRE_StructSolver solver, HYPRE_Int ds_max_its );
HYPRE_Int
HYPRE_StructHybridSetDSCGMaxIter_long_dbl( HYPRE_StructSolver solver, HYPRE_Int ds_max_its );
HYPRE_Int
HYPRE_StructHybridSetDSCGMaxIter( HYPRE_StructSolver solver, HYPRE_Int ds_max_its );

HYPRE_Int
HYPRE_StructHybridSetKDim_flt( HYPRE_StructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_StructHybridSetKDim_dbl( HYPRE_StructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_StructHybridSetKDim_long_dbl( HYPRE_StructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_StructHybridSetKDim( HYPRE_StructSolver solver, HYPRE_Int k_dim );

HYPRE_Int
HYPRE_StructHybridSetLogging_flt( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructHybridSetLogging_dbl( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructHybridSetLogging_long_dbl( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructHybridSetLogging( HYPRE_StructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_StructHybridSetPCGAbsoluteTolFactor_flt( HYPRE_StructSolver solver, hypre_float pcg_atolf );
HYPRE_Int
HYPRE_StructHybridSetPCGAbsoluteTolFactor_dbl( HYPRE_StructSolver solver, hypre_double pcg_atolf );
HYPRE_Int
HYPRE_StructHybridSetPCGAbsoluteTolFactor_long_dbl( HYPRE_StructSolver solver, hypre_long_double pcg_atolf );
HYPRE_Int
HYPRE_StructHybridSetPCGAbsoluteTolFactor( HYPRE_StructSolver solver, hypre_long_double pcg_atolf );

HYPRE_Int
HYPRE_StructHybridSetPCGMaxIter_flt( HYPRE_StructSolver solver, HYPRE_Int pre_max_its );
HYPRE_Int
HYPRE_StructHybridSetPCGMaxIter_dbl( HYPRE_StructSolver solver, HYPRE_Int pre_max_its );
HYPRE_Int
HYPRE_StructHybridSetPCGMaxIter_long_dbl( HYPRE_StructSolver solver, HYPRE_Int pre_max_its );
HYPRE_Int
HYPRE_StructHybridSetPCGMaxIter( HYPRE_StructSolver solver, HYPRE_Int pre_max_its );

HYPRE_Int
HYPRE_StructHybridSetPrecond_flt( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );
HYPRE_Int
HYPRE_StructHybridSetPrecond_dbl( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );
HYPRE_Int
HYPRE_StructHybridSetPrecond_long_dbl( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );
HYPRE_Int
HYPRE_StructHybridSetPrecond( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );

HYPRE_Int
HYPRE_StructHybridSetPrintLevel_flt( HYPRE_StructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_StructHybridSetPrintLevel_dbl( HYPRE_StructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_StructHybridSetPrintLevel_long_dbl( HYPRE_StructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_StructHybridSetPrintLevel( HYPRE_StructSolver solver, HYPRE_Int print_level );

HYPRE_Int
HYPRE_StructHybridSetRecomputeResidual_flt( HYPRE_StructSolver solver, HYPRE_Int recompute_residual );
HYPRE_Int
HYPRE_StructHybridSetRecomputeResidual_dbl( HYPRE_StructSolver solver, HYPRE_Int recompute_residual );
HYPRE_Int
HYPRE_StructHybridSetRecomputeResidual_long_dbl( HYPRE_StructSolver solver, HYPRE_Int recompute_residual );
HYPRE_Int
HYPRE_StructHybridSetRecomputeResidual( HYPRE_StructSolver solver, HYPRE_Int recompute_residual );

HYPRE_Int
HYPRE_StructHybridSetRecomputeResidualP_flt( HYPRE_StructSolver solver, HYPRE_Int recompute_residual_p );
HYPRE_Int
HYPRE_StructHybridSetRecomputeResidualP_dbl( HYPRE_StructSolver solver, HYPRE_Int recompute_residual_p );
HYPRE_Int
HYPRE_StructHybridSetRecomputeResidualP_long_dbl( HYPRE_StructSolver solver, HYPRE_Int recompute_residual_p );
HYPRE_Int
HYPRE_StructHybridSetRecomputeResidualP( HYPRE_StructSolver solver, HYPRE_Int recompute_residual_p );

HYPRE_Int
HYPRE_StructHybridSetRelChange_flt( HYPRE_StructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_StructHybridSetRelChange_dbl( HYPRE_StructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_StructHybridSetRelChange_long_dbl( HYPRE_StructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_StructHybridSetRelChange( HYPRE_StructSolver solver, HYPRE_Int rel_change );

HYPRE_Int
HYPRE_StructHybridSetSolverType_flt( HYPRE_StructSolver solver, HYPRE_Int solver_type );
HYPRE_Int
HYPRE_StructHybridSetSolverType_dbl( HYPRE_StructSolver solver, HYPRE_Int solver_type );
HYPRE_Int
HYPRE_StructHybridSetSolverType_long_dbl( HYPRE_StructSolver solver, HYPRE_Int solver_type );
HYPRE_Int
HYPRE_StructHybridSetSolverType( HYPRE_StructSolver solver, HYPRE_Int solver_type );

HYPRE_Int
HYPRE_StructHybridSetStopCrit_flt( HYPRE_StructSolver solver, HYPRE_Int stop_crit );
HYPRE_Int
HYPRE_StructHybridSetStopCrit_dbl( HYPRE_StructSolver solver, HYPRE_Int stop_crit );
HYPRE_Int
HYPRE_StructHybridSetStopCrit_long_dbl( HYPRE_StructSolver solver, HYPRE_Int stop_crit );
HYPRE_Int
HYPRE_StructHybridSetStopCrit( HYPRE_StructSolver solver, HYPRE_Int stop_crit );

HYPRE_Int
HYPRE_StructHybridSetTol_flt( HYPRE_StructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_StructHybridSetTol_dbl( HYPRE_StructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_StructHybridSetTol_long_dbl( HYPRE_StructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_StructHybridSetTol( HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructHybridSetTwoNorm_flt( HYPRE_StructSolver solver, HYPRE_Int two_norm );
HYPRE_Int
HYPRE_StructHybridSetTwoNorm_dbl( HYPRE_StructSolver solver, HYPRE_Int two_norm );
HYPRE_Int
HYPRE_StructHybridSetTwoNorm_long_dbl( HYPRE_StructSolver solver, HYPRE_Int two_norm );
HYPRE_Int
HYPRE_StructHybridSetTwoNorm( HYPRE_StructSolver solver, HYPRE_Int two_norm );

HYPRE_Int
HYPRE_StructHybridSetup_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructHybridSetup_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructHybridSetup_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructHybridSetup( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructHybridSolve_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructHybridSolve_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructHybridSolve_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructHybridSolve( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructJacobiCreate_flt( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructJacobiCreate_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructJacobiCreate_long_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructJacobiCreate( MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructJacobiDestroy_flt( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructJacobiDestroy_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructJacobiDestroy_long_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructJacobiDestroy( HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructJacobiGetFinalRelativeResidualNorm_flt( HYPRE_StructSolver solver, hypre_float *norm );
HYPRE_Int
HYPRE_StructJacobiGetFinalRelativeResidualNorm_dbl( HYPRE_StructSolver solver, hypre_double *norm );
HYPRE_Int
HYPRE_StructJacobiGetFinalRelativeResidualNorm_long_dbl( HYPRE_StructSolver solver, hypre_long_double *norm );
HYPRE_Int
HYPRE_StructJacobiGetFinalRelativeResidualNorm( HYPRE_StructSolver solver, void *norm );

HYPRE_Int
HYPRE_StructJacobiGetMaxIter_flt( HYPRE_StructSolver solver, HYPRE_Int *max_iter );
HYPRE_Int
HYPRE_StructJacobiGetMaxIter_dbl( HYPRE_StructSolver solver, HYPRE_Int *max_iter );
HYPRE_Int
HYPRE_StructJacobiGetMaxIter_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *max_iter );
HYPRE_Int
HYPRE_StructJacobiGetMaxIter( HYPRE_StructSolver solver, HYPRE_Int *max_iter );

HYPRE_Int
HYPRE_StructJacobiGetNumIterations_flt( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructJacobiGetNumIterations_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructJacobiGetNumIterations_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructJacobiGetNumIterations( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_StructJacobiGetTol_flt( HYPRE_StructSolver solver, hypre_float *tol );
HYPRE_Int
HYPRE_StructJacobiGetTol_dbl( HYPRE_StructSolver solver, hypre_double *tol );
HYPRE_Int
HYPRE_StructJacobiGetTol_long_dbl( HYPRE_StructSolver solver, hypre_long_double *tol );
HYPRE_Int
HYPRE_StructJacobiGetTol( HYPRE_StructSolver solver, void *tol );

HYPRE_Int
HYPRE_StructJacobiGetZeroGuess_flt( HYPRE_StructSolver solver, HYPRE_Int *zeroguess );
HYPRE_Int
HYPRE_StructJacobiGetZeroGuess_dbl( HYPRE_StructSolver solver, HYPRE_Int *zeroguess );
HYPRE_Int
HYPRE_StructJacobiGetZeroGuess_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *zeroguess );
HYPRE_Int
HYPRE_StructJacobiGetZeroGuess( HYPRE_StructSolver solver, HYPRE_Int *zeroguess );

HYPRE_Int
HYPRE_StructJacobiSetMaxIter_flt( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructJacobiSetMaxIter_dbl( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructJacobiSetMaxIter_long_dbl( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructJacobiSetMaxIter( HYPRE_StructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_StructJacobiSetNonZeroGuess_flt( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructJacobiSetNonZeroGuess_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructJacobiSetNonZeroGuess_long_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructJacobiSetNonZeroGuess( HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructJacobiSetTol_flt( HYPRE_StructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_StructJacobiSetTol_dbl( HYPRE_StructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_StructJacobiSetTol_long_dbl( HYPRE_StructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_StructJacobiSetTol( HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructJacobiSetZeroGuess_flt( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructJacobiSetZeroGuess_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructJacobiSetZeroGuess_long_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructJacobiSetZeroGuess( HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructJacobiSetup_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructJacobiSetup_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructJacobiSetup_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructJacobiSetup( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructJacobiSolve_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructJacobiSolve_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructJacobiSolve_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructJacobiSolve( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructLGMRESCreate_flt( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructLGMRESCreate_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructLGMRESCreate_long_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructLGMRESCreate( MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructLGMRESDestroy_flt( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructLGMRESDestroy_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructLGMRESDestroy_long_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructLGMRESDestroy( HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructLGMRESGetFinalRelativeResidualNorm_flt( HYPRE_StructSolver solver, hypre_float *norm );
HYPRE_Int
HYPRE_StructLGMRESGetFinalRelativeResidualNorm_dbl( HYPRE_StructSolver solver, hypre_double *norm );
HYPRE_Int
HYPRE_StructLGMRESGetFinalRelativeResidualNorm_long_dbl( HYPRE_StructSolver solver, hypre_long_double *norm );
HYPRE_Int
HYPRE_StructLGMRESGetFinalRelativeResidualNorm( HYPRE_StructSolver solver, void *norm );

HYPRE_Int
HYPRE_StructLGMRESGetNumIterations_flt( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructLGMRESGetNumIterations_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructLGMRESGetNumIterations_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructLGMRESGetNumIterations( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_StructLGMRESSetAbsoluteTol_flt( HYPRE_StructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_StructLGMRESSetAbsoluteTol_dbl( HYPRE_StructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_StructLGMRESSetAbsoluteTol_long_dbl( HYPRE_StructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_StructLGMRESSetAbsoluteTol( HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructLGMRESSetAugDim_flt( HYPRE_StructSolver solver, HYPRE_Int aug_dim );
HYPRE_Int
HYPRE_StructLGMRESSetAugDim_dbl( HYPRE_StructSolver solver, HYPRE_Int aug_dim );
HYPRE_Int
HYPRE_StructLGMRESSetAugDim_long_dbl( HYPRE_StructSolver solver, HYPRE_Int aug_dim );
HYPRE_Int
HYPRE_StructLGMRESSetAugDim( HYPRE_StructSolver solver, HYPRE_Int aug_dim );

HYPRE_Int
HYPRE_StructLGMRESSetKDim_flt( HYPRE_StructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_StructLGMRESSetKDim_dbl( HYPRE_StructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_StructLGMRESSetKDim_long_dbl( HYPRE_StructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_StructLGMRESSetKDim( HYPRE_StructSolver solver, HYPRE_Int k_dim );

HYPRE_Int
HYPRE_StructLGMRESSetLogging_flt( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructLGMRESSetLogging_dbl( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructLGMRESSetLogging_long_dbl( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructLGMRESSetLogging( HYPRE_StructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_StructLGMRESSetMaxIter_flt( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructLGMRESSetMaxIter_dbl( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructLGMRESSetMaxIter_long_dbl( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructLGMRESSetMaxIter( HYPRE_StructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_StructLGMRESSetPrecond_flt( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );
HYPRE_Int
HYPRE_StructLGMRESSetPrecond_dbl( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );
HYPRE_Int
HYPRE_StructLGMRESSetPrecond_long_dbl( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );
HYPRE_Int
HYPRE_StructLGMRESSetPrecond( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );

HYPRE_Int
HYPRE_StructLGMRESSetPrintLevel_flt( HYPRE_StructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_StructLGMRESSetPrintLevel_dbl( HYPRE_StructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_StructLGMRESSetPrintLevel_long_dbl( HYPRE_StructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_StructLGMRESSetPrintLevel( HYPRE_StructSolver solver, HYPRE_Int level );

HYPRE_Int
HYPRE_StructLGMRESSetTol_flt( HYPRE_StructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_StructLGMRESSetTol_dbl( HYPRE_StructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_StructLGMRESSetTol_long_dbl( HYPRE_StructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_StructLGMRESSetTol( HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructLGMRESSetup_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructLGMRESSetup_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructLGMRESSetup_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructLGMRESSetup( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructLGMRESSolve_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructLGMRESSolve_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructLGMRESSolve_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructLGMRESSolve( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructPCGCreate_flt( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructPCGCreate_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructPCGCreate_long_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructPCGCreate( MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructPCGDestroy_flt( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructPCGDestroy_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructPCGDestroy_long_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructPCGDestroy( HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructPCGGetFinalRelativeResidualNorm_flt( HYPRE_StructSolver solver, hypre_float *norm );
HYPRE_Int
HYPRE_StructPCGGetFinalRelativeResidualNorm_dbl( HYPRE_StructSolver solver, hypre_double *norm );
HYPRE_Int
HYPRE_StructPCGGetFinalRelativeResidualNorm_long_dbl( HYPRE_StructSolver solver, hypre_long_double *norm );
HYPRE_Int
HYPRE_StructPCGGetFinalRelativeResidualNorm( HYPRE_StructSolver solver, void *norm );

HYPRE_Int
HYPRE_StructPCGGetNumIterations_flt( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructPCGGetNumIterations_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructPCGGetNumIterations_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructPCGGetNumIterations( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_StructPCGSetAbsoluteTol_flt( HYPRE_StructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_StructPCGSetAbsoluteTol_dbl( HYPRE_StructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_StructPCGSetAbsoluteTol_long_dbl( HYPRE_StructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_StructPCGSetAbsoluteTol( HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructPCGSetLogging_flt( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructPCGSetLogging_dbl( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructPCGSetLogging_long_dbl( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructPCGSetLogging( HYPRE_StructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_StructPCGSetMaxIter_flt( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructPCGSetMaxIter_dbl( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructPCGSetMaxIter_long_dbl( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructPCGSetMaxIter( HYPRE_StructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_StructPCGSetPrecond_flt( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );
HYPRE_Int
HYPRE_StructPCGSetPrecond_dbl( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );
HYPRE_Int
HYPRE_StructPCGSetPrecond_long_dbl( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );
HYPRE_Int
HYPRE_StructPCGSetPrecond( HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );

HYPRE_Int
HYPRE_StructPCGSetPrintLevel_flt( HYPRE_StructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_StructPCGSetPrintLevel_dbl( HYPRE_StructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_StructPCGSetPrintLevel_long_dbl( HYPRE_StructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_StructPCGSetPrintLevel( HYPRE_StructSolver solver, HYPRE_Int level );

HYPRE_Int
HYPRE_StructPCGSetRelChange_flt( HYPRE_StructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_StructPCGSetRelChange_dbl( HYPRE_StructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_StructPCGSetRelChange_long_dbl( HYPRE_StructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_StructPCGSetRelChange( HYPRE_StructSolver solver, HYPRE_Int rel_change );

HYPRE_Int
HYPRE_StructPCGSetTol_flt( HYPRE_StructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_StructPCGSetTol_dbl( HYPRE_StructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_StructPCGSetTol_long_dbl( HYPRE_StructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_StructPCGSetTol( HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructPCGSetTwoNorm_flt( HYPRE_StructSolver solver, HYPRE_Int two_norm );
HYPRE_Int
HYPRE_StructPCGSetTwoNorm_dbl( HYPRE_StructSolver solver, HYPRE_Int two_norm );
HYPRE_Int
HYPRE_StructPCGSetTwoNorm_long_dbl( HYPRE_StructSolver solver, HYPRE_Int two_norm );
HYPRE_Int
HYPRE_StructPCGSetTwoNorm( HYPRE_StructSolver solver, HYPRE_Int two_norm );

HYPRE_Int
HYPRE_StructPCGSetup_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructPCGSetup_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructPCGSetup_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructPCGSetup( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructPCGSolve_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructPCGSolve_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructPCGSolve_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructPCGSolve( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructPFMGCreate_flt( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructPFMGCreate_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructPFMGCreate_long_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructPFMGCreate( MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructPFMGDestroy_flt( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructPFMGDestroy_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructPFMGDestroy_long_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructPFMGDestroy( HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructPFMGGetFinalRelativeResidualNorm_flt( HYPRE_StructSolver solver, hypre_float *norm );
HYPRE_Int
HYPRE_StructPFMGGetFinalRelativeResidualNorm_dbl( HYPRE_StructSolver solver, hypre_double *norm );
HYPRE_Int
HYPRE_StructPFMGGetFinalRelativeResidualNorm_long_dbl( HYPRE_StructSolver solver, hypre_long_double *norm );
HYPRE_Int
HYPRE_StructPFMGGetFinalRelativeResidualNorm( HYPRE_StructSolver solver, void *norm );

HYPRE_Int
HYPRE_StructPFMGGetJacobiWeight_flt( HYPRE_StructSolver solver, hypre_float *weight );
HYPRE_Int
HYPRE_StructPFMGGetJacobiWeight_dbl( HYPRE_StructSolver solver, hypre_double *weight );
HYPRE_Int
HYPRE_StructPFMGGetJacobiWeight_long_dbl( HYPRE_StructSolver solver, hypre_long_double *weight );
HYPRE_Int
HYPRE_StructPFMGGetJacobiWeight( HYPRE_StructSolver solver, void *weight );

HYPRE_Int
HYPRE_StructPFMGGetLogging_flt( HYPRE_StructSolver solver, HYPRE_Int *logging );
HYPRE_Int
HYPRE_StructPFMGGetLogging_dbl( HYPRE_StructSolver solver, HYPRE_Int *logging );
HYPRE_Int
HYPRE_StructPFMGGetLogging_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *logging );
HYPRE_Int
HYPRE_StructPFMGGetLogging( HYPRE_StructSolver solver, HYPRE_Int *logging );

HYPRE_Int
HYPRE_StructPFMGGetMatmultType_flt( HYPRE_StructSolver solver, HYPRE_Int *matmult_type );
HYPRE_Int
HYPRE_StructPFMGGetMatmultType_dbl( HYPRE_StructSolver solver, HYPRE_Int *matmult_type );
HYPRE_Int
HYPRE_StructPFMGGetMatmultType_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *matmult_type );
HYPRE_Int
HYPRE_StructPFMGGetMatmultType( HYPRE_StructSolver solver, HYPRE_Int *matmult_type );

HYPRE_Int
HYPRE_StructPFMGGetMaxIter_flt( HYPRE_StructSolver solver, HYPRE_Int *max_iter );
HYPRE_Int
HYPRE_StructPFMGGetMaxIter_dbl( HYPRE_StructSolver solver, HYPRE_Int *max_iter );
HYPRE_Int
HYPRE_StructPFMGGetMaxIter_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *max_iter );
HYPRE_Int
HYPRE_StructPFMGGetMaxIter( HYPRE_StructSolver solver, HYPRE_Int *max_iter );

HYPRE_Int
HYPRE_StructPFMGGetMaxLevels_flt( HYPRE_StructSolver solver, HYPRE_Int *max_levels );
HYPRE_Int
HYPRE_StructPFMGGetMaxLevels_dbl( HYPRE_StructSolver solver, HYPRE_Int *max_levels );
HYPRE_Int
HYPRE_StructPFMGGetMaxLevels_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *max_levels );
HYPRE_Int
HYPRE_StructPFMGGetMaxLevels( HYPRE_StructSolver solver, HYPRE_Int *max_levels );

HYPRE_Int
HYPRE_StructPFMGGetNumIterations_flt( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructPFMGGetNumIterations_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructPFMGGetNumIterations_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructPFMGGetNumIterations( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_StructPFMGGetNumPostRelax_flt( HYPRE_StructSolver solver, HYPRE_Int *num_post_relax );
HYPRE_Int
HYPRE_StructPFMGGetNumPostRelax_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_post_relax );
HYPRE_Int
HYPRE_StructPFMGGetNumPostRelax_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_post_relax );
HYPRE_Int
HYPRE_StructPFMGGetNumPostRelax( HYPRE_StructSolver solver, HYPRE_Int *num_post_relax );

HYPRE_Int
HYPRE_StructPFMGGetNumPreRelax_flt( HYPRE_StructSolver solver, HYPRE_Int *num_pre_relax );
HYPRE_Int
HYPRE_StructPFMGGetNumPreRelax_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_pre_relax );
HYPRE_Int
HYPRE_StructPFMGGetNumPreRelax_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_pre_relax );
HYPRE_Int
HYPRE_StructPFMGGetNumPreRelax( HYPRE_StructSolver solver, HYPRE_Int *num_pre_relax );

HYPRE_Int
HYPRE_StructPFMGGetPrintLevel_flt( HYPRE_StructSolver solver, HYPRE_Int *print_level );
HYPRE_Int
HYPRE_StructPFMGGetPrintLevel_dbl( HYPRE_StructSolver solver, HYPRE_Int *print_level );
HYPRE_Int
HYPRE_StructPFMGGetPrintLevel_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *print_level );
HYPRE_Int
HYPRE_StructPFMGGetPrintLevel( HYPRE_StructSolver solver, HYPRE_Int *print_level );

HYPRE_Int
HYPRE_StructPFMGGetRAPType_flt( HYPRE_StructSolver solver, HYPRE_Int *rap_type );
HYPRE_Int
HYPRE_StructPFMGGetRAPType_dbl( HYPRE_StructSolver solver, HYPRE_Int *rap_type );
HYPRE_Int
HYPRE_StructPFMGGetRAPType_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *rap_type );
HYPRE_Int
HYPRE_StructPFMGGetRAPType( HYPRE_StructSolver solver, HYPRE_Int *rap_type );

HYPRE_Int
HYPRE_StructPFMGGetRelChange_flt( HYPRE_StructSolver solver, HYPRE_Int *rel_change );
HYPRE_Int
HYPRE_StructPFMGGetRelChange_dbl( HYPRE_StructSolver solver, HYPRE_Int *rel_change );
HYPRE_Int
HYPRE_StructPFMGGetRelChange_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *rel_change );
HYPRE_Int
HYPRE_StructPFMGGetRelChange( HYPRE_StructSolver solver, HYPRE_Int *rel_change );

HYPRE_Int
HYPRE_StructPFMGGetRelaxType_flt( HYPRE_StructSolver solver, HYPRE_Int *relax_type );
HYPRE_Int
HYPRE_StructPFMGGetRelaxType_dbl( HYPRE_StructSolver solver, HYPRE_Int *relax_type );
HYPRE_Int
HYPRE_StructPFMGGetRelaxType_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *relax_type );
HYPRE_Int
HYPRE_StructPFMGGetRelaxType( HYPRE_StructSolver solver, HYPRE_Int *relax_type );

HYPRE_Int
HYPRE_StructPFMGGetSkipRelax_flt( HYPRE_StructSolver solver, HYPRE_Int *skip_relax );
HYPRE_Int
HYPRE_StructPFMGGetSkipRelax_dbl( HYPRE_StructSolver solver, HYPRE_Int *skip_relax );
HYPRE_Int
HYPRE_StructPFMGGetSkipRelax_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *skip_relax );
HYPRE_Int
HYPRE_StructPFMGGetSkipRelax( HYPRE_StructSolver solver, HYPRE_Int *skip_relax );

HYPRE_Int
HYPRE_StructPFMGGetTol_flt( HYPRE_StructSolver solver, hypre_float *tol );
HYPRE_Int
HYPRE_StructPFMGGetTol_dbl( HYPRE_StructSolver solver, hypre_double *tol );
HYPRE_Int
HYPRE_StructPFMGGetTol_long_dbl( HYPRE_StructSolver solver, hypre_long_double *tol );
HYPRE_Int
HYPRE_StructPFMGGetTol( HYPRE_StructSolver solver, void *tol );

HYPRE_Int
HYPRE_StructPFMGGetZeroGuess_flt( HYPRE_StructSolver solver, HYPRE_Int *zeroguess );
HYPRE_Int
HYPRE_StructPFMGGetZeroGuess_dbl( HYPRE_StructSolver solver, HYPRE_Int *zeroguess );
HYPRE_Int
HYPRE_StructPFMGGetZeroGuess_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *zeroguess );
HYPRE_Int
HYPRE_StructPFMGGetZeroGuess( HYPRE_StructSolver solver, HYPRE_Int *zeroguess );

HYPRE_Int
HYPRE_StructPFMGSetDxyz_flt( HYPRE_StructSolver solver, hypre_float *dxyz );
HYPRE_Int
HYPRE_StructPFMGSetDxyz_dbl( HYPRE_StructSolver solver, hypre_double *dxyz );
HYPRE_Int
HYPRE_StructPFMGSetDxyz_long_dbl( HYPRE_StructSolver solver, hypre_long_double *dxyz );
HYPRE_Int
HYPRE_StructPFMGSetDxyz( HYPRE_StructSolver solver, void *dxyz );

HYPRE_Int
HYPRE_StructPFMGSetJacobiWeight_flt( HYPRE_StructSolver solver, hypre_float weight );
HYPRE_Int
HYPRE_StructPFMGSetJacobiWeight_dbl( HYPRE_StructSolver solver, hypre_double weight );
HYPRE_Int
HYPRE_StructPFMGSetJacobiWeight_long_dbl( HYPRE_StructSolver solver, hypre_long_double weight );
HYPRE_Int
HYPRE_StructPFMGSetJacobiWeight( HYPRE_StructSolver solver, hypre_long_double weight );

HYPRE_Int
HYPRE_StructPFMGSetLogging_flt( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructPFMGSetLogging_dbl( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructPFMGSetLogging_long_dbl( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructPFMGSetLogging( HYPRE_StructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_StructPFMGSetMatmultType_flt( HYPRE_StructSolver solver, HYPRE_Int matmult_type );
HYPRE_Int
HYPRE_StructPFMGSetMatmultType_dbl( HYPRE_StructSolver solver, HYPRE_Int matmult_type );
HYPRE_Int
HYPRE_StructPFMGSetMatmultType_long_dbl( HYPRE_StructSolver solver, HYPRE_Int matmult_type );
HYPRE_Int
HYPRE_StructPFMGSetMatmultType( HYPRE_StructSolver solver, HYPRE_Int matmult_type );

HYPRE_Int
HYPRE_StructPFMGSetMaxIter_flt( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructPFMGSetMaxIter_dbl( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructPFMGSetMaxIter_long_dbl( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructPFMGSetMaxIter( HYPRE_StructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_StructPFMGSetMaxLevels_flt( HYPRE_StructSolver solver, HYPRE_Int max_levels );
HYPRE_Int
HYPRE_StructPFMGSetMaxLevels_dbl( HYPRE_StructSolver solver, HYPRE_Int max_levels );
HYPRE_Int
HYPRE_StructPFMGSetMaxLevels_long_dbl( HYPRE_StructSolver solver, HYPRE_Int max_levels );
HYPRE_Int
HYPRE_StructPFMGSetMaxLevels( HYPRE_StructSolver solver, HYPRE_Int max_levels );

HYPRE_Int
HYPRE_StructPFMGSetNonZeroGuess_flt( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructPFMGSetNonZeroGuess_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructPFMGSetNonZeroGuess_long_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructPFMGSetNonZeroGuess( HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructPFMGSetNumPostRelax_flt( HYPRE_StructSolver solver, HYPRE_Int num_post_relax );
HYPRE_Int
HYPRE_StructPFMGSetNumPostRelax_dbl( HYPRE_StructSolver solver, HYPRE_Int num_post_relax );
HYPRE_Int
HYPRE_StructPFMGSetNumPostRelax_long_dbl( HYPRE_StructSolver solver, HYPRE_Int num_post_relax );
HYPRE_Int
HYPRE_StructPFMGSetNumPostRelax( HYPRE_StructSolver solver, HYPRE_Int num_post_relax );

HYPRE_Int
HYPRE_StructPFMGSetNumPreRelax_flt( HYPRE_StructSolver solver, HYPRE_Int num_pre_relax );
HYPRE_Int
HYPRE_StructPFMGSetNumPreRelax_dbl( HYPRE_StructSolver solver, HYPRE_Int num_pre_relax );
HYPRE_Int
HYPRE_StructPFMGSetNumPreRelax_long_dbl( HYPRE_StructSolver solver, HYPRE_Int num_pre_relax );
HYPRE_Int
HYPRE_StructPFMGSetNumPreRelax( HYPRE_StructSolver solver, HYPRE_Int num_pre_relax );

HYPRE_Int
HYPRE_StructPFMGSetPrintLevel_flt( HYPRE_StructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_StructPFMGSetPrintLevel_dbl( HYPRE_StructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_StructPFMGSetPrintLevel_long_dbl( HYPRE_StructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_StructPFMGSetPrintLevel( HYPRE_StructSolver solver, HYPRE_Int print_level );

HYPRE_Int
HYPRE_StructPFMGSetRAPType_flt( HYPRE_StructSolver solver, HYPRE_Int rap_type );
HYPRE_Int
HYPRE_StructPFMGSetRAPType_dbl( HYPRE_StructSolver solver, HYPRE_Int rap_type );
HYPRE_Int
HYPRE_StructPFMGSetRAPType_long_dbl( HYPRE_StructSolver solver, HYPRE_Int rap_type );
HYPRE_Int
HYPRE_StructPFMGSetRAPType( HYPRE_StructSolver solver, HYPRE_Int rap_type );

HYPRE_Int
HYPRE_StructPFMGSetRelChange_flt( HYPRE_StructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_StructPFMGSetRelChange_dbl( HYPRE_StructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_StructPFMGSetRelChange_long_dbl( HYPRE_StructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_StructPFMGSetRelChange( HYPRE_StructSolver solver, HYPRE_Int rel_change );

HYPRE_Int
HYPRE_StructPFMGSetRelaxType_flt( HYPRE_StructSolver solver, HYPRE_Int relax_type );
HYPRE_Int
HYPRE_StructPFMGSetRelaxType_dbl( HYPRE_StructSolver solver, HYPRE_Int relax_type );
HYPRE_Int
HYPRE_StructPFMGSetRelaxType_long_dbl( HYPRE_StructSolver solver, HYPRE_Int relax_type );
HYPRE_Int
HYPRE_StructPFMGSetRelaxType( HYPRE_StructSolver solver, HYPRE_Int relax_type );

HYPRE_Int
HYPRE_StructPFMGSetSkipRelax_flt( HYPRE_StructSolver solver, HYPRE_Int skip_relax );
HYPRE_Int
HYPRE_StructPFMGSetSkipRelax_dbl( HYPRE_StructSolver solver, HYPRE_Int skip_relax );
HYPRE_Int
HYPRE_StructPFMGSetSkipRelax_long_dbl( HYPRE_StructSolver solver, HYPRE_Int skip_relax );
HYPRE_Int
HYPRE_StructPFMGSetSkipRelax( HYPRE_StructSolver solver, HYPRE_Int skip_relax );

HYPRE_Int
HYPRE_StructPFMGSetTol_flt( HYPRE_StructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_StructPFMGSetTol_dbl( HYPRE_StructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_StructPFMGSetTol_long_dbl( HYPRE_StructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_StructPFMGSetTol( HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructPFMGSetZeroGuess_flt( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructPFMGSetZeroGuess_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructPFMGSetZeroGuess_long_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructPFMGSetZeroGuess( HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructPFMGSetup_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructPFMGSetup_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructPFMGSetup_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructPFMGSetup( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructPFMGSolve_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructPFMGSolve_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructPFMGSolve_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructPFMGSolve( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructSMGCreate_flt( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructSMGCreate_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructSMGCreate_long_dbl( MPI_Comm comm, HYPRE_StructSolver *solver );
HYPRE_Int
HYPRE_StructSMGCreate( MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructSMGDestroy_flt( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructSMGDestroy_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructSMGDestroy_long_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructSMGDestroy( HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructSMGGetFinalRelativeResidualNorm_flt( HYPRE_StructSolver solver, hypre_float *norm );
HYPRE_Int
HYPRE_StructSMGGetFinalRelativeResidualNorm_dbl( HYPRE_StructSolver solver, hypre_double *norm );
HYPRE_Int
HYPRE_StructSMGGetFinalRelativeResidualNorm_long_dbl( HYPRE_StructSolver solver, hypre_long_double *norm );
HYPRE_Int
HYPRE_StructSMGGetFinalRelativeResidualNorm( HYPRE_StructSolver solver, void *norm );

HYPRE_Int
HYPRE_StructSMGGetLogging_flt( HYPRE_StructSolver solver, HYPRE_Int *logging );
HYPRE_Int
HYPRE_StructSMGGetLogging_dbl( HYPRE_StructSolver solver, HYPRE_Int *logging );
HYPRE_Int
HYPRE_StructSMGGetLogging_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *logging );
HYPRE_Int
HYPRE_StructSMGGetLogging( HYPRE_StructSolver solver, HYPRE_Int *logging );

HYPRE_Int
HYPRE_StructSMGGetMaxIter_flt( HYPRE_StructSolver solver, HYPRE_Int *max_iter );
HYPRE_Int
HYPRE_StructSMGGetMaxIter_dbl( HYPRE_StructSolver solver, HYPRE_Int *max_iter );
HYPRE_Int
HYPRE_StructSMGGetMaxIter_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *max_iter );
HYPRE_Int
HYPRE_StructSMGGetMaxIter( HYPRE_StructSolver solver, HYPRE_Int *max_iter );

HYPRE_Int
HYPRE_StructSMGGetMemoryUse_flt( HYPRE_StructSolver solver, HYPRE_Int *memory_use );
HYPRE_Int
HYPRE_StructSMGGetMemoryUse_dbl( HYPRE_StructSolver solver, HYPRE_Int *memory_use );
HYPRE_Int
HYPRE_StructSMGGetMemoryUse_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *memory_use );
HYPRE_Int
HYPRE_StructSMGGetMemoryUse( HYPRE_StructSolver solver, HYPRE_Int *memory_use );

HYPRE_Int
HYPRE_StructSMGGetNumIterations_flt( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructSMGGetNumIterations_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructSMGGetNumIterations_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_StructSMGGetNumIterations( HYPRE_StructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_StructSMGGetNumPostRelax_flt( HYPRE_StructSolver solver, HYPRE_Int *num_post_relax );
HYPRE_Int
HYPRE_StructSMGGetNumPostRelax_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_post_relax );
HYPRE_Int
HYPRE_StructSMGGetNumPostRelax_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_post_relax );
HYPRE_Int
HYPRE_StructSMGGetNumPostRelax( HYPRE_StructSolver solver, HYPRE_Int *num_post_relax );

HYPRE_Int
HYPRE_StructSMGGetNumPreRelax_flt( HYPRE_StructSolver solver, HYPRE_Int *num_pre_relax );
HYPRE_Int
HYPRE_StructSMGGetNumPreRelax_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_pre_relax );
HYPRE_Int
HYPRE_StructSMGGetNumPreRelax_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *num_pre_relax );
HYPRE_Int
HYPRE_StructSMGGetNumPreRelax( HYPRE_StructSolver solver, HYPRE_Int *num_pre_relax );

HYPRE_Int
HYPRE_StructSMGGetPrintLevel_flt( HYPRE_StructSolver solver, HYPRE_Int *print_level );
HYPRE_Int
HYPRE_StructSMGGetPrintLevel_dbl( HYPRE_StructSolver solver, HYPRE_Int *print_level );
HYPRE_Int
HYPRE_StructSMGGetPrintLevel_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *print_level );
HYPRE_Int
HYPRE_StructSMGGetPrintLevel( HYPRE_StructSolver solver, HYPRE_Int *print_level );

HYPRE_Int
HYPRE_StructSMGGetRelChange_flt( HYPRE_StructSolver solver, HYPRE_Int *rel_change );
HYPRE_Int
HYPRE_StructSMGGetRelChange_dbl( HYPRE_StructSolver solver, HYPRE_Int *rel_change );
HYPRE_Int
HYPRE_StructSMGGetRelChange_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *rel_change );
HYPRE_Int
HYPRE_StructSMGGetRelChange( HYPRE_StructSolver solver, HYPRE_Int *rel_change );

HYPRE_Int
HYPRE_StructSMGGetTol_flt( HYPRE_StructSolver solver, hypre_float *tol );
HYPRE_Int
HYPRE_StructSMGGetTol_dbl( HYPRE_StructSolver solver, hypre_double *tol );
HYPRE_Int
HYPRE_StructSMGGetTol_long_dbl( HYPRE_StructSolver solver, hypre_long_double *tol );
HYPRE_Int
HYPRE_StructSMGGetTol( HYPRE_StructSolver solver, void *tol );

HYPRE_Int
HYPRE_StructSMGGetZeroGuess_flt( HYPRE_StructSolver solver, HYPRE_Int *zeroguess );
HYPRE_Int
HYPRE_StructSMGGetZeroGuess_dbl( HYPRE_StructSolver solver, HYPRE_Int *zeroguess );
HYPRE_Int
HYPRE_StructSMGGetZeroGuess_long_dbl( HYPRE_StructSolver solver, HYPRE_Int *zeroguess );
HYPRE_Int
HYPRE_StructSMGGetZeroGuess( HYPRE_StructSolver solver, HYPRE_Int *zeroguess );

HYPRE_Int
HYPRE_StructSMGSetLogging_flt( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructSMGSetLogging_dbl( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructSMGSetLogging_long_dbl( HYPRE_StructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_StructSMGSetLogging( HYPRE_StructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_StructSMGSetMaxIter_flt( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructSMGSetMaxIter_dbl( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructSMGSetMaxIter_long_dbl( HYPRE_StructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_StructSMGSetMaxIter( HYPRE_StructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_StructSMGSetMemoryUse_flt( HYPRE_StructSolver solver, HYPRE_Int memory_use );
HYPRE_Int
HYPRE_StructSMGSetMemoryUse_dbl( HYPRE_StructSolver solver, HYPRE_Int memory_use );
HYPRE_Int
HYPRE_StructSMGSetMemoryUse_long_dbl( HYPRE_StructSolver solver, HYPRE_Int memory_use );
HYPRE_Int
HYPRE_StructSMGSetMemoryUse( HYPRE_StructSolver solver, HYPRE_Int memory_use );

HYPRE_Int
HYPRE_StructSMGSetNonZeroGuess_flt( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructSMGSetNonZeroGuess_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructSMGSetNonZeroGuess_long_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructSMGSetNonZeroGuess( HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructSMGSetNumPostRelax_flt( HYPRE_StructSolver solver, HYPRE_Int num_post_relax );
HYPRE_Int
HYPRE_StructSMGSetNumPostRelax_dbl( HYPRE_StructSolver solver, HYPRE_Int num_post_relax );
HYPRE_Int
HYPRE_StructSMGSetNumPostRelax_long_dbl( HYPRE_StructSolver solver, HYPRE_Int num_post_relax );
HYPRE_Int
HYPRE_StructSMGSetNumPostRelax( HYPRE_StructSolver solver, HYPRE_Int num_post_relax );

HYPRE_Int
HYPRE_StructSMGSetNumPreRelax_flt( HYPRE_StructSolver solver, HYPRE_Int num_pre_relax );
HYPRE_Int
HYPRE_StructSMGSetNumPreRelax_dbl( HYPRE_StructSolver solver, HYPRE_Int num_pre_relax );
HYPRE_Int
HYPRE_StructSMGSetNumPreRelax_long_dbl( HYPRE_StructSolver solver, HYPRE_Int num_pre_relax );
HYPRE_Int
HYPRE_StructSMGSetNumPreRelax( HYPRE_StructSolver solver, HYPRE_Int num_pre_relax );

HYPRE_Int
HYPRE_StructSMGSetPrintLevel_flt( HYPRE_StructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_StructSMGSetPrintLevel_dbl( HYPRE_StructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_StructSMGSetPrintLevel_long_dbl( HYPRE_StructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_StructSMGSetPrintLevel( HYPRE_StructSolver solver, HYPRE_Int print_level );

HYPRE_Int
HYPRE_StructSMGSetRelChange_flt( HYPRE_StructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_StructSMGSetRelChange_dbl( HYPRE_StructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_StructSMGSetRelChange_long_dbl( HYPRE_StructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_StructSMGSetRelChange( HYPRE_StructSolver solver, HYPRE_Int rel_change );

HYPRE_Int
HYPRE_StructSMGSetTol_flt( HYPRE_StructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_StructSMGSetTol_dbl( HYPRE_StructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_StructSMGSetTol_long_dbl( HYPRE_StructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_StructSMGSetTol( HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructSMGSetZeroGuess_flt( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructSMGSetZeroGuess_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructSMGSetZeroGuess_long_dbl( HYPRE_StructSolver solver );
HYPRE_Int
HYPRE_StructSMGSetZeroGuess( HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructSMGSetup_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructSMGSetup_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructSMGSetup_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructSMGSetup( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructSMGSolve_flt( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructSMGSolve_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructSMGSolve_long_dbl( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );
HYPRE_Int
HYPRE_StructSMGSolve( HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructSetupInterpreter_flt( mv_InterfaceInterpreter *i );
HYPRE_Int
HYPRE_StructSetupInterpreter_dbl( mv_InterfaceInterpreter *i );
HYPRE_Int
HYPRE_StructSetupInterpreter_long_dbl( mv_InterfaceInterpreter *i );
HYPRE_Int
HYPRE_StructSetupInterpreter( mv_InterfaceInterpreter *i );

HYPRE_Int
HYPRE_StructSetupMatvec_flt( HYPRE_MatvecFunctions *mv );
HYPRE_Int
HYPRE_StructSetupMatvec_dbl( HYPRE_MatvecFunctions *mv );
HYPRE_Int
HYPRE_StructSetupMatvec_long_dbl( HYPRE_MatvecFunctions *mv );
HYPRE_Int
HYPRE_StructSetupMatvec( HYPRE_MatvecFunctions *mv );


/*** DO NOT EDIT THIS FILE DIRECTLY (use ../config/gen_code.sh to generate) ***/

/******************************************************************************
 * Copyright (c) 1998 Lawrence Livermore National Security, LLC and other
 * HYPRE Project Developers. See the top-level COPYRIGHT file for details.
 *
 * SPDX-License-Identifier: (Apache-2.0 OR MIT)
 ******************************************************************************/


HYPRE_Int
HYPRE_StructBiCGSTABCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructBiCGSTABDestroy_pre( HYPRE_Precision precision, HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructBiCGSTABGetFinalRelativeResidualNorm_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, void *norm );

HYPRE_Int
HYPRE_StructBiCGSTABGetNumIterations_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_StructBiCGSTABGetResidual_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, void **residual );

HYPRE_Int
HYPRE_StructBiCGSTABSetAbsoluteTol_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructBiCGSTABSetLogging_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_StructBiCGSTABSetMaxIter_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_StructBiCGSTABSetPrecond_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );

HYPRE_Int
HYPRE_StructBiCGSTABSetPrintLevel_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int level );

HYPRE_Int
HYPRE_StructBiCGSTABSetTol_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructBiCGSTABSetup_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructBiCGSTABSolve_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructCycRedCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructCycRedDestroy_pre( HYPRE_Precision precision, HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructCycRedSetBase_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int ndim, HYPRE_Int *base_index, HYPRE_Int *base_stride );

HYPRE_Int
HYPRE_StructCycRedSetTDim_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int tdim );

HYPRE_Int
HYPRE_StructCycRedSetup_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructCycRedSolve_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructDiagScale_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix HA, HYPRE_StructVector Hy, HYPRE_StructVector Hx );

HYPRE_Int
HYPRE_StructDiagScaleSetup_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector y, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructFlexGMRESCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructFlexGMRESDestroy_pre( HYPRE_Precision precision, HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructFlexGMRESGetFinalRelativeResidualNorm_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, void *norm );

HYPRE_Int
HYPRE_StructFlexGMRESGetNumIterations_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_StructFlexGMRESSetAbsoluteTol_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructFlexGMRESSetKDim_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int k_dim );

HYPRE_Int
HYPRE_StructFlexGMRESSetLogging_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_StructFlexGMRESSetMaxIter_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_StructFlexGMRESSetModifyPC_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_PtrToModifyPCFcn modify_pc );

HYPRE_Int
HYPRE_StructFlexGMRESSetPrecond_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );

HYPRE_Int
HYPRE_StructFlexGMRESSetPrintLevel_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int level );

HYPRE_Int
HYPRE_StructFlexGMRESSetTol_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructFlexGMRESSetup_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructFlexGMRESSolve_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructGMRESCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructGMRESDestroy_pre( HYPRE_Precision precision, HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructGMRESGetFinalRelativeResidualNorm_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, void *norm );

HYPRE_Int
HYPRE_StructGMRESGetNumIterations_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_StructGMRESSetAbsoluteTol_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructGMRESSetKDim_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int k_dim );

HYPRE_Int
HYPRE_StructGMRESSetLogging_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_StructGMRESSetMaxIter_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_StructGMRESSetPrecond_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );

HYPRE_Int
HYPRE_StructGMRESSetPrintLevel_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int level );

HYPRE_Int
HYPRE_StructGMRESSetTol_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructGMRESSetup_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructGMRESSolve_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructHybridCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructHybridDestroy_pre( HYPRE_Precision precision, HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructHybridGetDSCGNumIterations_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *ds_num_its );

HYPRE_Int
HYPRE_StructHybridGetFinalRelativeResidualNorm_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, void *norm );

HYPRE_Int
HYPRE_StructHybridGetNumIterations_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *num_its );

HYPRE_Int
HYPRE_StructHybridGetPCGNumIterations_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *pre_num_its );

HYPRE_Int
HYPRE_StructHybridGetRecomputeResidual_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *recompute_residual );

HYPRE_Int
HYPRE_StructHybridGetRecomputeResidualP_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *recompute_residual_p );

HYPRE_Int
HYPRE_StructHybridSetConvergenceTol_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, hypre_long_double cf_tol );

HYPRE_Int
HYPRE_StructHybridSetDSCGMaxIter_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int ds_max_its );

HYPRE_Int
HYPRE_StructHybridSetKDim_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int k_dim );

HYPRE_Int
HYPRE_StructHybridSetLogging_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_StructHybridSetPCGAbsoluteTolFactor_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, hypre_long_double pcg_atolf );

HYPRE_Int
HYPRE_StructHybridSetPCGMaxIter_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int pre_max_its );

HYPRE_Int
HYPRE_StructHybridSetPrecond_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );

HYPRE_Int
HYPRE_StructHybridSetPrintLevel_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int print_level );

HYPRE_Int
HYPRE_StructHybridSetRecomputeResidual_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int recompute_residual );

HYPRE_Int
HYPRE_StructHybridSetRecomputeResidualP_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int recompute_residual_p );

HYPRE_Int
HYPRE_StructHybridSetRelChange_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int rel_change );

HYPRE_Int
HYPRE_StructHybridSetSolverType_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int solver_type );

HYPRE_Int
HYPRE_StructHybridSetStopCrit_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int stop_crit );

HYPRE_Int
HYPRE_StructHybridSetTol_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructHybridSetTwoNorm_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int two_norm );

HYPRE_Int
HYPRE_StructHybridSetup_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructHybridSolve_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructJacobiCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructJacobiDestroy_pre( HYPRE_Precision precision, HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructJacobiGetFinalRelativeResidualNorm_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, void *norm );

HYPRE_Int
HYPRE_StructJacobiGetMaxIter_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *max_iter );

HYPRE_Int
HYPRE_StructJacobiGetNumIterations_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_StructJacobiGetTol_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, void *tol );

HYPRE_Int
HYPRE_StructJacobiGetZeroGuess_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *zeroguess );

HYPRE_Int
HYPRE_StructJacobiSetMaxIter_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_StructJacobiSetNonZeroGuess_pre( HYPRE_Precision precision, HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructJacobiSetTol_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructJacobiSetZeroGuess_pre( HYPRE_Precision precision, HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructJacobiSetup_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructJacobiSolve_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructLGMRESCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructLGMRESDestroy_pre( HYPRE_Precision precision, HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructLGMRESGetFinalRelativeResidualNorm_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, void *norm );

HYPRE_Int
HYPRE_StructLGMRESGetNumIterations_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_StructLGMRESSetAbsoluteTol_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructLGMRESSetAugDim_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int aug_dim );

HYPRE_Int
HYPRE_StructLGMRESSetKDim_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int k_dim );

HYPRE_Int
HYPRE_StructLGMRESSetLogging_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_StructLGMRESSetMaxIter_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_StructLGMRESSetPrecond_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );

HYPRE_Int
HYPRE_StructLGMRESSetPrintLevel_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int level );

HYPRE_Int
HYPRE_StructLGMRESSetTol_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructLGMRESSetup_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructLGMRESSolve_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructPCGCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructPCGDestroy_pre( HYPRE_Precision precision, HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructPCGGetFinalRelativeResidualNorm_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, void *norm );

HYPRE_Int
HYPRE_StructPCGGetNumIterations_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_StructPCGSetAbsoluteTol_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructPCGSetLogging_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_StructPCGSetMaxIter_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_StructPCGSetPrecond_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_PtrToStructSolverFcn precond, HYPRE_PtrToStructSolverFcn precond_setup, HYPRE_StructSolver precond_solver );

HYPRE_Int
HYPRE_StructPCGSetPrintLevel_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int level );

HYPRE_Int
HYPRE_StructPCGSetRelChange_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int rel_change );

HYPRE_Int
HYPRE_StructPCGSetTol_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructPCGSetTwoNorm_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int two_norm );

HYPRE_Int
HYPRE_StructPCGSetup_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructPCGSolve_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructPFMGCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructPFMGDestroy_pre( HYPRE_Precision precision, HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructPFMGGetFinalRelativeResidualNorm_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, void *norm );

HYPRE_Int
HYPRE_StructPFMGGetJacobiWeight_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, void *weight );

HYPRE_Int
HYPRE_StructPFMGGetLogging_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *logging );

HYPRE_Int
HYPRE_StructPFMGGetMatmultType_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *matmult_type );

HYPRE_Int
HYPRE_StructPFMGGetMaxIter_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *max_iter );

HYPRE_Int
HYPRE_StructPFMGGetMaxLevels_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *max_levels );

HYPRE_Int
HYPRE_StructPFMGGetNumIterations_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_StructPFMGGetNumPostRelax_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *num_post_relax );

HYPRE_Int
HYPRE_StructPFMGGetNumPreRelax_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *num_pre_relax );

HYPRE_Int
HYPRE_StructPFMGGetPrintLevel_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *print_level );

HYPRE_Int
HYPRE_StructPFMGGetRAPType_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *rap_type );

HYPRE_Int
HYPRE_StructPFMGGetRelChange_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *rel_change );

HYPRE_Int
HYPRE_StructPFMGGetRelaxType_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *relax_type );

HYPRE_Int
HYPRE_StructPFMGGetSkipRelax_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *skip_relax );

HYPRE_Int
HYPRE_StructPFMGGetTol_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, void *tol );

HYPRE_Int
HYPRE_StructPFMGGetZeroGuess_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *zeroguess );

HYPRE_Int
HYPRE_StructPFMGSetDxyz_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, void *dxyz );

HYPRE_Int
HYPRE_StructPFMGSetJacobiWeight_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, hypre_long_double weight );

HYPRE_Int
HYPRE_StructPFMGSetLogging_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_StructPFMGSetMatmultType_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int matmult_type );

HYPRE_Int
HYPRE_StructPFMGSetMaxIter_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_StructPFMGSetMaxLevels_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int max_levels );

HYPRE_Int
HYPRE_StructPFMGSetNonZeroGuess_pre( HYPRE_Precision precision, HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructPFMGSetNumPostRelax_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int num_post_relax );

HYPRE_Int
HYPRE_StructPFMGSetNumPreRelax_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int num_pre_relax );

HYPRE_Int
HYPRE_StructPFMGSetPrintLevel_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int print_level );

HYPRE_Int
HYPRE_StructPFMGSetRAPType_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int rap_type );

HYPRE_Int
HYPRE_StructPFMGSetRelChange_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int rel_change );

HYPRE_Int
HYPRE_StructPFMGSetRelaxType_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int relax_type );

HYPRE_Int
HYPRE_StructPFMGSetSkipRelax_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int skip_relax );

HYPRE_Int
HYPRE_StructPFMGSetTol_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructPFMGSetZeroGuess_pre( HYPRE_Precision precision, HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructPFMGSetup_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructPFMGSolve_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructSMGCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_StructSolver *solver );

HYPRE_Int
HYPRE_StructSMGDestroy_pre( HYPRE_Precision precision, HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructSMGGetFinalRelativeResidualNorm_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, void *norm );

HYPRE_Int
HYPRE_StructSMGGetLogging_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *logging );

HYPRE_Int
HYPRE_StructSMGGetMaxIter_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *max_iter );

HYPRE_Int
HYPRE_StructSMGGetMemoryUse_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *memory_use );

HYPRE_Int
HYPRE_StructSMGGetNumIterations_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_StructSMGGetNumPostRelax_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *num_post_relax );

HYPRE_Int
HYPRE_StructSMGGetNumPreRelax_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *num_pre_relax );

HYPRE_Int
HYPRE_StructSMGGetPrintLevel_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *print_level );

HYPRE_Int
HYPRE_StructSMGGetRelChange_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *rel_change );

HYPRE_Int
HYPRE_StructSMGGetTol_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, void *tol );

HYPRE_Int
HYPRE_StructSMGGetZeroGuess_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int *zeroguess );

HYPRE_Int
HYPRE_StructSMGSetLogging_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_StructSMGSetMaxIter_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_StructSMGSetMemoryUse_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int memory_use );

HYPRE_Int
HYPRE_StructSMGSetNonZeroGuess_pre( HYPRE_Precision precision, HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructSMGSetNumPostRelax_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int num_post_relax );

HYPRE_Int
HYPRE_StructSMGSetNumPreRelax_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int num_pre_relax );

HYPRE_Int
HYPRE_StructSMGSetPrintLevel_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int print_level );

HYPRE_Int
HYPRE_StructSMGSetRelChange_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_Int rel_change );

HYPRE_Int
HYPRE_StructSMGSetTol_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_StructSMGSetZeroGuess_pre( HYPRE_Precision precision, HYPRE_StructSolver solver );

HYPRE_Int
HYPRE_StructSMGSetup_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructSMGSolve_pre( HYPRE_Precision precision, HYPRE_StructSolver solver, HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x );

HYPRE_Int
HYPRE_StructSetupInterpreter_pre( HYPRE_Precision precision, mv_InterfaceInterpreter *i );

HYPRE_Int
HYPRE_StructSetupMatvec_pre( HYPRE_Precision precision, HYPRE_MatvecFunctions *mv );


#endif

#ifdef __cplusplus
}
#endif

#endif

