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

#ifndef HYPRE_SSTRUCT_LS_MUP_HEADER
#define HYPRE_SSTRUCT_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_SStructBiCGSTABCreate_flt( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructBiCGSTABCreate_dbl( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructBiCGSTABCreate_long_dbl( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructBiCGSTABCreate( MPI_Comm comm, HYPRE_SStructSolver *solver );

HYPRE_Int
HYPRE_SStructBiCGSTABDestroy_flt( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructBiCGSTABDestroy_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructBiCGSTABDestroy_long_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructBiCGSTABDestroy( HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructBiCGSTABGetFinalRelativeResidualNorm_flt( HYPRE_SStructSolver solver, hypre_float *norm );
HYPRE_Int
HYPRE_SStructBiCGSTABGetFinalRelativeResidualNorm_dbl( HYPRE_SStructSolver solver, hypre_double *norm );
HYPRE_Int
HYPRE_SStructBiCGSTABGetFinalRelativeResidualNorm_long_dbl( HYPRE_SStructSolver solver, hypre_long_double *norm );
HYPRE_Int
HYPRE_SStructBiCGSTABGetFinalRelativeResidualNorm( HYPRE_SStructSolver solver, void *norm );

HYPRE_Int
HYPRE_SStructBiCGSTABGetNumIterations_flt( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructBiCGSTABGetNumIterations_dbl( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructBiCGSTABGetNumIterations_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructBiCGSTABGetNumIterations( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_SStructBiCGSTABGetResidual_flt( HYPRE_SStructSolver solver, void **residual );
HYPRE_Int
HYPRE_SStructBiCGSTABGetResidual_dbl( HYPRE_SStructSolver solver, void **residual );
HYPRE_Int
HYPRE_SStructBiCGSTABGetResidual_long_dbl( HYPRE_SStructSolver solver, void **residual );
HYPRE_Int
HYPRE_SStructBiCGSTABGetResidual( HYPRE_SStructSolver solver, void **residual );

HYPRE_Int
HYPRE_SStructBiCGSTABSetAbsoluteTol_flt( HYPRE_SStructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_SStructBiCGSTABSetAbsoluteTol_dbl( HYPRE_SStructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_SStructBiCGSTABSetAbsoluteTol_long_dbl( HYPRE_SStructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_SStructBiCGSTABSetAbsoluteTol( HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructBiCGSTABSetLogging_flt( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructBiCGSTABSetLogging_dbl( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructBiCGSTABSetLogging_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructBiCGSTABSetLogging( HYPRE_SStructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_SStructBiCGSTABSetMaxIter_flt( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructBiCGSTABSetMaxIter_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructBiCGSTABSetMaxIter_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructBiCGSTABSetMaxIter( HYPRE_SStructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_SStructBiCGSTABSetMinIter_flt( HYPRE_SStructSolver solver, HYPRE_Int min_iter );
HYPRE_Int
HYPRE_SStructBiCGSTABSetMinIter_dbl( HYPRE_SStructSolver solver, HYPRE_Int min_iter );
HYPRE_Int
HYPRE_SStructBiCGSTABSetMinIter_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int min_iter );
HYPRE_Int
HYPRE_SStructBiCGSTABSetMinIter( HYPRE_SStructSolver solver, HYPRE_Int min_iter );

HYPRE_Int
HYPRE_SStructBiCGSTABSetPrecond_flt( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );
HYPRE_Int
HYPRE_SStructBiCGSTABSetPrecond_dbl( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );
HYPRE_Int
HYPRE_SStructBiCGSTABSetPrecond_long_dbl( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );
HYPRE_Int
HYPRE_SStructBiCGSTABSetPrecond( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );

HYPRE_Int
HYPRE_SStructBiCGSTABSetPrintLevel_flt( HYPRE_SStructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_SStructBiCGSTABSetPrintLevel_dbl( HYPRE_SStructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_SStructBiCGSTABSetPrintLevel_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_SStructBiCGSTABSetPrintLevel( HYPRE_SStructSolver solver, HYPRE_Int level );

HYPRE_Int
HYPRE_SStructBiCGSTABSetStopCrit_flt( HYPRE_SStructSolver solver, HYPRE_Int stop_crit );
HYPRE_Int
HYPRE_SStructBiCGSTABSetStopCrit_dbl( HYPRE_SStructSolver solver, HYPRE_Int stop_crit );
HYPRE_Int
HYPRE_SStructBiCGSTABSetStopCrit_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int stop_crit );
HYPRE_Int
HYPRE_SStructBiCGSTABSetStopCrit( HYPRE_SStructSolver solver, HYPRE_Int stop_crit );

HYPRE_Int
HYPRE_SStructBiCGSTABSetTol_flt( HYPRE_SStructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_SStructBiCGSTABSetTol_dbl( HYPRE_SStructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_SStructBiCGSTABSetTol_long_dbl( HYPRE_SStructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_SStructBiCGSTABSetTol( HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructBiCGSTABSetup_flt( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructBiCGSTABSetup_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructBiCGSTABSetup_long_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructBiCGSTABSetup( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructBiCGSTABSolve_flt( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructBiCGSTABSolve_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructBiCGSTABSolve_long_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructBiCGSTABSolve( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructDiagScale_flt( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector y, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructDiagScale_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector y, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructDiagScale_long_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector y, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructDiagScale( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector y, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructDiagScaleSetup_flt( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector y, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructDiagScaleSetup_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector y, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructDiagScaleSetup_long_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector y, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructDiagScaleSetup( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector y, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructFlexGMRESCreate_flt( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructFlexGMRESCreate_dbl( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructFlexGMRESCreate_long_dbl( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructFlexGMRESCreate( MPI_Comm comm, HYPRE_SStructSolver *solver );

HYPRE_Int
HYPRE_SStructFlexGMRESDestroy_flt( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructFlexGMRESDestroy_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructFlexGMRESDestroy_long_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructFlexGMRESDestroy( HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructFlexGMRESGetFinalRelativeResidualNorm_flt( HYPRE_SStructSolver solver, hypre_float *norm );
HYPRE_Int
HYPRE_SStructFlexGMRESGetFinalRelativeResidualNorm_dbl( HYPRE_SStructSolver solver, hypre_double *norm );
HYPRE_Int
HYPRE_SStructFlexGMRESGetFinalRelativeResidualNorm_long_dbl( HYPRE_SStructSolver solver, hypre_long_double *norm );
HYPRE_Int
HYPRE_SStructFlexGMRESGetFinalRelativeResidualNorm( HYPRE_SStructSolver solver, void *norm );

HYPRE_Int
HYPRE_SStructFlexGMRESGetNumIterations_flt( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructFlexGMRESGetNumIterations_dbl( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructFlexGMRESGetNumIterations_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructFlexGMRESGetNumIterations( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_SStructFlexGMRESGetResidual_flt( HYPRE_SStructSolver solver, void **residual );
HYPRE_Int
HYPRE_SStructFlexGMRESGetResidual_dbl( HYPRE_SStructSolver solver, void **residual );
HYPRE_Int
HYPRE_SStructFlexGMRESGetResidual_long_dbl( HYPRE_SStructSolver solver, void **residual );
HYPRE_Int
HYPRE_SStructFlexGMRESGetResidual( HYPRE_SStructSolver solver, void **residual );

HYPRE_Int
HYPRE_SStructFlexGMRESSetAbsoluteTol_flt( HYPRE_SStructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_SStructFlexGMRESSetAbsoluteTol_dbl( HYPRE_SStructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_SStructFlexGMRESSetAbsoluteTol_long_dbl( HYPRE_SStructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_SStructFlexGMRESSetAbsoluteTol( HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructFlexGMRESSetKDim_flt( HYPRE_SStructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_SStructFlexGMRESSetKDim_dbl( HYPRE_SStructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_SStructFlexGMRESSetKDim_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_SStructFlexGMRESSetKDim( HYPRE_SStructSolver solver, HYPRE_Int k_dim );

HYPRE_Int
HYPRE_SStructFlexGMRESSetLogging_flt( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructFlexGMRESSetLogging_dbl( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructFlexGMRESSetLogging_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructFlexGMRESSetLogging( HYPRE_SStructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_SStructFlexGMRESSetMaxIter_flt( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructFlexGMRESSetMaxIter_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructFlexGMRESSetMaxIter_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructFlexGMRESSetMaxIter( HYPRE_SStructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_SStructFlexGMRESSetMinIter_flt( HYPRE_SStructSolver solver, HYPRE_Int min_iter );
HYPRE_Int
HYPRE_SStructFlexGMRESSetMinIter_dbl( HYPRE_SStructSolver solver, HYPRE_Int min_iter );
HYPRE_Int
HYPRE_SStructFlexGMRESSetMinIter_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int min_iter );
HYPRE_Int
HYPRE_SStructFlexGMRESSetMinIter( HYPRE_SStructSolver solver, HYPRE_Int min_iter );

HYPRE_Int
HYPRE_SStructFlexGMRESSetModifyPC_flt( HYPRE_SStructSolver solver, HYPRE_PtrToModifyPCFcn modify_pc );
HYPRE_Int
HYPRE_SStructFlexGMRESSetModifyPC_dbl( HYPRE_SStructSolver solver, HYPRE_PtrToModifyPCFcn modify_pc );
HYPRE_Int
HYPRE_SStructFlexGMRESSetModifyPC_long_dbl( HYPRE_SStructSolver solver, HYPRE_PtrToModifyPCFcn modify_pc );
HYPRE_Int
HYPRE_SStructFlexGMRESSetModifyPC( HYPRE_SStructSolver solver, HYPRE_PtrToModifyPCFcn modify_pc );

HYPRE_Int
HYPRE_SStructFlexGMRESSetPrecond_flt( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );
HYPRE_Int
HYPRE_SStructFlexGMRESSetPrecond_dbl( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );
HYPRE_Int
HYPRE_SStructFlexGMRESSetPrecond_long_dbl( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );
HYPRE_Int
HYPRE_SStructFlexGMRESSetPrecond( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );

HYPRE_Int
HYPRE_SStructFlexGMRESSetPrintLevel_flt( HYPRE_SStructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_SStructFlexGMRESSetPrintLevel_dbl( HYPRE_SStructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_SStructFlexGMRESSetPrintLevel_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_SStructFlexGMRESSetPrintLevel( HYPRE_SStructSolver solver, HYPRE_Int print_level );

HYPRE_Int
HYPRE_SStructFlexGMRESSetTol_flt( HYPRE_SStructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_SStructFlexGMRESSetTol_dbl( HYPRE_SStructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_SStructFlexGMRESSetTol_long_dbl( HYPRE_SStructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_SStructFlexGMRESSetTol( HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructFlexGMRESSetup_flt( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructFlexGMRESSetup_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructFlexGMRESSetup_long_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructFlexGMRESSetup( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructFlexGMRESSolve_flt( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructFlexGMRESSolve_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructFlexGMRESSolve_long_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructFlexGMRESSolve( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructGMRESCreate_flt( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructGMRESCreate_dbl( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructGMRESCreate_long_dbl( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructGMRESCreate( MPI_Comm comm, HYPRE_SStructSolver *solver );

HYPRE_Int
HYPRE_SStructGMRESDestroy_flt( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructGMRESDestroy_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructGMRESDestroy_long_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructGMRESDestroy( HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructGMRESGetFinalRelativeResidualNorm_flt( HYPRE_SStructSolver solver, hypre_float *norm );
HYPRE_Int
HYPRE_SStructGMRESGetFinalRelativeResidualNorm_dbl( HYPRE_SStructSolver solver, hypre_double *norm );
HYPRE_Int
HYPRE_SStructGMRESGetFinalRelativeResidualNorm_long_dbl( HYPRE_SStructSolver solver, hypre_long_double *norm );
HYPRE_Int
HYPRE_SStructGMRESGetFinalRelativeResidualNorm( HYPRE_SStructSolver solver, void *norm );

HYPRE_Int
HYPRE_SStructGMRESGetNumIterations_flt( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructGMRESGetNumIterations_dbl( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructGMRESGetNumIterations_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructGMRESGetNumIterations( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_SStructGMRESGetResidual_flt( HYPRE_SStructSolver solver, void **residual );
HYPRE_Int
HYPRE_SStructGMRESGetResidual_dbl( HYPRE_SStructSolver solver, void **residual );
HYPRE_Int
HYPRE_SStructGMRESGetResidual_long_dbl( HYPRE_SStructSolver solver, void **residual );
HYPRE_Int
HYPRE_SStructGMRESGetResidual( HYPRE_SStructSolver solver, void **residual );

HYPRE_Int
HYPRE_SStructGMRESSetAbsoluteTol_flt( HYPRE_SStructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_SStructGMRESSetAbsoluteTol_dbl( HYPRE_SStructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_SStructGMRESSetAbsoluteTol_long_dbl( HYPRE_SStructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_SStructGMRESSetAbsoluteTol( HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructGMRESSetKDim_flt( HYPRE_SStructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_SStructGMRESSetKDim_dbl( HYPRE_SStructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_SStructGMRESSetKDim_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_SStructGMRESSetKDim( HYPRE_SStructSolver solver, HYPRE_Int k_dim );

HYPRE_Int
HYPRE_SStructGMRESSetLogging_flt( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructGMRESSetLogging_dbl( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructGMRESSetLogging_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructGMRESSetLogging( HYPRE_SStructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_SStructGMRESSetMaxIter_flt( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructGMRESSetMaxIter_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructGMRESSetMaxIter_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructGMRESSetMaxIter( HYPRE_SStructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_SStructGMRESSetMinIter_flt( HYPRE_SStructSolver solver, HYPRE_Int min_iter );
HYPRE_Int
HYPRE_SStructGMRESSetMinIter_dbl( HYPRE_SStructSolver solver, HYPRE_Int min_iter );
HYPRE_Int
HYPRE_SStructGMRESSetMinIter_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int min_iter );
HYPRE_Int
HYPRE_SStructGMRESSetMinIter( HYPRE_SStructSolver solver, HYPRE_Int min_iter );

HYPRE_Int
HYPRE_SStructGMRESSetPrecond_flt( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );
HYPRE_Int
HYPRE_SStructGMRESSetPrecond_dbl( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );
HYPRE_Int
HYPRE_SStructGMRESSetPrecond_long_dbl( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );
HYPRE_Int
HYPRE_SStructGMRESSetPrecond( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );

HYPRE_Int
HYPRE_SStructGMRESSetPrintLevel_flt( HYPRE_SStructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_SStructGMRESSetPrintLevel_dbl( HYPRE_SStructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_SStructGMRESSetPrintLevel_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_SStructGMRESSetPrintLevel( HYPRE_SStructSolver solver, HYPRE_Int print_level );

HYPRE_Int
HYPRE_SStructGMRESSetStopCrit_flt( HYPRE_SStructSolver solver, HYPRE_Int stop_crit );
HYPRE_Int
HYPRE_SStructGMRESSetStopCrit_dbl( HYPRE_SStructSolver solver, HYPRE_Int stop_crit );
HYPRE_Int
HYPRE_SStructGMRESSetStopCrit_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int stop_crit );
HYPRE_Int
HYPRE_SStructGMRESSetStopCrit( HYPRE_SStructSolver solver, HYPRE_Int stop_crit );

HYPRE_Int
HYPRE_SStructGMRESSetTol_flt( HYPRE_SStructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_SStructGMRESSetTol_dbl( HYPRE_SStructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_SStructGMRESSetTol_long_dbl( HYPRE_SStructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_SStructGMRESSetTol( HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructGMRESSetup_flt( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructGMRESSetup_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructGMRESSetup_long_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructGMRESSetup( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructGMRESSolve_flt( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructGMRESSolve_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructGMRESSolve_long_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructGMRESSolve( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructLGMRESCreate_flt( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructLGMRESCreate_dbl( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructLGMRESCreate_long_dbl( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructLGMRESCreate( MPI_Comm comm, HYPRE_SStructSolver *solver );

HYPRE_Int
HYPRE_SStructLGMRESDestroy_flt( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructLGMRESDestroy_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructLGMRESDestroy_long_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructLGMRESDestroy( HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructLGMRESGetFinalRelativeResidualNorm_flt( HYPRE_SStructSolver solver, hypre_float *norm );
HYPRE_Int
HYPRE_SStructLGMRESGetFinalRelativeResidualNorm_dbl( HYPRE_SStructSolver solver, hypre_double *norm );
HYPRE_Int
HYPRE_SStructLGMRESGetFinalRelativeResidualNorm_long_dbl( HYPRE_SStructSolver solver, hypre_long_double *norm );
HYPRE_Int
HYPRE_SStructLGMRESGetFinalRelativeResidualNorm( HYPRE_SStructSolver solver, void *norm );

HYPRE_Int
HYPRE_SStructLGMRESGetNumIterations_flt( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructLGMRESGetNumIterations_dbl( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructLGMRESGetNumIterations_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructLGMRESGetNumIterations( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_SStructLGMRESGetResidual_flt( HYPRE_SStructSolver solver, void **residual );
HYPRE_Int
HYPRE_SStructLGMRESGetResidual_dbl( HYPRE_SStructSolver solver, void **residual );
HYPRE_Int
HYPRE_SStructLGMRESGetResidual_long_dbl( HYPRE_SStructSolver solver, void **residual );
HYPRE_Int
HYPRE_SStructLGMRESGetResidual( HYPRE_SStructSolver solver, void **residual );

HYPRE_Int
HYPRE_SStructLGMRESSetAbsoluteTol_flt( HYPRE_SStructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_SStructLGMRESSetAbsoluteTol_dbl( HYPRE_SStructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_SStructLGMRESSetAbsoluteTol_long_dbl( HYPRE_SStructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_SStructLGMRESSetAbsoluteTol( HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructLGMRESSetAugDim_flt( HYPRE_SStructSolver solver, HYPRE_Int aug_dim );
HYPRE_Int
HYPRE_SStructLGMRESSetAugDim_dbl( HYPRE_SStructSolver solver, HYPRE_Int aug_dim );
HYPRE_Int
HYPRE_SStructLGMRESSetAugDim_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int aug_dim );
HYPRE_Int
HYPRE_SStructLGMRESSetAugDim( HYPRE_SStructSolver solver, HYPRE_Int aug_dim );

HYPRE_Int
HYPRE_SStructLGMRESSetKDim_flt( HYPRE_SStructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_SStructLGMRESSetKDim_dbl( HYPRE_SStructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_SStructLGMRESSetKDim_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int k_dim );
HYPRE_Int
HYPRE_SStructLGMRESSetKDim( HYPRE_SStructSolver solver, HYPRE_Int k_dim );

HYPRE_Int
HYPRE_SStructLGMRESSetLogging_flt( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructLGMRESSetLogging_dbl( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructLGMRESSetLogging_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructLGMRESSetLogging( HYPRE_SStructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_SStructLGMRESSetMaxIter_flt( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructLGMRESSetMaxIter_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructLGMRESSetMaxIter_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructLGMRESSetMaxIter( HYPRE_SStructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_SStructLGMRESSetMinIter_flt( HYPRE_SStructSolver solver, HYPRE_Int min_iter );
HYPRE_Int
HYPRE_SStructLGMRESSetMinIter_dbl( HYPRE_SStructSolver solver, HYPRE_Int min_iter );
HYPRE_Int
HYPRE_SStructLGMRESSetMinIter_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int min_iter );
HYPRE_Int
HYPRE_SStructLGMRESSetMinIter( HYPRE_SStructSolver solver, HYPRE_Int min_iter );

HYPRE_Int
HYPRE_SStructLGMRESSetPrecond_flt( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );
HYPRE_Int
HYPRE_SStructLGMRESSetPrecond_dbl( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );
HYPRE_Int
HYPRE_SStructLGMRESSetPrecond_long_dbl( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );
HYPRE_Int
HYPRE_SStructLGMRESSetPrecond( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );

HYPRE_Int
HYPRE_SStructLGMRESSetPrintLevel_flt( HYPRE_SStructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_SStructLGMRESSetPrintLevel_dbl( HYPRE_SStructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_SStructLGMRESSetPrintLevel_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_SStructLGMRESSetPrintLevel( HYPRE_SStructSolver solver, HYPRE_Int print_level );

HYPRE_Int
HYPRE_SStructLGMRESSetTol_flt( HYPRE_SStructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_SStructLGMRESSetTol_dbl( HYPRE_SStructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_SStructLGMRESSetTol_long_dbl( HYPRE_SStructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_SStructLGMRESSetTol( HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructLGMRESSetup_flt( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructLGMRESSetup_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructLGMRESSetup_long_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructLGMRESSetup( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructLGMRESSolve_flt( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructLGMRESSolve_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructLGMRESSolve_long_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructLGMRESSolve( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructPCGCreate_flt( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructPCGCreate_dbl( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructPCGCreate_long_dbl( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructPCGCreate( MPI_Comm comm, HYPRE_SStructSolver *solver );

HYPRE_Int
HYPRE_SStructPCGDestroy_flt( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructPCGDestroy_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructPCGDestroy_long_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructPCGDestroy( HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructPCGGetFinalRelativeResidualNorm_flt( HYPRE_SStructSolver solver, hypre_float *norm );
HYPRE_Int
HYPRE_SStructPCGGetFinalRelativeResidualNorm_dbl( HYPRE_SStructSolver solver, hypre_double *norm );
HYPRE_Int
HYPRE_SStructPCGGetFinalRelativeResidualNorm_long_dbl( HYPRE_SStructSolver solver, hypre_long_double *norm );
HYPRE_Int
HYPRE_SStructPCGGetFinalRelativeResidualNorm( HYPRE_SStructSolver solver, void *norm );

HYPRE_Int
HYPRE_SStructPCGGetNumIterations_flt( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructPCGGetNumIterations_dbl( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructPCGGetNumIterations_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructPCGGetNumIterations( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_SStructPCGGetResidual_flt( HYPRE_SStructSolver solver, void **residual );
HYPRE_Int
HYPRE_SStructPCGGetResidual_dbl( HYPRE_SStructSolver solver, void **residual );
HYPRE_Int
HYPRE_SStructPCGGetResidual_long_dbl( HYPRE_SStructSolver solver, void **residual );
HYPRE_Int
HYPRE_SStructPCGGetResidual( HYPRE_SStructSolver solver, void **residual );

HYPRE_Int
HYPRE_SStructPCGSetAbsoluteTol_flt( HYPRE_SStructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_SStructPCGSetAbsoluteTol_dbl( HYPRE_SStructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_SStructPCGSetAbsoluteTol_long_dbl( HYPRE_SStructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_SStructPCGSetAbsoluteTol( HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructPCGSetLogging_flt( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructPCGSetLogging_dbl( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructPCGSetLogging_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructPCGSetLogging( HYPRE_SStructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_SStructPCGSetMaxIter_flt( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructPCGSetMaxIter_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructPCGSetMaxIter_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructPCGSetMaxIter( HYPRE_SStructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_SStructPCGSetPrecond_flt( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );
HYPRE_Int
HYPRE_SStructPCGSetPrecond_dbl( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );
HYPRE_Int
HYPRE_SStructPCGSetPrecond_long_dbl( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );
HYPRE_Int
HYPRE_SStructPCGSetPrecond( HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );

HYPRE_Int
HYPRE_SStructPCGSetPrintLevel_flt( HYPRE_SStructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_SStructPCGSetPrintLevel_dbl( HYPRE_SStructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_SStructPCGSetPrintLevel_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int level );
HYPRE_Int
HYPRE_SStructPCGSetPrintLevel( HYPRE_SStructSolver solver, HYPRE_Int level );

HYPRE_Int
HYPRE_SStructPCGSetRelChange_flt( HYPRE_SStructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_SStructPCGSetRelChange_dbl( HYPRE_SStructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_SStructPCGSetRelChange_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_SStructPCGSetRelChange( HYPRE_SStructSolver solver, HYPRE_Int rel_change );

HYPRE_Int
HYPRE_SStructPCGSetTol_flt( HYPRE_SStructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_SStructPCGSetTol_dbl( HYPRE_SStructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_SStructPCGSetTol_long_dbl( HYPRE_SStructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_SStructPCGSetTol( HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructPCGSetTwoNorm_flt( HYPRE_SStructSolver solver, HYPRE_Int two_norm );
HYPRE_Int
HYPRE_SStructPCGSetTwoNorm_dbl( HYPRE_SStructSolver solver, HYPRE_Int two_norm );
HYPRE_Int
HYPRE_SStructPCGSetTwoNorm_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int two_norm );
HYPRE_Int
HYPRE_SStructPCGSetTwoNorm( HYPRE_SStructSolver solver, HYPRE_Int two_norm );

HYPRE_Int
HYPRE_SStructPCGSetup_flt( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructPCGSetup_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructPCGSetup_long_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructPCGSetup( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructPCGSolve_flt( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructPCGSolve_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructPCGSolve_long_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructPCGSolve( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructSSAMGCreate_flt( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructSSAMGCreate_dbl( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructSSAMGCreate_long_dbl( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructSSAMGCreate( MPI_Comm comm, HYPRE_SStructSolver *solver );

HYPRE_Int
HYPRE_SStructSSAMGDestroy_flt( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSSAMGDestroy_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSSAMGDestroy_long_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSSAMGDestroy( HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSSAMGGetFinalRelativeResidualNorm_flt( HYPRE_SStructSolver solver, hypre_float *norm );
HYPRE_Int
HYPRE_SStructSSAMGGetFinalRelativeResidualNorm_dbl( HYPRE_SStructSolver solver, hypre_double *norm );
HYPRE_Int
HYPRE_SStructSSAMGGetFinalRelativeResidualNorm_long_dbl( HYPRE_SStructSolver solver, hypre_long_double *norm );
HYPRE_Int
HYPRE_SStructSSAMGGetFinalRelativeResidualNorm( HYPRE_SStructSolver solver, void *norm );

HYPRE_Int
HYPRE_SStructSSAMGGetNumIterations_flt( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructSSAMGGetNumIterations_dbl( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructSSAMGGetNumIterations_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructSSAMGGetNumIterations( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_SStructSSAMGSetCoarseSolverType_flt( HYPRE_SStructSolver solver, HYPRE_Int csolver_type );
HYPRE_Int
HYPRE_SStructSSAMGSetCoarseSolverType_dbl( HYPRE_SStructSolver solver, HYPRE_Int csolver_type );
HYPRE_Int
HYPRE_SStructSSAMGSetCoarseSolverType_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int csolver_type );
HYPRE_Int
HYPRE_SStructSSAMGSetCoarseSolverType( HYPRE_SStructSolver solver, HYPRE_Int csolver_type );

HYPRE_Int
HYPRE_SStructSSAMGSetDxyz_flt( HYPRE_SStructSolver solver, HYPRE_Int nparts, hypre_float **dxyz );
HYPRE_Int
HYPRE_SStructSSAMGSetDxyz_dbl( HYPRE_SStructSolver solver, HYPRE_Int nparts, hypre_double **dxyz );
HYPRE_Int
HYPRE_SStructSSAMGSetDxyz_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int nparts, hypre_long_double **dxyz );
HYPRE_Int
HYPRE_SStructSSAMGSetDxyz( HYPRE_SStructSolver solver, HYPRE_Int nparts, void *dxyz );

HYPRE_Int
HYPRE_SStructSSAMGSetInterpType_flt( HYPRE_SStructSolver solver, HYPRE_Int interp_type );
HYPRE_Int
HYPRE_SStructSSAMGSetInterpType_dbl( HYPRE_SStructSolver solver, HYPRE_Int interp_type );
HYPRE_Int
HYPRE_SStructSSAMGSetInterpType_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int interp_type );
HYPRE_Int
HYPRE_SStructSSAMGSetInterpType( HYPRE_SStructSolver solver, HYPRE_Int interp_type );

HYPRE_Int
HYPRE_SStructSSAMGSetLogging_flt( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructSSAMGSetLogging_dbl( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructSSAMGSetLogging_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructSSAMGSetLogging( HYPRE_SStructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_SStructSSAMGSetMaxCoarseSize_flt( HYPRE_SStructSolver solver, HYPRE_Int max_coarse_size );
HYPRE_Int
HYPRE_SStructSSAMGSetMaxCoarseSize_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_coarse_size );
HYPRE_Int
HYPRE_SStructSSAMGSetMaxCoarseSize_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_coarse_size );
HYPRE_Int
HYPRE_SStructSSAMGSetMaxCoarseSize( HYPRE_SStructSolver solver, HYPRE_Int max_coarse_size );

HYPRE_Int
HYPRE_SStructSSAMGSetMaxIter_flt( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructSSAMGSetMaxIter_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructSSAMGSetMaxIter_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructSSAMGSetMaxIter( HYPRE_SStructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_SStructSSAMGSetMaxLevels_flt( HYPRE_SStructSolver solver, HYPRE_Int max_levels );
HYPRE_Int
HYPRE_SStructSSAMGSetMaxLevels_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_levels );
HYPRE_Int
HYPRE_SStructSSAMGSetMaxLevels_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_levels );
HYPRE_Int
HYPRE_SStructSSAMGSetMaxLevels( HYPRE_SStructSolver solver, HYPRE_Int max_levels );

HYPRE_Int
HYPRE_SStructSSAMGSetNonGalerkinRAP_flt( HYPRE_SStructSolver solver, HYPRE_Int non_galerkin );
HYPRE_Int
HYPRE_SStructSSAMGSetNonGalerkinRAP_dbl( HYPRE_SStructSolver solver, HYPRE_Int non_galerkin );
HYPRE_Int
HYPRE_SStructSSAMGSetNonGalerkinRAP_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int non_galerkin );
HYPRE_Int
HYPRE_SStructSSAMGSetNonGalerkinRAP( HYPRE_SStructSolver solver, HYPRE_Int non_galerkin );

HYPRE_Int
HYPRE_SStructSSAMGSetNonZeroGuess_flt( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSSAMGSetNonZeroGuess_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSSAMGSetNonZeroGuess_long_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSSAMGSetNonZeroGuess( HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSSAMGSetNumCoarseRelax_flt( HYPRE_SStructSolver solver, HYPRE_Int num_coarse_relax );
HYPRE_Int
HYPRE_SStructSSAMGSetNumCoarseRelax_dbl( HYPRE_SStructSolver solver, HYPRE_Int num_coarse_relax );
HYPRE_Int
HYPRE_SStructSSAMGSetNumCoarseRelax_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int num_coarse_relax );
HYPRE_Int
HYPRE_SStructSSAMGSetNumCoarseRelax( HYPRE_SStructSolver solver, HYPRE_Int num_coarse_relax );

HYPRE_Int
HYPRE_SStructSSAMGSetNumPostRelax_flt( HYPRE_SStructSolver solver, HYPRE_Int num_post_relax );
HYPRE_Int
HYPRE_SStructSSAMGSetNumPostRelax_dbl( HYPRE_SStructSolver solver, HYPRE_Int num_post_relax );
HYPRE_Int
HYPRE_SStructSSAMGSetNumPostRelax_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int num_post_relax );
HYPRE_Int
HYPRE_SStructSSAMGSetNumPostRelax( HYPRE_SStructSolver solver, HYPRE_Int num_post_relax );

HYPRE_Int
HYPRE_SStructSSAMGSetNumPreRelax_flt( HYPRE_SStructSolver solver, HYPRE_Int num_pre_relax );
HYPRE_Int
HYPRE_SStructSSAMGSetNumPreRelax_dbl( HYPRE_SStructSolver solver, HYPRE_Int num_pre_relax );
HYPRE_Int
HYPRE_SStructSSAMGSetNumPreRelax_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int num_pre_relax );
HYPRE_Int
HYPRE_SStructSSAMGSetNumPreRelax( HYPRE_SStructSolver solver, HYPRE_Int num_pre_relax );

HYPRE_Int
HYPRE_SStructSSAMGSetPrintFreq_flt( HYPRE_SStructSolver solver, HYPRE_Int print_freq );
HYPRE_Int
HYPRE_SStructSSAMGSetPrintFreq_dbl( HYPRE_SStructSolver solver, HYPRE_Int print_freq );
HYPRE_Int
HYPRE_SStructSSAMGSetPrintFreq_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int print_freq );
HYPRE_Int
HYPRE_SStructSSAMGSetPrintFreq( HYPRE_SStructSolver solver, HYPRE_Int print_freq );

HYPRE_Int
HYPRE_SStructSSAMGSetPrintLevel_flt( HYPRE_SStructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_SStructSSAMGSetPrintLevel_dbl( HYPRE_SStructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_SStructSSAMGSetPrintLevel_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_SStructSSAMGSetPrintLevel( HYPRE_SStructSolver solver, HYPRE_Int print_level );

HYPRE_Int
HYPRE_SStructSSAMGSetRelChange_flt( HYPRE_SStructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_SStructSSAMGSetRelChange_dbl( HYPRE_SStructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_SStructSSAMGSetRelChange_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_SStructSSAMGSetRelChange( HYPRE_SStructSolver solver, HYPRE_Int rel_change );

HYPRE_Int
HYPRE_SStructSSAMGSetRelaxType_flt( HYPRE_SStructSolver solver, HYPRE_Int relax_type );
HYPRE_Int
HYPRE_SStructSSAMGSetRelaxType_dbl( HYPRE_SStructSolver solver, HYPRE_Int relax_type );
HYPRE_Int
HYPRE_SStructSSAMGSetRelaxType_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int relax_type );
HYPRE_Int
HYPRE_SStructSSAMGSetRelaxType( HYPRE_SStructSolver solver, HYPRE_Int relax_type );

HYPRE_Int
HYPRE_SStructSSAMGSetRelaxWeight_flt( HYPRE_SStructSolver solver, hypre_float weight );
HYPRE_Int
HYPRE_SStructSSAMGSetRelaxWeight_dbl( HYPRE_SStructSolver solver, hypre_double weight );
HYPRE_Int
HYPRE_SStructSSAMGSetRelaxWeight_long_dbl( HYPRE_SStructSolver solver, hypre_long_double weight );
HYPRE_Int
HYPRE_SStructSSAMGSetRelaxWeight( HYPRE_SStructSolver solver, hypre_long_double weight );

HYPRE_Int
HYPRE_SStructSSAMGSetSkipRelax_flt( HYPRE_SStructSolver solver, HYPRE_Int skip_relax );
HYPRE_Int
HYPRE_SStructSSAMGSetSkipRelax_dbl( HYPRE_SStructSolver solver, HYPRE_Int skip_relax );
HYPRE_Int
HYPRE_SStructSSAMGSetSkipRelax_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int skip_relax );
HYPRE_Int
HYPRE_SStructSSAMGSetSkipRelax( HYPRE_SStructSolver solver, HYPRE_Int skip_relax );

HYPRE_Int
HYPRE_SStructSSAMGSetTol_flt( HYPRE_SStructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_SStructSSAMGSetTol_dbl( HYPRE_SStructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_SStructSSAMGSetTol_long_dbl( HYPRE_SStructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_SStructSSAMGSetTol( HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructSSAMGSetZeroGuess_flt( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSSAMGSetZeroGuess_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSSAMGSetZeroGuess_long_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSSAMGSetZeroGuess( HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSSAMGSetup_flt( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructSSAMGSetup_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructSSAMGSetup_long_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructSSAMGSetup( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructSSAMGSolve_flt( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructSSAMGSolve_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructSSAMGSolve_long_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructSSAMGSolve( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructSetupInterpreter_flt( mv_InterfaceInterpreter *i );
HYPRE_Int
HYPRE_SStructSetupInterpreter_dbl( mv_InterfaceInterpreter *i );
HYPRE_Int
HYPRE_SStructSetupInterpreter_long_dbl( mv_InterfaceInterpreter *i );
HYPRE_Int
HYPRE_SStructSetupInterpreter( mv_InterfaceInterpreter *i );

HYPRE_Int
HYPRE_SStructSetupMatvec_flt( HYPRE_MatvecFunctions *mv );
HYPRE_Int
HYPRE_SStructSetupMatvec_dbl( HYPRE_MatvecFunctions *mv );
HYPRE_Int
HYPRE_SStructSetupMatvec_long_dbl( HYPRE_MatvecFunctions *mv );
HYPRE_Int
HYPRE_SStructSetupMatvec( HYPRE_MatvecFunctions *mv );

HYPRE_Int
HYPRE_SStructSplitCreate_flt( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructSplitCreate_dbl( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructSplitCreate_long_dbl( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructSplitCreate( MPI_Comm comm, HYPRE_SStructSolver *solver );

HYPRE_Int
HYPRE_SStructSplitDestroy_flt( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSplitDestroy_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSplitDestroy_long_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSplitDestroy( HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSplitGetFinalRelativeResidualNorm_flt( HYPRE_SStructSolver solver, hypre_float *norm );
HYPRE_Int
HYPRE_SStructSplitGetFinalRelativeResidualNorm_dbl( HYPRE_SStructSolver solver, hypre_double *norm );
HYPRE_Int
HYPRE_SStructSplitGetFinalRelativeResidualNorm_long_dbl( HYPRE_SStructSolver solver, hypre_long_double *norm );
HYPRE_Int
HYPRE_SStructSplitGetFinalRelativeResidualNorm( HYPRE_SStructSolver solver, void *norm );

HYPRE_Int
HYPRE_SStructSplitGetNumIterations_flt( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructSplitGetNumIterations_dbl( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructSplitGetNumIterations_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructSplitGetNumIterations( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_SStructSplitPrintLogging_flt( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSplitPrintLogging_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSplitPrintLogging_long_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSplitPrintLogging( HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSplitSetLogging_flt( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructSplitSetLogging_dbl( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructSplitSetLogging_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructSplitSetLogging( HYPRE_SStructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_SStructSplitSetMaxIter_flt( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructSplitSetMaxIter_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructSplitSetMaxIter_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructSplitSetMaxIter( HYPRE_SStructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_SStructSplitSetNonZeroGuess_flt( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSplitSetNonZeroGuess_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSplitSetNonZeroGuess_long_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSplitSetNonZeroGuess( HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSplitSetPrintLevel_flt( HYPRE_SStructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_SStructSplitSetPrintLevel_dbl( HYPRE_SStructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_SStructSplitSetPrintLevel_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_SStructSplitSetPrintLevel( HYPRE_SStructSolver solver, HYPRE_Int print_level );

HYPRE_Int
HYPRE_SStructSplitSetStructSolver_flt( HYPRE_SStructSolver solver, HYPRE_Int ssolver );
HYPRE_Int
HYPRE_SStructSplitSetStructSolver_dbl( HYPRE_SStructSolver solver, HYPRE_Int ssolver );
HYPRE_Int
HYPRE_SStructSplitSetStructSolver_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int ssolver );
HYPRE_Int
HYPRE_SStructSplitSetStructSolver( HYPRE_SStructSolver solver, HYPRE_Int ssolver );

HYPRE_Int
HYPRE_SStructSplitSetTol_flt( HYPRE_SStructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_SStructSplitSetTol_dbl( HYPRE_SStructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_SStructSplitSetTol_long_dbl( HYPRE_SStructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_SStructSplitSetTol( HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructSplitSetZeroGuess_flt( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSplitSetZeroGuess_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSplitSetZeroGuess_long_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSplitSetZeroGuess( HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSplitSetup_flt( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructSplitSetup_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructSplitSetup_long_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructSplitSetup( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructSplitSolve_flt( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructSplitSolve_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructSplitSolve_long_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructSplitSolve( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructSysPFMGCreate_flt( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructSysPFMGCreate_dbl( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructSysPFMGCreate_long_dbl( MPI_Comm comm, HYPRE_SStructSolver *solver );
HYPRE_Int
HYPRE_SStructSysPFMGCreate( MPI_Comm comm, HYPRE_SStructSolver *solver );

HYPRE_Int
HYPRE_SStructSysPFMGDestroy_flt( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSysPFMGDestroy_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSysPFMGDestroy_long_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSysPFMGDestroy( HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSysPFMGGetFinalRelativeResidualNorm_flt( HYPRE_SStructSolver solver, hypre_float *norm );
HYPRE_Int
HYPRE_SStructSysPFMGGetFinalRelativeResidualNorm_dbl( HYPRE_SStructSolver solver, hypre_double *norm );
HYPRE_Int
HYPRE_SStructSysPFMGGetFinalRelativeResidualNorm_long_dbl( HYPRE_SStructSolver solver, hypre_long_double *norm );
HYPRE_Int
HYPRE_SStructSysPFMGGetFinalRelativeResidualNorm( HYPRE_SStructSolver solver, void *norm );

HYPRE_Int
HYPRE_SStructSysPFMGGetNumIterations_flt( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructSysPFMGGetNumIterations_dbl( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructSysPFMGGetNumIterations_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );
HYPRE_Int
HYPRE_SStructSysPFMGGetNumIterations( HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_SStructSysPFMGSetDxyz_flt( HYPRE_SStructSolver solver, hypre_float *dxyz );
HYPRE_Int
HYPRE_SStructSysPFMGSetDxyz_dbl( HYPRE_SStructSolver solver, hypre_double *dxyz );
HYPRE_Int
HYPRE_SStructSysPFMGSetDxyz_long_dbl( HYPRE_SStructSolver solver, hypre_long_double *dxyz );
HYPRE_Int
HYPRE_SStructSysPFMGSetDxyz( HYPRE_SStructSolver solver, void *dxyz );

HYPRE_Int
HYPRE_SStructSysPFMGSetJacobiWeight_flt( HYPRE_SStructSolver solver, hypre_float weight );
HYPRE_Int
HYPRE_SStructSysPFMGSetJacobiWeight_dbl( HYPRE_SStructSolver solver, hypre_double weight );
HYPRE_Int
HYPRE_SStructSysPFMGSetJacobiWeight_long_dbl( HYPRE_SStructSolver solver, hypre_long_double weight );
HYPRE_Int
HYPRE_SStructSysPFMGSetJacobiWeight( HYPRE_SStructSolver solver, hypre_long_double weight );

HYPRE_Int
HYPRE_SStructSysPFMGSetLogging_flt( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructSysPFMGSetLogging_dbl( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructSysPFMGSetLogging_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int logging );
HYPRE_Int
HYPRE_SStructSysPFMGSetLogging( HYPRE_SStructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_SStructSysPFMGSetMaxIter_flt( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructSysPFMGSetMaxIter_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructSysPFMGSetMaxIter_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int max_iter );
HYPRE_Int
HYPRE_SStructSysPFMGSetMaxIter( HYPRE_SStructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_SStructSysPFMGSetNonZeroGuess_flt( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSysPFMGSetNonZeroGuess_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSysPFMGSetNonZeroGuess_long_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSysPFMGSetNonZeroGuess( HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSysPFMGSetNumPostRelax_flt( HYPRE_SStructSolver solver, HYPRE_Int num_post_relax );
HYPRE_Int
HYPRE_SStructSysPFMGSetNumPostRelax_dbl( HYPRE_SStructSolver solver, HYPRE_Int num_post_relax );
HYPRE_Int
HYPRE_SStructSysPFMGSetNumPostRelax_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int num_post_relax );
HYPRE_Int
HYPRE_SStructSysPFMGSetNumPostRelax( HYPRE_SStructSolver solver, HYPRE_Int num_post_relax );

HYPRE_Int
HYPRE_SStructSysPFMGSetNumPreRelax_flt( HYPRE_SStructSolver solver, HYPRE_Int num_pre_relax );
HYPRE_Int
HYPRE_SStructSysPFMGSetNumPreRelax_dbl( HYPRE_SStructSolver solver, HYPRE_Int num_pre_relax );
HYPRE_Int
HYPRE_SStructSysPFMGSetNumPreRelax_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int num_pre_relax );
HYPRE_Int
HYPRE_SStructSysPFMGSetNumPreRelax( HYPRE_SStructSolver solver, HYPRE_Int num_pre_relax );

HYPRE_Int
HYPRE_SStructSysPFMGSetPrintLevel_flt( HYPRE_SStructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_SStructSysPFMGSetPrintLevel_dbl( HYPRE_SStructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_SStructSysPFMGSetPrintLevel_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int print_level );
HYPRE_Int
HYPRE_SStructSysPFMGSetPrintLevel( HYPRE_SStructSolver solver, HYPRE_Int print_level );

HYPRE_Int
HYPRE_SStructSysPFMGSetRelChange_flt( HYPRE_SStructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_SStructSysPFMGSetRelChange_dbl( HYPRE_SStructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_SStructSysPFMGSetRelChange_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int rel_change );
HYPRE_Int
HYPRE_SStructSysPFMGSetRelChange( HYPRE_SStructSolver solver, HYPRE_Int rel_change );

HYPRE_Int
HYPRE_SStructSysPFMGSetRelaxType_flt( HYPRE_SStructSolver solver, HYPRE_Int relax_type );
HYPRE_Int
HYPRE_SStructSysPFMGSetRelaxType_dbl( HYPRE_SStructSolver solver, HYPRE_Int relax_type );
HYPRE_Int
HYPRE_SStructSysPFMGSetRelaxType_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int relax_type );
HYPRE_Int
HYPRE_SStructSysPFMGSetRelaxType( HYPRE_SStructSolver solver, HYPRE_Int relax_type );

HYPRE_Int
HYPRE_SStructSysPFMGSetSkipRelax_flt( HYPRE_SStructSolver solver, HYPRE_Int skip_relax );
HYPRE_Int
HYPRE_SStructSysPFMGSetSkipRelax_dbl( HYPRE_SStructSolver solver, HYPRE_Int skip_relax );
HYPRE_Int
HYPRE_SStructSysPFMGSetSkipRelax_long_dbl( HYPRE_SStructSolver solver, HYPRE_Int skip_relax );
HYPRE_Int
HYPRE_SStructSysPFMGSetSkipRelax( HYPRE_SStructSolver solver, HYPRE_Int skip_relax );

HYPRE_Int
HYPRE_SStructSysPFMGSetTol_flt( HYPRE_SStructSolver solver, hypre_float tol );
HYPRE_Int
HYPRE_SStructSysPFMGSetTol_dbl( HYPRE_SStructSolver solver, hypre_double tol );
HYPRE_Int
HYPRE_SStructSysPFMGSetTol_long_dbl( HYPRE_SStructSolver solver, hypre_long_double tol );
HYPRE_Int
HYPRE_SStructSysPFMGSetTol( HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructSysPFMGSetZeroGuess_flt( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSysPFMGSetZeroGuess_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSysPFMGSetZeroGuess_long_dbl( HYPRE_SStructSolver solver );
HYPRE_Int
HYPRE_SStructSysPFMGSetZeroGuess( HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSysPFMGSetup_flt( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructSysPFMGSetup_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructSysPFMGSetup_long_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructSysPFMGSetup( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructSysPFMGSolve_flt( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructSysPFMGSolve_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructSysPFMGSolve_long_dbl( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );
HYPRE_Int
HYPRE_SStructSysPFMGSolve( HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );


/*** 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_SStructBiCGSTABCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_SStructSolver *solver );

HYPRE_Int
HYPRE_SStructBiCGSTABDestroy_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructBiCGSTABGetFinalRelativeResidualNorm_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, void *norm );

HYPRE_Int
HYPRE_SStructBiCGSTABGetNumIterations_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_SStructBiCGSTABGetResidual_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, void **residual );

HYPRE_Int
HYPRE_SStructBiCGSTABSetAbsoluteTol_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructBiCGSTABSetLogging_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_SStructBiCGSTABSetMaxIter_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_SStructBiCGSTABSetMinIter_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int min_iter );

HYPRE_Int
HYPRE_SStructBiCGSTABSetPrecond_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );

HYPRE_Int
HYPRE_SStructBiCGSTABSetPrintLevel_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int level );

HYPRE_Int
HYPRE_SStructBiCGSTABSetStopCrit_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int stop_crit );

HYPRE_Int
HYPRE_SStructBiCGSTABSetTol_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructBiCGSTABSetup_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructBiCGSTABSolve_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructDiagScale_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector y, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructDiagScaleSetup_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector y, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructFlexGMRESCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_SStructSolver *solver );

HYPRE_Int
HYPRE_SStructFlexGMRESDestroy_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructFlexGMRESGetFinalRelativeResidualNorm_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, void *norm );

HYPRE_Int
HYPRE_SStructFlexGMRESGetNumIterations_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_SStructFlexGMRESGetResidual_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, void **residual );

HYPRE_Int
HYPRE_SStructFlexGMRESSetAbsoluteTol_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructFlexGMRESSetKDim_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int k_dim );

HYPRE_Int
HYPRE_SStructFlexGMRESSetLogging_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_SStructFlexGMRESSetMaxIter_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_SStructFlexGMRESSetMinIter_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int min_iter );

HYPRE_Int
HYPRE_SStructFlexGMRESSetModifyPC_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_PtrToModifyPCFcn modify_pc );

HYPRE_Int
HYPRE_SStructFlexGMRESSetPrecond_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );

HYPRE_Int
HYPRE_SStructFlexGMRESSetPrintLevel_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int print_level );

HYPRE_Int
HYPRE_SStructFlexGMRESSetTol_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructFlexGMRESSetup_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructFlexGMRESSolve_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructGMRESCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_SStructSolver *solver );

HYPRE_Int
HYPRE_SStructGMRESDestroy_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructGMRESGetFinalRelativeResidualNorm_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, void *norm );

HYPRE_Int
HYPRE_SStructGMRESGetNumIterations_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_SStructGMRESGetResidual_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, void **residual );

HYPRE_Int
HYPRE_SStructGMRESSetAbsoluteTol_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructGMRESSetKDim_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int k_dim );

HYPRE_Int
HYPRE_SStructGMRESSetLogging_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_SStructGMRESSetMaxIter_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_SStructGMRESSetMinIter_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int min_iter );

HYPRE_Int
HYPRE_SStructGMRESSetPrecond_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );

HYPRE_Int
HYPRE_SStructGMRESSetPrintLevel_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int print_level );

HYPRE_Int
HYPRE_SStructGMRESSetStopCrit_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int stop_crit );

HYPRE_Int
HYPRE_SStructGMRESSetTol_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructGMRESSetup_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructGMRESSolve_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructLGMRESCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_SStructSolver *solver );

HYPRE_Int
HYPRE_SStructLGMRESDestroy_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructLGMRESGetFinalRelativeResidualNorm_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, void *norm );

HYPRE_Int
HYPRE_SStructLGMRESGetNumIterations_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_SStructLGMRESGetResidual_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, void **residual );

HYPRE_Int
HYPRE_SStructLGMRESSetAbsoluteTol_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructLGMRESSetAugDim_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int aug_dim );

HYPRE_Int
HYPRE_SStructLGMRESSetKDim_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int k_dim );

HYPRE_Int
HYPRE_SStructLGMRESSetLogging_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_SStructLGMRESSetMaxIter_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_SStructLGMRESSetMinIter_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int min_iter );

HYPRE_Int
HYPRE_SStructLGMRESSetPrecond_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );

HYPRE_Int
HYPRE_SStructLGMRESSetPrintLevel_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int print_level );

HYPRE_Int
HYPRE_SStructLGMRESSetTol_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructLGMRESSetup_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructLGMRESSolve_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructPCGCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_SStructSolver *solver );

HYPRE_Int
HYPRE_SStructPCGDestroy_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructPCGGetFinalRelativeResidualNorm_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, void *norm );

HYPRE_Int
HYPRE_SStructPCGGetNumIterations_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_SStructPCGGetResidual_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, void **residual );

HYPRE_Int
HYPRE_SStructPCGSetAbsoluteTol_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructPCGSetLogging_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_SStructPCGSetMaxIter_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_SStructPCGSetPrecond_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_PtrToSStructSolverFcn precond, HYPRE_PtrToSStructSolverFcn precond_setup, void *precond_solver );

HYPRE_Int
HYPRE_SStructPCGSetPrintLevel_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int level );

HYPRE_Int
HYPRE_SStructPCGSetRelChange_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int rel_change );

HYPRE_Int
HYPRE_SStructPCGSetTol_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructPCGSetTwoNorm_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int two_norm );

HYPRE_Int
HYPRE_SStructPCGSetup_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructPCGSolve_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructSSAMGCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_SStructSolver *solver );

HYPRE_Int
HYPRE_SStructSSAMGDestroy_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSSAMGGetFinalRelativeResidualNorm_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, void *norm );

HYPRE_Int
HYPRE_SStructSSAMGGetNumIterations_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_SStructSSAMGSetCoarseSolverType_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int csolver_type );

HYPRE_Int
HYPRE_SStructSSAMGSetDxyz_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int nparts, void *dxyz );

HYPRE_Int
HYPRE_SStructSSAMGSetInterpType_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int interp_type );

HYPRE_Int
HYPRE_SStructSSAMGSetLogging_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_SStructSSAMGSetMaxCoarseSize_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int max_coarse_size );

HYPRE_Int
HYPRE_SStructSSAMGSetMaxIter_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_SStructSSAMGSetMaxLevels_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int max_levels );

HYPRE_Int
HYPRE_SStructSSAMGSetNonGalerkinRAP_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int non_galerkin );

HYPRE_Int
HYPRE_SStructSSAMGSetNonZeroGuess_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSSAMGSetNumCoarseRelax_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int num_coarse_relax );

HYPRE_Int
HYPRE_SStructSSAMGSetNumPostRelax_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int num_post_relax );

HYPRE_Int
HYPRE_SStructSSAMGSetNumPreRelax_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int num_pre_relax );

HYPRE_Int
HYPRE_SStructSSAMGSetPrintFreq_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int print_freq );

HYPRE_Int
HYPRE_SStructSSAMGSetPrintLevel_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int print_level );

HYPRE_Int
HYPRE_SStructSSAMGSetRelChange_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int rel_change );

HYPRE_Int
HYPRE_SStructSSAMGSetRelaxType_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int relax_type );

HYPRE_Int
HYPRE_SStructSSAMGSetRelaxWeight_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, hypre_long_double weight );

HYPRE_Int
HYPRE_SStructSSAMGSetSkipRelax_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int skip_relax );

HYPRE_Int
HYPRE_SStructSSAMGSetTol_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructSSAMGSetZeroGuess_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSSAMGSetup_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructSSAMGSolve_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructSetupInterpreter_pre( HYPRE_Precision precision, mv_InterfaceInterpreter *i );

HYPRE_Int
HYPRE_SStructSetupMatvec_pre( HYPRE_Precision precision, HYPRE_MatvecFunctions *mv );

HYPRE_Int
HYPRE_SStructSplitCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_SStructSolver *solver );

HYPRE_Int
HYPRE_SStructSplitDestroy_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSplitGetFinalRelativeResidualNorm_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, void *norm );

HYPRE_Int
HYPRE_SStructSplitGetNumIterations_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_SStructSplitPrintLogging_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSplitSetLogging_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_SStructSplitSetMaxIter_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_SStructSplitSetNonZeroGuess_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSplitSetPrintLevel_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int print_level );

HYPRE_Int
HYPRE_SStructSplitSetStructSolver_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int ssolver );

HYPRE_Int
HYPRE_SStructSplitSetTol_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructSplitSetZeroGuess_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSplitSetup_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructSplitSolve_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructSysPFMGCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_SStructSolver *solver );

HYPRE_Int
HYPRE_SStructSysPFMGDestroy_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSysPFMGGetFinalRelativeResidualNorm_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, void *norm );

HYPRE_Int
HYPRE_SStructSysPFMGGetNumIterations_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int *num_iterations );

HYPRE_Int
HYPRE_SStructSysPFMGSetDxyz_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, void *dxyz );

HYPRE_Int
HYPRE_SStructSysPFMGSetJacobiWeight_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, hypre_long_double weight );

HYPRE_Int
HYPRE_SStructSysPFMGSetLogging_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int logging );

HYPRE_Int
HYPRE_SStructSysPFMGSetMaxIter_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int max_iter );

HYPRE_Int
HYPRE_SStructSysPFMGSetNonZeroGuess_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSysPFMGSetNumPostRelax_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int num_post_relax );

HYPRE_Int
HYPRE_SStructSysPFMGSetNumPreRelax_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int num_pre_relax );

HYPRE_Int
HYPRE_SStructSysPFMGSetPrintLevel_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int print_level );

HYPRE_Int
HYPRE_SStructSysPFMGSetRelChange_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int rel_change );

HYPRE_Int
HYPRE_SStructSysPFMGSetRelaxType_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int relax_type );

HYPRE_Int
HYPRE_SStructSysPFMGSetSkipRelax_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_Int skip_relax );

HYPRE_Int
HYPRE_SStructSysPFMGSetTol_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, hypre_long_double tol );

HYPRE_Int
HYPRE_SStructSysPFMGSetZeroGuess_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver );

HYPRE_Int
HYPRE_SStructSysPFMGSetup_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );

HYPRE_Int
HYPRE_SStructSysPFMGSolve_pre( HYPRE_Precision precision, HYPRE_SStructSolver solver, HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x );


#endif

#ifdef __cplusplus
}
#endif

#endif

